명령어 모음

by 조쉬 posted Mar 26, 2021
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
명령어는 보통 주로 쓰이는 옵션들이 있곤 하는데.. 그런것들 조차 가끔 잊어 버리기 때문에, 여기에 시간 날때마다 필자가 주로 쓰는 옵션들을 적어놓을 생각이다.
이전에 명령어 하나하나씩 포스팅해 놓은것들은.. 여기에 다시 쓰긴 귀찮으니.. 제외 하고 말이다..
(다시 한번 말하지만, 아래 명령어들의 옵션은 보통 더 많이 있다. 여긴 필자가 주로 쓰는것만 표시해 놓은것이다.)

ps : 현재 실행되는 프로세스들을 볼수 있는 명령어
ps -aux
-a : 모든 사용자의 프로세스 출력
-u : 자세한 정보 출력
-x : 제어 터미널이 없는 프로세스도 출력
ps -ef(==aux) | grep 찾을프로세스명 : 보통의 grep 사용법

kill : 현재 실행되는 프로세스를 종료하거나 하는 명령어
kill -9 해당프로세스의PID : 해당 프로세스가 강제 종료 된다.
여기서 -9는.. 필자도 여태껏 그냥 써왔는데 아래와 같은 뜻이 있다고 한다..
시그널번호 시그널이름 동작
1 SIGHUP 재시작
2 SIGINIT 인터럽트
9 SIGKILL 강제종료
15 SIGTERM 종료

