운영체제/Linux

[Linux] 명령어 정리 :: netstat, cut, awk, du, grep, sed

쌍쌍바나나 2016. 5. 30. 22:00
반응형

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 { action } -F 필드 구분자 이다. Action 액션은 문장(statements)으로 이루어져 있다. 액션은 간단하게 상수 하나로 이루어질 수도 있고, 개행 문자나 세미콜론(;)에 의해 분리된 몇 개의 문장의 연속으로 구성될 수도 있다. print : 특정 규칙에 맞게 데이터를 화면에 출력한다. $1, $2 … $n : 필드 번호 $NF : 마지막 필드 

예제
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



반응형