Linux Shell 커맨드 정리 및 활용 예제
netstat
어느 포트가 어떤 프로그램으로 인해 열려있는지 확인하는 방법
netstat -tnlp | grep xxx
cut
텍스트 또는 문장에서 하나 이상의 부분을 제거.
cut [옵션][파일]
옵션
- -c : 지정한 컬럼 출력
- -f : 지정한 필드 출력
- -d : 구분자(delimiter).
- -f 옵션과 함께 사용.
예제
[root@ls ]# cut -c 2-5 /etc/passwd
/etc/passwd 파일의 2번째부터 5번째 문자까지를 출력한다
[root@ls ]# cut -f 3 anaconda-ks.cfg
anaconda-ks.cfg 파일의 3번째 필드를 출력한다. 필드 구분은 tab이다.
[root@ls ]# cut -f 2 -d : /etc/passwd
/etc/passwd 파일의 2번째 필드를 출력한다. 필드 구분은 ‘:’이
awk
열 단위로 정리되어 있는 텍스트 파일에서 데이터를 뽑아낼 때 사용.
문법
awk
예제
awk -F ':' '{ print $1 }' filename // 입력 필드를 ':'로 구별
awk -F "[ :]" '{ print $1 $2 }' filename // 스페이스와 ':'로 입력 필드 구별
awk ‘/aaa/’ filename // aaa라는 단어가 있는 라인 출력
awk ‘^aaa/’ filename // aaa로 시작하는 라인 출력
awk ‘/^(aa | bb)/’ filename // aa 또는 bb로 시작하는 라인 출력
du
Directory 사용 용량 보기 du -h --apparent-size
grep
정규 표현식에 매치하는 문자열을 찾아서 해당 행만을 출력.
문법
grep [옵션] <찾을 문자열 정규 표현식> [대상 파일명]
옵션
- ‘-i’ : 소문자와 대문자를 구분하지 않고 검색
- ‘-c’ : 매치하는 행 수만을 리턴
- ‘-w’ : 단어 단위로 패턴을 검색
- ‘-v’ : 검색 패턴에 매치하는 내용이 없는 행만 리턴
- ‘-n’ : 라인 번호를 붙여서 리턴
ex) # grep -n '^jack:' /etc/passwd (/etc/passwd 파일에서 jack을 찾는다. jack이 행의 맨 앞에 있으면 행 번호를 화면으로 출력한다.) 종료 상태 : grep은 파일 검색의 성공 여부를 종료 상태값으로 되돌려준다. 패턴을 찾으면 0, 패턴을 찾을 수 없으면 1, 팡리이 존재하지 않을 경우 2
sed
비 대화모드의 라인 단위 편집기
문법 sed [옵션] [sed 명령어] [파일]
치환 (substitute) : 원본 파일을 바꾸지 않고 출력을 바꿔서 한다.
sed ‘s/대상 정규식 패턴/바꿀 문자열' filename : 제일 처음 나오는 것을 switch
sed ‘s/대상 정규식 패턴/바꿀 문자열/g' filename :
모든(global)에서 switch
ex 1) filename에서 제일 처음 나오는 aaa를 bbb로 치환
sed ‘s/aaa/bbb’ filename
ex 2) filename에서 모든 aaa를 bbb로 치환.
sed ‘s/aaa/bbb/g’ filename
찾기, 출력
sed -n ‘/정규식 패턴/p’ filename
-n : 읽은 것을 출력하지 않음
/p : 해당 라인을 출력
삭제
sed '/TD/d' 1.html : TD 문자가 포함된 줄을 삭제하여 출력한다.
sed '/Src/!d' 1.html : Src 문자가 있는 줄만 지우지 않는다.
sed '1,2d' 1.html : 처음 1줄, 2줄을 지운다.
sed '/^$/d 1.html : 공백라인을 삭제하는 명령이다
[참고]
http://www.insford.com/wiki/Wiki.jsp?page=Shell%20Script
http://www.dreamy.pe.kr/zbxe/CodeClip/6332
http://korcow.egloos.com/1854945
'운영체제 > Linux' 카테고리의 다른 글
[Shell] 쉘 스크립트 주석 하는 방법 :: 한 줄, 블록 (0) | 2016.06.10 |
---|---|
[Shell] 쉘 스크립트 주석 하는 방법 :: 한 줄, 블록 (0) | 2016.05.31 |
[Linux] bash shell에서 날짜, 시간 가져오기 - date 사용하기 (0) | 2016.04.06 |
[Linux] Crontab 설정 및 로그 - 스케줄링하기 (1) | 2016.03.29 |
[Linux] 윈도우에서 리눅스 원격 접속 방법 (xRDP, XFCE4) (1) | 2016.03.22 |