13.10. 파이프 (Pipe)와 페이저 (Pager)

리눅스에서 파이프는 한 명령어의 표준 출력을 다른 명령어의 표준 입력으로 연결합니다.

이전에 설명했던 ls 명령을 생각해 보십시오. ls 명령어와 함께 사용할 수 있는 수많은 옵션들이 있었습니다, 그러나 그 디렉토리 내용이 너무 빨리 지나가버려서 그 내용을 읽을 수 없다면 어떻게 하시겠습니까?

다음 명령을 사용하여 /etc 디렉토리의 내용을 한번 보십시오:

ls -al /etc

출력한 내용이 화면에서 지나가버리기 전에 어떻게 해야 자세한 내용을 볼 수 있을까요?

한가지 방법은 less라고 불리우는 유틸리티로 출력을 파이프하는 것입니다. 페이저 (pager)라고 알려져 있는 less 명령어는 정보를 한번에 한 페이지씩 (또는 한 화면씩) 보여줍니다.

수직 바 (|)를 사용하여 명령을 파이프합니다.

ls -al /etc | less

이제 /etc의 내용을 한번에 한 화면씩 볼 수 있습니다. 화면 앞쪽으로 이동하기 위해서는, [Space] 키를 누르십시오; 화면 뒤쪽으로 이동하기 위해서는, [B] 키를 누르십시오; 끝내기 위해서는 [Q]를 누르시면 됩니다. 또한 less 명령어를 사용시 화살표 키를 이용하여 화면 아래 위로 이동할 수도 있습니다.

less 유틸리티를 사용하여 텍스트 파일 내에서 키워드 검색을 하시려면, [/] 기호를 입력하신 후 파일 내에서 검색하려는 키워드를 입력해 주십시오. 예를 들면:

/Linux

작은보힌트
 

스타트업(startup) 메시지를 보다 자세히 읽으시려면, 쉘 프롬프트에서 dmesg | less 를 입력합니다. 한번에 한 페이지씩 파일을 읽을 수 있습니다. 화살표 키를 사용하여 파일을 읽으실 수 있습니다; 파일 내에서 특정 문자열을 찾으시려면, [/] 기호를 입력하신 후 검색할 단어를 입력하시면 됩니다.

파이프는 또한 파일에서 특정 줄만 출력하는데 사용될 수 있습니다. 다음을 입력해 보십시오:

grep coffee sneakers.txt | lpr

이 명령은 sneakers.txt 파일에서 "coffee"라는 단어가 들어있는 모든 라인을 출력할 것입니다. (grep 명령어에 대한 더 많은 정보는 13.11.3 절을 참조하시기 바랍니다).

13.10.1. more 명령어

more 와 less의 주된 차이점은 less 명령어는 화살표키를 사용하여 파일 앞뒤로 이동이 가능하지만, more를 사용하면 [Spacebar]와 [B] 키를 사용하여 화면 앞 뒤로 이동할 수 있다는 점입니다.

/etc 디렉토리의 내용을 출력하기 위해 ls 명령 다음에 more을 사용합니다.

ls -al /etc | more

그림 13-10. ls의 출력을 more로 파이프하기

more를 사용하여 텍스트 파일 내에서 키워드를 검색하시려면, [/] 기호를 입력하신 후 파일 내에서 검색하려는 키워드를 입력해 주십시오. 예를 들면:

/foo

[Spacebar]를 사용하여 다음 페이지로 이동합니다. 종료하려면 [q]를 누르십시오.