해당 번호는 64까지 있으며, kill -l 이라고 치면 모두 나오지만, 몇개만 적어 놓은 것이다. ntsysv : 부팅시 자동실행되는 데몬들 목록 rpm : 패키지 설치및 관리를 위한 명령어 rpm -Uvh 설치파일명 : 설치파일이 있을경우 업데이트를 검사하고, 없을경우에는 설치한다. -U : 업그레이드 모드 -v : 상세한 출력 제공 -h : 패키지 설치를 해시마크(#)를 통해 표시 -i : 설치모드 -e : 삭제모드 -e --nodeps (의존성문제 무시 삭제) -q : 질의모드 (설치목록을 조회함) -qa |grep 설치파일명 : 해당 설치파일의 패키지를 다 보여줌 -qi 설치파일명 : 해당 패키지에 대한 정보 -ql 설치파일명 : 해당 패키지에 포함된 모든 파일명 출력 cat : 해당 파일의 내용 표시 cat /etc/passwd : 전체 계정 확인 cat /proc/version : 리눅스 버전확인 cat /etc/issue : centos 버전확인 cat file1 file2 : file1과 file2를 이어서 보여줌 cat file1 file2 > file3 : file1과 file2의 내용을 이은 새로운 파일 file3을 만듬 startx : x윈도우 사용하기 useradd : 사용자 계정 추가 useradd 계정이름 -d 계정폴더 : 계정추가와, 계정 폴더를 생성해줌. userdel : 사용자 계정 삭제 userdel -r : 해당 유저의 모든 파일과 디렉토리 폴더를 삭제한다. su : 사용자 전환 su 계정 아이디 : 해당 계정으로 전환 chown : 디렉토리 소유자 변경 chown 소유자:그룹 디렉토리이름 : 해당 디렉토리의 소유자와 그룹을 변경 chown -R 소유자:그룹 디렉토리이름 : 해당 디렉토리의 하위 디렉토리들까지 모두 한번에 바꿔준다. chmod : 디렉토리나 파일의 권한 변경 chmod 707 파일이름 : 해당 디렉토리나 파일의 권한 변경 chmod -R 707 디렉토리이름 : 해당 디렉토리의 하위 디렉토리들까지 모두 한번에 바꿔준다. vim : 문서 편집기 vim 문서이름 : 해당 문서를 열어서 편집할수 있게 해준다. esc키 : 현재 모드를 종료시켜준다. :w : 파일 저장 :w 새로운파일이름 : 해당 파일이름으로 저장 :e 새로운파일이름 : 새로운 파일을 연다 :wq! : 강제 저장후 종료 :set number : 줄번호 보이기 set nu 으로도 사용가능, 감출때는 :set number! 또는 :set nonu 또는 :set nu! :f : 현재 파일 이름과 커서의 줄 위치 ctrl + g 로도 사용가능 :split : 화면 수평 분할 :split 파일명 : 다른 파일로 수평 분할 :vs : 화면 수직 분할 :res 13 : 13만큼 분할된 화면 표시 :only : 다시 원래대로 한화면 ctrl + ww : 분할된 화면 이동 vim 파일1 파일2 파일3.... 또는 :e 파일이름 으로 여러 파일을 열었을때, :ls : 버퍼의 내용을 보여준다. :b [N] : 버퍼의 N번째 파일로 이동 :bp : 버퍼의 이전 작업 파일로 이동 :bn : 버퍼의 다음 작업 파일로 이동 :bw : 현재 작업 파일을 버퍼에서 삭제 ctrl + i : 다음에 위치했던 커서로 이동 ctrl + o : 이전에 위치했던 커서로 이동 ctrl+b : 한화면 위로 스크롤 ctrl+f : 한화면 아래로 스크롤 i : 입력모드로 전환(해당 커서위치에 입력) p : 커서가 있는 위치에 붙여 넣기 - [n]p 로 여러번 붙여넣기 사용가능 v : 블록 지정 y : 복사하기 ( v로 블럭지정후에 쓰면 됨.) d : 잘라내기 ( v로 블럭지정후에 쓰면 됨.) /검색할문자 : 해당 문자를 검색한다. 다음으로 이동 n, 이전으로 이동 N :s/old/new : 현재 행의 처음 old 라는 문자를 new로 치환 :s/old/new/g : 현재 행의 모든 old 라는 문자를 new로 치환 :%s/old/new/g : 문서 전체의 old 라는 문자를 new로 치환 u : 실행취소 ctrl+R : 다시 실행 ssh : 쉘접속 ssh -p 포트번호 계정명@호스트이름(또는 IP) : 해당 호스트주소로 쉘접속을 하게 해준다. 포트 번호는 주로 22 이지만 보안상 다른포트를 사용하는 경우도 있다. history : 그동안 사용했던 명령어 들을 보여준다. (보통 home 디렉토리의 .bash_history 에 저장된다. ) history | grep 검색어 : 명령어중 검색어가 들어가는 명령어들만 보여준다. history "숫자" : 최근 사용된 명령어를 "숫자" 만큼 보여준다. !! : 가장 최근에 실행한 명령어를 실행한다. history 후 !숫자 : history로 검색된 해당 목록중 줄번호의 명령어를 실행시킨다. !문자 : history 목록중 해당 문자로 시작하는 가장 최근 명령어를 실행한다. ls : 해당 디렉토리의 파일 목록을 보여준다. ls -a : 숨긴파일들까지 모두 보여준다. ls -l : 해당 파일들에 대한 자세한 정보를 보여준다.(접근권한, 소유자, 날짜) ll : ls -l 과 같은 출력 결과를 보여준다. ll -SS -h : 용량이 큰 순서대로 보여준다 ll -SSr : 용량이 작은 순서대로 보여준다 cp : 파일 복사 cp -a [복사할파일이나디렉토리] [복사되어새로생길파일이나디렉토리] : 해당파일(디렉토리)의 속성이나 연결 하위 파일까지 복사( -dpr 과 같다 ) cp -r [] [] : 해당 파일(디렉토리)의 하위 파일들까지 모두 복사 cp -f [] [] : 덮어쓰기 물어보지 않고 복사 cp -p [] [] : 원본파일의 소유주, 그룹, 권한, 시간정보까지 그대로 복사 cp명령어를 사용할때 -r 옵션으로 하위 폴더까지 복사 한다면, 알아둬야 할 사항이 있다. 예) cp -rp ./test1 /home/virtual/test2 위와 같은 명령어를 쳤을때, 해당 virtual 폴더에 test2폴더가 있다면 test1은 test2폴더의 하위에 생성된다. 그리고 test2 폴더가 없다면, test2라는 이름의 폴더가 생성되어 복사된다. rm : 파일 삭제 rm -r [삭제할파일]: 해당 디렉토리의 하위 파일까지 모두 삭제 rm -f [] : 삭제시에 삭제여부 물어보는 메세지 안뜨게 함. rm -rf [] : 삭제 메세지 없이 해당 하위 파일까지 모두 삭제 df : 현재 하드의 용량을 표시해 주는 명령어 df -a : 크기가 0인 것까지 모두 보여준다. df -lh : 크기가 0이 아닌것들만 골라서( -l ), 보기편한 단위로( -h ) 보여준다. df -P : 마운트의 이름이 길 경우에 하나의 마운트 정보가 2줄로 보이게 되는 경우가 있는데, 이 옵션을 주면 무조껀 한줄로 보이게 해준다. awk를 사용 할 때 유용할 것이다. du : 폴더의 용량을 표시해 주는 명령어 du -k --max-depth=1 : 현재 폴더의 하위 디렉토리를 깊이 1까지(--max-depth=1) 용량단위는 kb로( -k ) 보여준다. du -h -a : 현재 디렉토리의 모든 파일을( -a ) 사용자가 보기 편한 단위로( -h ) 보여준다. grep : 해당 파일의 문자열을 검색할 수 있는 명령어. (정규표현식을 사용해서 검색할 수 있지만, 필자는 그냥 간단한 명령어만 쓴다... 해당 명령어에 대해서는 다른 곳에서 다시 검색을 해보면 제대로 알 수 있을것이다.) grep [검색문자열] [검색위치] : 해당 위치에서 해당 문자열을 포함하는 파일과 문자열을 표시해준다. grep [검색문자열]* [검색위치] -r : 해당 검색문자열로 시작하는 문자열을, 해당 파일의 하위 파일까지 검색 grep [검색문자열] *.txt : txt파일중에서만 검색 이건 사용시 조금 헷갈리는 부분이 있어서 예를 몇개 적어놓겠다. grep 'test text' ./ -r : 현재 위치에서 해당 파일의 하위까지 test text 라는 문자열을 찾아준다. grep testtext /home/virual : /home/virtual 폴더에서 testtext 라는 문자열을 찾아준다. grep "문자열" ./ -r --exclude=*.{jpg,png,bmp,gif} : 하위 파일들중에 jpg,png... 등의 파일을 제외 하고 찾는다. 단 *.{jpg} 처럼 하나의 대상만 쓸대는 먹히지 않는다. 이럴땐 *.jpg 라고 해주어야 한다. grep "문자열" ./ -r --include=*.{php,html,htm} : 하위파일들중에 php,html,htm 파일만 검색한다. grep "문자열1\|문자열2\|문자열3" : 해당 문자열들이 들어간 것들을 모두 찾아준다. or의 기능 mv : 해당 파일을 이동, 해당파일의 이름을 변경(실제로는 파일의 이동이지만, 주로 이름변경 용도로 많이 쓰이곤 한다.) mv [대상폴더나파일] [옮길위치와이름] top : 윈도우의 작업관리자와 비슷한 것이라고 보면 된다. 단, 작업관리자가 그렇듯이 해당 상태값은 계속 변하기 때문에 실행 시켜 놓으면 주기적으로 결과가 새로고침되어 보여지는 방식으로 표시 된다. 실행전 옵션. top -n 숫자 : 결과를 숫자만큼만 보여준 후에 top을 종료한다. top -b : 결과를 배치모드로 보여준다.(잘림 없이 전체가 다 보여지게 됨.) 실행후옵션. shift + p : cpu 사용량이 큰 순서로 보기 shift + m : 메모리 사용량이 큰 순서로 보기 shift + t : 사용시간이 오래된 순서로 보기 u : user 검색 space : 새로고침 q : 종료 top -n 1 | grep -i cpu\(s\)| awk '{print $5}' | tr -d "%id," | awk '{print 100-$1}' : cpu점유율만 보기 하나하나 설명하면 top -n 1 | grep -i cpu\(s\) : cpu(s)가 들어간 줄을 찾는다 top -n 1 | grep -i cpu\(s\)| awk '{print $5}' : 그줄의 5번째 항목을 가져온다. top -n 1 | grep -i cpu\(s\)| awk '{print $5}' | tr -d "%id," : 가져온 항목에서 "%id,"라는 문구를 제거한다. top -n 1 | grep -i cpu\(s\)| awk '{print $5}' | tr -d "%id," | awk '{print 100-$1}' : 나온 항목을 100에서 빼준다. netstat : 네트워크의 포트 상태를 알수 있다. netstat -anp | grep "LISTEN " : LISTEN중인 포트와 프로세스를 확인 할 수 있다. tcpdump : 패킷 분석, 캡쳐 tcpdump -X -i eth0 tcp port 80 : eth0의(-i) tcp 80포트를 16진수(-X)로 보여줌 tcpdump -i lo -s0 tcp -w /socket_view.cap : localhost의 패킷을 최대길이로(-s0)로 특정파일에 저장(-w) 한다. scp : 다른 서버간의 파일및 디렉토리 복사 scp [옵션] [계정명]@[다른서버IP주소]:[경로] [경로] : 다른 서버에 있는 파일을 현재 서버로 복사 scp [옵션] [경로] [계정명]@[다른서버IP주소]:[경로] : 현재 서버에서 다른 서버로 파일 복사 scp -P 22 -rp b1ix@123.101.123.1:/var/www/html/ /var/www/html yum : 패키지 설치, 삭제, 관리 yum -y list [패키지명] : 해당 패키지의 설치 여부 체크 yum install [패키지명] : 해당 패키지 설치 yum remove [패키지명] : 해당 패키지 삭제 zip : zip으로 파일 압축 zip -j [파일경로] [압축할파일들...] : j옵션 없이 압축할 경우 압축파일 내에 [파일경로]까지 그대로 들어가 있게 된다. 하지만 j옵션을 넣으면 해당 구조 없이 압축 된다. tail : 파일의 마지막 부분을 출력한다 - 보통 로그파일의 실시간 정보를 볼때 많이 쓰인다 tail -f [파일명] : 파일의 마지막 10줄을 해당 파일이 수정될때마다 실시간으로 계속 출력해준다. tail -n [숫자] [파일명] : n 다음에 지정된 숫자만큼의 줄을 출력한다.