CS 지식/리눅스

[Linux] 파이프 문자

쑨토리 2023. 3. 5. 11:47

파이프(Pipe)


파이프는 프로세스의 통신을 위해 도입한 것으로 어떤 프로세스의 출력이 다른 프로세스의 입력으로 쓰이게 하는 것을 말한다. 

리눅스에서 파이프는 | 기호를 사용하고, 여러 개를 사용하면 파이프라인(Pipe-Line)을 구성하게 되면서 데이터들은 파이프라인을 따라 흐르게 된다. 결과적으로 파이프는 여러 명령을 조합할 때 사용하고 명령어와 명령어 사이에 | 기호를 사용한다.

= 파이프 라인은 여러개의 명령어를 실행할 때 이전 명령어의 결과를 다음 명령어의 입력값으로 사용하고 싶을 때 사용하며, 쉘 프롬프트(Shell prompt)에서 한번에 사용 가능한 파이프의 개수는 제한이 없다. 

 

+ 이전 명령어의 출력값을 필터링하거나 가공할 때 주로 사용하기 때문에 awk, cut, grep, more 등의 명령어들을 조합해서 많이 사용합니다. 

 

 

 

 


 

파이프라인 사용 예시 

 

cat /etc/passwd | grep mail

/etc/passwd 파일에는 현재 시스템의 계정정보들이 들어있다.

cat 명령어에 의해 각 계정 정보가 라인별로 출력이 된다. 

그 중에서 mail 이라는 문자열이 들어간 라인만 필터링해서 출력하고 싶을 때 

파이프( | )를 사용하여 cat 명령어의 결과를 grep 명령어로 전달할 수 있다.

 

 

 

- 현재 디렉토리에서 c라는 글자가 들어간 파일만 출력하고 싶을 경우에도 파이프라인을 사용해준다. 

# ls
[출력값]
language.bash language.delphi language.javascript language.c language.english language.korean language.cpp language.java language.python

# ls | grep c
[출력값]
language.c language.cpp language.javascript

 

 

- 파이프라인을 사용해서 /etc 디렉토리의 파일 목록을 한 화면씩 나누어서 출력하는 방법

# ls -l /etc | more

total 1352
-rw-r--r--  1 root root       16 Jan  5 21:14 adjtime
-rw-r--r--  1 root root     1518 Jun  7  2013 aliases
-rw-r--r--  1 root root    12288 Jan  5 21:16 aliases.db
drwxr-xr-x  2 root root     4096 Apr 17 02:00 alternatives
-rw-------  1 root root      541 Aug  3  2017 anacrontab
-rw-r--r--  1 root root       55 Mar  1  2017 asound.conf
drwxr-xr-x  2 root root     4096 Jan  5 21:12 bash_completion.d
-rw-r--r--  1 root root     2853 Nov  5  2016 bashrc
drwxr-xr-x  2 root root     4096 Mar  7 13:27 binfmt.d
-rw-r--r--  1 root root       38 Aug 30  2017 centos-release
-rw-r--r--  1 root root       51 Aug 30  2017 centos-release-upstream
drwxr-xr-x  2 root root     4096 Aug  4  2017 chkconfig.d
-rw-r--r--  1 root root     1108 Jan 31  2017 chrony.conf
-rw-r-----  1 root chrony    481 Jan 31  2017 chrony.keys
drwxr-xr-x  2 root root     4096 Jan  5 21:11 cron.d
drwxr-xr-x  2 root root     4096 Jan  5 21:12 cron.daily
-rw-------  1 root root        0 Aug  3  2017 cron.deny
drwxr-xr-x  2 root root     4096 Jan  5 21:11 cron.hourly
drwxr-xr-x  2 root root     4096 Jun  9  2014 cron.monthly
-rw-r--r--  1 root root      451 Jun  9  2014 crontab
drwxr-xr-x  2 root root     4096 Jun  9  2014 cron.weekly
-rw-------  1 root root        0 Jan  5 21:10 crypttab
-rw-r--r--  1 root root     1620 Nov  5  2016 csh.cshrc
-rw-r--r--  1 root root      841 Jun  7  2013 csh.login
drwxr-xr-x  4 root root     4096 Jan  5 21:11 dbus-1
drwxr-xr-x  2 root root     4096 May 10 07:32 default
drwxr-xr-x  2 root root     4096 Apr 17 02:00 depmod.d
drwxr-x---  4 root root     4096 Mar 13 10:23 dhcp
-rw-r--r--  1 root root     5090 Nov  4  2016 DIR_COLORS
-rw-r--r--  1 root root     5725 Nov  4  2016 DIR_COLORS.256color
-rw-r--r--  1 root root     4669 Nov  4  2016 DIR_COLORS.lightbgcolor
-rw-r--r--  1 root root     1285 Jan  5 12:47 dracut.conf
drwxr-xr-x  2 root root     4096 Jan  5 12:47 dracut.conf.d
-rw-r--r--  1 root root      112 Mar 16  2017 e2fsck.conf
-rw-r--r--  1 root root        0 Nov  5  2016 environment
-rw-r--r--  1 root root     1317 Nov  5  2016 ethertypes
--More--

 

 

 

 

 


https://gracefulprograming.tistory.com/92

 

[Linux] 파이프(pipe)에 대한 이해

개요 안녕하세요 피터입니다. 오늘은 리눅스의 파이프(pipe)에 대해서 설명드리겠습니다. 파이프는 재지향(redirection)과 더불어 리눅스의 명령어들을 훨씬 강력하게 무장시켜주는 역할을 하는 핵

gracefulprograming.tistory.com

 

실습 예시는 위의 블로그를 참고하여 작성하였습니다.