-
[Linux] 파이프 문자CS 지식/리눅스 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
실습 예시는 위의 블로그를 참고하여 작성하였습니다.
'CS 지식 > 리눅스' 카테고리의 다른 글
[linux] 리눅스의 특징 (0) 2023.03.05 [Linux] 리다이렉션(Redirection, 재지향) (0) 2023.03.05 레드햇 (Red Hat) 이란? (0) 2023.03.03 [Linux] history 명령어 사용법 간단 정리 (0) 2023.02.28 호스트 이름 및 타임존 설정 (0) 2023.02.28