강좌
클라우드/리눅스에 관한 강좌입니다.
자격증 분류

리눅스마스터2급강좌 : 파이프라인 pipeline

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

리눅스마스터2급강좌 : 파이프라인 pipeline

파이프라

쉘의 강력한 특징 중 하나가 파이프라인을 사용하는 것이다.

 

 

 

 

우선, 파이프는 한 명령의 출력을 다른 입력으로 보내는 툴이며, 파이프를 만드는 심볼은 ¦(Vertical bar)이다.

 

 

 

 

그리고 파이프라인이란 ‘|’ 문자로 구분된 한 개 이상의 명령이 연속되어 나오는 것을 말한다.

 

파이프라인의 일반적인 형식은 다음과 같다.

 

 

 

 

command1의 결과 출력이 command2의 입력이 되며 또 command2의 결과가 command3의 표준 입력이 되고 3개뿐만 아니라 여러 개의 명령어가 가능하다.

 

 

 

 

command1의 표준 출력은 command2의 표준 입력으로 연결된다.

 

 

 

 

이후도 마찬가지이다.

 

 

 

 

 

$ command1 | command2 | command3

 

 

 

 

 

그리고 파이프라인 연결은 명령에서 명시한 리다이렉션보다 먼저 수행된다.

 

 

 

 

예약어인 ‘!’ 가 파이프라인 앞에 나오면 파이프라인의 종료 상태 값을 마지막 명령의 종료 상태에 대한 논리적인 NOT으로 설정한다.

 

 

 

 

그렇지 않은 일반적인 경우에는 마지막 명령의 종료 상태 값이 파이프라인의 종료 상태 값으로 된다.

 

 

 

 

 

 

쉘은 값을 반환하기 전에 파이프라인에 연결되어 있는 모든 명령이 종료하기를 기다린다.

 

 

 

 

파이프라인의 각 명령은 개별적인 프로세스로 실행된다.

 

 

 

 

다시 말해 각자의 서브 쉘 안에서 실행되는 것이다.

 

 

 

 

그리고 쉘은 파이프라인의 각각의 작업을 연관시킨다.

 

다음 예는 우선 현재 시스템을 사용중인 사용자들을 찾고 그 다음으로 그것들을 정렬시켜서 출력하는 것이다.

 

 

 

 

이 과정은 내부적으로 처리되며, 결국 정렬된 사용자 목록만이 현재 사용자의 터미널 화면에 출력된다.

 

 

 

 

 

$ who | sort

 

 

 

 

 

만약 cat 을 사용하여 파일의 내용을 출력하는데 그 양이 너무 많을 때에는 파이프라인과 more 명령어를 활용하여 내용을 한 화면씩 끊어서 읽을 수 있다.

 

 

 

 

 

$ cat long_text.txt | more

 

 

 

 

 

만약 특정 문자가 포함된 행만 출력하거나 해당 문자가 포함된 행을 제외하고 출력하고자 한다면 grep 명령을 사용한다.

 

 

 

 

grep 명령에 v 옵션을 사용하면 이 옵션 뒤에 지정된 문자가 포함되지 않는 줄만 출력한다.

 

 

 

 

 

$ cat long_text.txt | grep 행운

행운을 빕니다.

$

 

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,031 명
  • 현재 강좌수 :  35,769 개
  • 현재 접속자 :  113 명