본문 바로가기

개발자/Linux 리눅스

자주 가끔 많이 항상 사용하는 리눅스 명령어 모음




자주 사용하는 리눅스 명령어 모음


생활코딩에서 모두에게 제공하는 리눅스 수업은 다음 링크로 배울 수 있다. 꼭 배워두시길 부탁드린다. ㅎㅎ


https://opentutorials.org/course/2598



1. 리눅스 시스템 종료 방법
shutdown -h now
halt
init 0
- shutdown 명령어
shutdown -h +10 (10분후 종료, h:halt)
shutdown -r 22:00 (오후 10시에 재부팅, r:reboot)
shutdown -c (예약된 shutdown 명령 취소)
shutdown -k now (종료 메시지는 보이나 종료 안됨)
2. 재부팅
shutdown -r now
reboot
init 6
3. 로그아웃
logout
exit
- init명령어(런레벨, Runlevel)
0번 : 종료모드
1번 : 단일 사용자 모드(시스템 복구시 사용)
2번 : NFS 없는 다중 사용자 모드
3번 : 텍스트 모드의 다중 사용자 모드
4번 : 없음
5번 : x윈도우 모드의 다중 사용자 모드
6번 : 재부팅 모드
</etc/inittab 에 지정되어 있음>
4. vi(visual) ; vi 에디터
vi test.txt
5. man(manual) ; 매뉴얼 페이지
man <명령어>
6. genisoimage ; iso 생성
genisoimage -r -J -o test.iso /boot
"-r -J" : 8글자 이상의 파일명 및 대소문자를 구분해서 인식
"-o" : 출력할 파일을 위한 옵션
"test.iso" : 생성될 iso 파일명
"/boot" : 포함될 파일 또는 디렉토리
7. xdrecord : cd로 굽기
8. growisofs : DVD로 굽기
9. ls 명령어 : 목록보기 명령어
: ls ; 현재의 디렉토리 목록
: ls /usr/bin ; /usr/bin의 디렉토리 목록
: ls -a ; 디렉토리 목록
: ls -l ; 디렉토리 목록 자세히
: ls *.txt ; txt파일 보여줌
: ls -l /usr/bin/a* ; /usr/bin/ 디렉토리에서 앞글자가 a인 목록
10. cd 명령어 : 디렉토리 이동 명령어
: cd ; 사용자의 홈디렉토리로 이동
: cd ~root ; root사용자의 홈 디렉토리로 이동
: cd.. ; 상위 디렉토리로 이동
: cd /usr/bin ; /usr/bin 디렉토리로 이동(절대경로)
: cd ../usr/bin ; 상대경로로 이동
11. pwd (print working directory)
: pwd ; 현재 작업중인 디렉토리 경로 출력
12. rm -삭제(권한이 있어야 함)
: rm abc.txt ; 삭제(내부적으로 rm -i 로 연결됨
: rm -i abc.txt ; 삭제시 확인을 물어본다
: rm -r abc ; abc라는 디렉토리 삭제
: rm -rf abc ; abc 이하 전부 강제 삭제
13. cp - 복사
: cp abc01.txt abc02.txt ; abc01.txt를 abc02.txt파일로 복사
: cp -r abc01 abc02 ; 디렉토리 복사
14. touch - 크기 0파일 생성, 존재시 수정 시간 변경
: touch abc.txt
15. mv - 파일 이름 변경 및 위치 이동
: mv aaa bbb ccc ddd ; aaa,bbb,ccc, 파일을 ddd 디렉토리로 이동
: mv abc.txt bbb.txt ; 이름 변경
16. mkdir - 새로운 디렉토리 생성
: mkdir abc ; 현재 디렉토리 아래 abc 디렉토리 생성
: mkdir -p def/fgh ; 현재 디렉토리 아래 def/fgh 생성
17. rmdir - 디렉토리 삭제(파일이 있으면 삭제 안됨)
: rmdir abc
18. cat - 텍스트 작성 파일 화면에 출력
: cat install.log
19. head, tail - 텍스트 파일 앞 10행 or 뒤 10행 출력
: head install.log
: tail install.log
20. more - 텍스트 파일 페이지 단위 출력
(space : 다음페이지, b : 앞페이지, Q : 뒷페이지)
: more install.log
: more +100 install.log : 100행부터 보여줌
21. file - 파일의 종류 표시
: file install.log
: file /bin/gzip
22. clear - 명령창을 깨끗하게
; clear
<사용자 및 그룹 관련 명령어>
23. useradd or adduser
실행시 /etc/passwd, /etc/shadow, /etc/group 에 새로운 행 추가
: useradd newuser
: useradd -u 555 newuser ; 555라는 이름의 유저 추가
: useradd -g mygroup newuser ; mygroup에 포함된 newuser 생성
: useradd -d /newhome newuser ; 홈디렉토리가 newhome 인 newuser 생성
: useradd -s /bin/csh newuser ; 기본 쉘 /bin/csh 지정
24. passwd - 비밀번호 지정 및 변경
: passwd newuser ; newuser의 비밀번호 지정 및 변경
25. usermod -useradd와 사용법 동일, 사용자 속성 변경
: usermod -g root newuser ; newuser의 그룹을 root 그룹으로 변경
26. userdel - 사용자 삭제
: userdel newuser
: userdel -r newuser
27. change - 소용자 암호 주기적 변경
: change -l newuser ; newuser에 설정된 사항 확인
: change -m 2 newuser ; 설정암호 최소 일자(2일)
: change -M 30 newuser ; 설정암호 사용가능 일자 (30일)
: change -E 2013/12/12 newuser ; 2013/12/12에 암호 만기
: change -W 10 newuser ; 만기 10일부터 경고 메시지 출력
28. group - 사용자가 속한 그룹을 보여줌
: groups
29. groupadd - 새로운 그룹 생성
: groupadd newgroup
: groupadd -g 555 newgroup ; 그룹 ID가 555인 newgroup생성
30. groupmod - 그룹 속성 변경
: groupmod -n newgroup mygroup ; newgroup 이름을 mygroup 으로 변경
31. groupdel - 그룹 삭제
: groupdel newgroup
(해당 그룹을 주요 그룹으로 지정한 사용자가 없을때 사용 가능)
32. gpasswd - 그룹의 암호를 생성하거나 관리를 수행
: gpasswd newgroup ; newgroup 의 암호지정
: gpasswd -A newuser newgroup ; newuser를 newgroup의 관리자로 지정
: gpasswd -a user1 newgroup ; user1을 사용자로 추가
: gpasswd -d user1 newgroup ; user1을 사용자에서 제거
33. <RPM>
* 설치
: rpm -Uvh (패키지파일)
- U : (대문자) 설치되어 있지 않다면 'i'와 같이 설치,
설치되어 있다면 업그레이드한다.
- v : 설치 진행상황 확인
- h : 설치 진행과정을 화면에 출력
* 삭제
: rpm -e (패키지 이름)
-e : Erase
* 이미 설치된 패키지 질의
: rpm -qa (패키지) ; 설치되었는지 확인
: rpm -qf (파일의 절대 경로) ; 어느 패키지에 포함된 것인지 확인
: rpm -ql (패키지) ; 어떤 파일이 포함되었는지 확인
: rpm -qi (패키지) ; 상세정보
* 설치되지 않은 패키지 질의
: rpm -qlp (패키지) ; 어떤 파일이 포함되었는지
: rpm -qip (패키지) ; 상세정보
34. <YUM>
* 설치
: yum (-y) install (패키지)
-y 옵션을 쓰면 무조건 yes로 넘어감
* rpm 파일 설치
: yum install (rpm파일)
* yum check-updata ; 업데이트 가능한 목록 보기
* yum updata (패키지) ; 패키지 업데이트, 없다면 install
* yum remove (패키지) ; 패키지 제거
* yum info (패키지) ; 패키지 요약 정보
* yum localinstall (패키지) ; 로컬에서 설치 (iso파일에서 설치)
* yum groupinstall "(패키지그룹)" ; yum grouplist로 확인후 통째로 설치
* yum list (패키지) ; 패키지 리스트 출력
ex) yum list all(모든 리스트), yum list mysql*(mysql이 들어간 목록)
* yum provides (파일이름) ; 특정 파일이 어느 패키지에 들어있는지..
* yum install --nogpgcheck (rpm파일) ; GPG키 검사 생략
; 페도라에서 인증되지 않은 rpm파일을 설치시 GPG키 생략하고 설치됨
35. <파일 압축, 묶기>
* bzip2 - bz2로 압축하거나 풀기
: bzip2 (파일명) ; 파일명.bz2로 만든다.
: bzip2 0d "파일명.bz2" ; 파일명.bz2를 일반 파일로 만든다.
* bunzip2 - bzip2 -d 와 같다.
* gzip -gz로 압축하거나 풀기
: gzip (파일명) ; 파일명.gz 로 만든다.
: gzip -d "파일명.gz" ; 파일명.gz를 일반파일로 만든다.
* tar - 확장명 tar로 묶거나 풀기
[동작]
: c ; 새로운 묶음
: x ; 묶인 파일을 풀어줌
: t ; 묶음을 풀기전에 경로 표시
[옵션]
: f(필수) - 묶음 파일명 지정 ; 생략시 tape로 백업
: v - visual ; 과정을 보여줌
: z - tar + gzip
: j - tar + bzip2
[사용예]
: tar cvf xinetd.tar
: tar xvfj (파일명.tar.bz2)
: tar xvfz (파일명.tar.gz)
36. <파일 위치 검색>
* find [경로] [옵션] [조건] [action]
[옵션] -name, -user(소유자), newer(전, 후) -perm(허가권), -size(크기)
[경로] -print(디폴트), -exec(외부명령 실행)
[사용 예]
: find /etc -name "*.conf" ; /etc에 확장자 conf 파일 검색
: find ~ -perm 644 ; 허가권이 644인 파일 검색
: find /bin -size +10k -size -100k ; 10kb~100kb인 파일 검색
: find ~ -size 0k -exec ls -l {} \ ;
--> 사용자 홈 디렉토리 하위에 파일 크기가 0인 파일 목록 상세히 출력
: find /home -name "*.swp" -exec rm {} \ ;
--> /home 홈 디렉토리 하위에 확장자 swp 파일 검색
* which (실행파일명) -PATH에 설정된 디렉토리 검색(절대경로 포함)
* whereis (실행파일명) - 실행 파일 및 소스, man 페이지 파일까지 검색
* locate (파일명) - updatedb 명령 이후 사용 가능
파일 목록 데이터베이스 검색, 빠르고 유용.
37. <wine 설치하기>
http://kltp.kldp.net/stories.php@story=00/08/11/9653999
<시스템 설정> system-config-xxxx
패키지 업데이트 ; yum -y install system-config-xxxx
: boot ; 초기 부팅 설정
: data ; 날짜, 시간 설정
: firewall ; 방화벽
: keyboard ; 키보드
: language ; 언어
: lvm ; lvm 설정
: printer ; 프린터
: rootpassword ; root 비밀번호
: service ; 서비스 가동/중지
: users ; 사용자 설정
: bind ; 네임 서버
: display ; x윈도우 환경 설정
: httpd ; 웹서버 설정
: ngs ; NFS 서버 설정
: samba ; 삼바 서버 설정
: vsftpd ; FTP 서버 설정
38. <CRON>
- 주기적으로 반복되는 일 설정
- /etc/conftab 파일
ex) 01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
04 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
39. <AT>
- 일회성 작업 예약
- 한번 실행되고 소멸
ex) at 실행 후 #at <시간>,
완료시 ctrl + D,
확인 at-l,
취소 atrm<작업번호>
40. <Network 관련 명령어>
: system-config-network
: system-config-network-tui ; 텍스트 기반
: service network (start/stop/restart/status)
: ifup <장치이름> / ifdown <장치이름> ; 장치 작동
: ifconfig <장치이름> ; 해당장치의 ip주소 설정 정보 출력
: nslookup ; DNS 서버 작동 테스트
: ping (IP/URL) ; 네트워크 응답 테스트
<Network 설정 관련 파일> - system-config-network 후
: /etc/sysconfig/network ; 네트워크의 기본적인 정보가 설정된 파일
: /etc/sysconfig/network-script/ifcfg-eth0(or ifcfg-eth1)
; 장치에 설정된 네트워크 정보 모두
: /etc/resolv.conf ; DNS 서버의 정보 및 호스트 이름이 들어있는 파일
: /etc/hosts ; 현 컴퓨터의 호스트 이름 및 FQDN 이 들어있는 파일
41. <파이프, 필터, 리다이렉션>
<pipe> - 두 개의 프로그램을 연결해 주는 연결통로
: | 을 이용함
ex) ls -l /etc | more ; /etc에 파일이 너무 많아서 한페이지씩 보고자 함
<filter> - grep, tail, wc, sort, grep, awk, sed 등
ex) ps -ef | grep bash ; ps -ef 는 모든 프로세스 번호 출력하므로
bash라는 글퀴가 들어간 프로세스만 출력
rpm -qa | grep bind ; 설치된 패키지 중 bind라는 글자가 들어가 패키지만 출력
<re-direction>
- 표준 입출력 방향을 바꿈
- 표준입력은 키보드, 출력은 모니터지만 이를 파일로 처리하고 싶을 때 주로 사용
ex) ls -l > aa.lst ; ls -l 의 결과를 aa.lst 파일에 씀(overwrite)
ls -l >> aa.lst ; 위와 같지만 append
sort < aa.lst ; aa.lst 파일을 정렬해서 화면에 출력
sort < aa.lst > bb.lst ; aa.lst 파일을 정렬해서 bb.lst 에 쓴다
42. <프로세스 관련 명령어>
1. ps - 현재 프로세스 상태 확인
ex) ps -ef | grep (프로세스 이름)
2. kill - 프로세스 강제 종료 "-9" 옵션을 함께 사용하면 무조건 종료
ex) kill -9 (프로세스 번호)
3. pstree - 부모 자식 프로세스 관계를 트리 형태로 보여줌
<vi 에디터 비정상적인 종료시 대처법>
ex) vi abc.log 를 비정상적으로 종료시
--> abc.log.swp(임시 Swap File) 생성
--> ls -a 로 파일 확인하고, "rm .install.log.swp" 로 삭제
<데몬(Daemon) ~ = 서비스(Service)>
: 눈에는 보이지 않지만 현재 시스템에서 활동중이 프로세스(백그라운드)
이곳에서 가져와 보완 함. 정보 출처: http://dream-cy.tistory.com/42 [소년, 사이버를 꿈꾸다]