티스토리 뷰

728x90
반응형

오늘은 리눅스 명령어를 이어서 사용할 수 있는 Pipe '|'를 사용을 알아보자~
간단한 예로 cat /etc/passwd | grep -i 'root' 를 초보자 ~

 

목차

     


    Pipeline 사용법

    Pipeline 을 사용할 때 표준 입력을 받아 필터링한 후 결과를 보여준다.
    Pipeline에 붙여 사용하는 명령어들은?

      grep 출력 내용에 입력 값을 한 줄 단위로 문자열을 필터링 하여 줄 단위로 출력 
      sed 검색한 문자열 치환 및 삭제
      awk  구분자를 기준으로 해당 부분에 있는 문자열만 추출
      sort 입력 값을 정렬하여 표준 출력 
      uniq 정렬한 후 중복 값을 제외하고 출력 
      fmt 입력 값을 텍스트를 읽고 형식화된 텍스트로 출력
      pr 입력에서 텍스트를 입력 받은 후 페이지 단위로 출력 
      head 출력 시작 부분에 앞에서 10개 줄만 출력
      tail 출력 마지막 부분에서 10개 줄만 출력 
      tr 입력으로 부터 문자열을 변경하여 출력

     


    grep 명령어 사용법

    grep 는 입력 값을 한 줄로 문자열을 필터링한다고 했는데,
    " 일치하는 부분 문자열을 찾아서 해당 행을 출력" 이다.

    cat을 통해 문자열을 검색할 수 도 있고  또 는 grep 명령어 뒤에 출력 필요한 내용을 지정할 수 도 있다.

    우선 가장 많이 사용되는 옵션을 들은 아래와 같다.

    -i 대소문자 구분을 무시하여 대소문자만 다른 문자가 서로 일치하도록 합니다.
    -e , -E 패턴을 패턴으로 사용  옵션이 여러 번 사용 지정된 모든 패턴을 검색 / 패턴을 확장된 정규식으로 해석합니다
    -c 문자 를 카운트 하여 값을 출력 한다.
    -f FILE에서 한 줄에 하나씩 패턴을 가져옵니다.  
    이 옵션이 여러 번 사용되거나 -e(--regexp) 옵션과 결합된 경우 지정된 모든 패턴을 
    -v 일치감을 반전하여 일치하지 않는 선을 선택합니다.

     

    $ grep -Eiv '(^$|^#)' /etc/sudoers

    # 이 분은 문장은 제외 하고 출력 해준다.

    $ grep "root"  /etc/passwd 
    # /etc/passwd 에서 root 가 있는 행을 출력
    
    $ grep "root" /txt/username*
    # /txt/username 로 시작 하는 모든 파일에서 root 포함된 행 출력
    
    $ grep -i "root" /txt/username.txt
    # /txt/username.txt 에서 대소문자 구분없이 root 포함된 행 출력
    
    $ grep -c "root" /etc/passwd
    # /etc/passwd 파일에 root 문자열 수량 출력
    ## dmidecode 에서 메모리 수량 이나 cpu 수량 확인 할때 자주 사용
    
    $ grep -l "root" /txt/username*
    # /txt/username 모든파일에서 root 문자열이 있는 파일으르 찾아 출력
    ## 요거 꽤 유용하다 
    
    $ grep -o "ALL:(ALL)" /etc/sudousers
    # /etc/sudousers 파일에 ALL:(ALL) 로 완전히 일치하는 문자열 출력
    
    $ grep -r "root" /etc 
    # /etc 밑으로 붙은 모든파일에서  root 찾아 문자 출력
    
    $ grep -v "root" /etc/passwd
    # /etc/passwd 파일에서 root 가 없는 문자열 출력
    
    $ grep "^june" /var/log/messages
    # /var/log/messages 파일에서 june 으로 시작하는 문자열 추력
    
    $ grep "eth01$" /var/log/messages
    # /var/log/messages 파일에서 eth01 로 끝나는 문자열 출력
    
    $ grep -c "^$" /etc/sudousers
    # /etc/sudousers 비어 있는 문자열 수량 출력

    정리

    정리를 한 번에 다하려니 내용이 너무 많다....
    하나하나 포스팅해야겠다.

     

    시간은 금이라고 친구

     

    728x90
    반응형
    댓글