SeouliteLab
리눅스 주요 명령어 모음 본문
리눅스에서 사용되는 주요 명령어 모음
리눅스 시스템 종료 방법
1. 바탕화면에서 : 시스템 -> 끄기 -> 끄기
2. 터미널에서 : "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 (종료 메세지는 보이나 종료 안댐.)
재부팅
- "shutdown -r now", "reboot", "init 6"
로그아웃
- "logout", "exit"
* init 명령어(런레벨, Runlevel)
0번 : 종료모드
1번 : 단일 사용자 모드(시스템 복구시 사용)
2번 : NFS 없는 다중 사용자 모드
3번 : 텍스트 모드의 다중 사용자 모드
4번 : 없음
5번 : x윈도우 모드의 다중 사용자 모드
6번 : 재부팅 모드
</etc/inittab 에 지정되어 있음.>
vi(visual) ; ex) vi test.txt
man(manual) ; ex) man <명령어>
genisoimage ; iso 생성
ex) genisoimage -r -J -o test.iso /boot
"-r -J" : 8글자 이상의 파일명 및 대소문자를 구분해서 인식
"-o" : 출력할 파일을 위한 옵션
"test.iso" : 생성될 iso 파일명
"/boot" : 포함될 파일 또는 디렉토리
cdrecord ; cd로 굽기
growisofs ; DVD로 굽기
* ls 명령어 - dos의 "dir"
: ls ; 현재의 디렉토리 목록
: ls /usr/bin ; /usr/bin 의 디렉토리 목록
: ls -a ; 디렉토리 목록(숨김파일 포함)
: ls -l ; 디렉토리 목록 자세히
: ls *.txt ; txt파일 보여줌
: ls -l /usr/bin/a* ; /usr/bin/ 디렉토리에서 앞글자가 a인 목록.
* cd 명령어 - 디렉토리 이동
: cd ; 사용자의 홈 디렉토리로 이동
: cd ~root ; root사용자의 홈 디렉토리로 이동
: cd .. ; 상위 디렉토리로 이동
: cd /usr/bin ; /usr/bin 디렉토리로 이동(절대경로)
: cd ../usr/bin ; 상대경로로 이동
* pwd (print working directory)
: pwd ; 현재 작업중인 디렉토리 경로 출력
* rm - 삭제(권한이 있어야 함)
: rm abc.txt ; 삭제(내부적으로 rm -i 로 연결됨
: rm -i abc.txt ; 삭제 시 확인을 물어본다
: rm -r abc ; 디렉토리 삭제
: rm -rf abc ; abc 이하 전부 강제 삭제
* cp - 복사
: cp abc.txt cba.txt ; abc.txt를 cba.txt 파일로 복사
: cp -r abc cba ; 디렉토리 복사
* touch - 크기 0 파일 생성, 존재시 수정 시간 변경
: touch abc.txt
* mv - 파일 이름 변경 및 위치이동
: mv aaa bbb ccc ddd ; aaa, bbb, ccc 파일을 ddd 디렉토리로 이동
: mv abc.txt www.txt ; 이름 변경
* mkdir - 새로운 디렉토리 생성
: mkdir abc ; 현재 디렉토리 아래 abc 디렉토리 생성
: mkdir -p def/fgh ; 현재 디렉토리 아래 def/fgh 생성
* rmdir - 디렉토리 삭제(파일이 있으면 안됨)
: rmdir abc
* cat - 텍스트 작성 파일 화면에 출력
: cat install.log
* head, fail - 텍스트 파일 앞 10행 or 뒷 10행을 출력
: head install.log
: fail install.log
* more - 텍스트 파일 페이지 단위 출력
(space : 다음페이지, b : 앞페이지, Q : 뒷페이지)
: more install.log
: more +100 install.log ; 100행부터 보여줌
* less - more의 확장, pagedown, pageup 사용 가능
: less install.log
: less +100 install.log
* file - 파일의 종류 표시
: file install.log
: file /bin/gzip
* clear - 명령창을 깨끗하게
: clear
< 사용자 및 그룹 관련 명령어>
* 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 지정
* passwd - 비밀번호 지정 및 변경
: passwd newuser ; newuser의 비밀번호 지정 및 변경
* usermod - useradd와 사용법 동일, 사용자 속성 변경
: usermod -g root newuser ; newuser의 그룹을 root 그룹으로 변경
* userdel - 사용자 삭제
: userdel newuser
: userdel -r newuser
* change - tkdydwk dkagh wnrlwjr qusrud
: 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일 부터 경고 메세지 출력
* groups - 사용자가 속한 그룹을 보여줌
: groups
* groupadd - 새로운 그룹 생성
: groupadd newgroup
: groupadd -g 555 newgroup ; 그룹 ID가 555인 newgroup생성
* groupmod - 그룹 속성 변경
: groupmod -n newgroup mygroup ; newgroup 이름을 mygroup으로 변경
* groupdel - 그룹 삭제
: groupdel newgroup
(해당 그룹을 주요 그룹으로 지정한 사용자가 없을 때 사용 가능)
* gpasswd - 그룹의 암호를 생성하거나 관리를 수행
: gpasswd newgroup ; newgroup의 암호지정
: gpasswd -A newuser newgroup ; newuser를 newgroup의 관리자로 지정
: gpasswd -a user1 newgroup ; user1을 사용자로 추가
: gpasswd -d user1 newgroup ; user1을 사용자에서 제거
< RPM >
* 설치
: rpm -Uvh (패키지파일)
- U : (대문자) 설치되어 있지 않다면 'i'와 같이 설치,
설치되어 있다면 업그레이드한다.
- v : 설치 진행상황 확인
- h : 설치진행과정을 화면에 출력
* 삭제
: rpm -e (패키지이름)
- e : Erase
* 이미 설치된 패키지 질의
: rpm -qa (패키지) ; 설치되었는지 확인
: rpm -qf (파일의 절대 경로) ; 어느 패키지에 포함된 것인지 확인
: rpm -ql (패키지) ; 어떤 파일이 포함되었는지 확인
: rpm -qi (패키지) ; 상세정보
* 설치되지 않은 패키지 질의
: rpm -qlp (패키지) ; 어떤 파일이 포함되었는지
: rpm -qip (패키지) ; 상세정보
< 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키 생략하고 설치됨.
< 파일 압축, 묶기 >
* bzip2 - bz2로 압축하거나 풀기
: bzip2 (파일명) ; 파일명.bz2 로 만든다.
: bzip2 -d "파일명.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)
< 파일 위치 검색 >
* 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 명령 이후 사용가능
파일목록 데이터베이스 검색, 빠르고 유용.
< wine 설치하기 >
http://kltp.kldp.net/stories.php?story=00/08/11/9653999
< 시스템 설정 > ststem-config-xxxx
&&& 패키지 업데이트 yum -y install system-config-xxxx
: boot ; 초기 부팅 설정
: data ; 날짜, 시간 설정
: firewall ; 방화벽
: keyboard ; 키보드
: language ; 언어
: lvm ; lvm 설정
: network ; 네트워크
: printer ; 프린터
: rootpassword ; root 비밀번호
: service ; 서비스 가동/중지
: users ; 사용자 설정
: bind ; 네임 서버
: display ; x 윈도우 환경 설정
: httpd ; 웹 서버 설정
: nfs ; NFS 서버 설정
: samba ; 삼바 서버 설정
: vsftpd ; FTP 서버 설정
< CRON >
- 주기적으로 반복되는 일 설정
- /etc/crontab 파일
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
분 시 일 월 요일 권한 실행명령 (0~6 = 일~월요일)
< AT >
- 일회성 작업 예약
- 한번 실행되고 소멸
ex) at 실행 후 #at <시간>,
완료시 ctrl+D,
확인 at-l,
취소 atrm <작업번호>
< 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이 들어있는
<< 파이프, 필터, 리다이렉션 >>
< 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 파일에 씀(orerwrite)
ls -l >> aa.lst ; 위와 같지만 append
sort < aa.lst ; aa.lst 파일을 정렬해서 화면에 출력
sort < aa.lst > bb.lst ; aa.lst를 정렬해서 bb.lst에 쓴다.
< 프로세스 관련 명령어 >
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://blog.naver.com/minki1111?Redirect=Log&logNo=100189238563
'프로그래밍' 카테고리의 다른 글
React.js란 / React.js 정리 (0) | 2017.06.07 |
---|---|
리눅스 기본 명령어 (0) | 2017.06.01 |
Transfer-Encoding: chunked VS Content-Length (0) | 2017.05.22 |
Cookie, Session 에 관하여 (0) | 2017.05.22 |
HTTP 1.1 Keep-Alive 기능에 대해 (0) | 2017.05.22 |