안녕하세요. 루디쿡 아이티입니다~!!
이번에 소개드릴 리눅스의 핵심 기능은
파이프라인 (Pipeline) 입니다!!

파이프라인(|)이란?
파이프라인(pipeline), 혹은 '파이프'는 1973년, 유닉스의 아버지 중 한 명인
더글라스 맥클로이(Douglas McIlroy)가 창안한 개념입니다.
그는 "각 프로그램이 한 가지 일만 잘하게 만들고,
프로그램들이 서로 협력하도록 만들자"는 유닉스 철학을 실현하기 위해 파이프를 고안했습니다.
파이프라인은 이름 그대로 명령어들을 파이프로 연결하는 것을 의미합니다.
마치 공장의 조립 라인처럼,
한 명령어의 출력 결과를 다른 명령어의 입력으로 바로 전달하는 역할을 합니다. 🏭
이 간단한 기호 | 하나로, 단순한 명령어들을 유기적으로 엮어 매우 복잡하고 강력한 작업을 수행할 수 있습니다.
find, grep과 같은 명령어의 활용도를 극대화시켜주는 리눅스의 꽃과 같은 기능입니다.
오늘날 파이프라인은 모든 유닉스 계열 운영체제뿐만 아니라
Windows의 PowerShell 등에서도 채택한 표준적인 셸(Shell) 기능으로,
터미널을 다루는 사람이라면 반드시 알아야 할 필수 개념입니다.
파이프라인 기본 형식
명령어1 | 명령어2 | 명령어3 ...
- 명령어1의 표준 출력(stdout)이 명령어2의 표준 입력(stdin)으로 전달됩니다.
- 명령어2는 전달받은 입력을 가공하여 자신의 표준 출력으로 내보내고, 이는 다시 명령어3의 표준 입력으로 전달됩니다.
- 이 과정은 파이프로 연결된 모든 명령어가 실행될 때까지 계속됩니다.
파이프라인과 자주 쓰이는 친구들
파이프라인은 단독으로 쓰이기보다는 다른 명령어들과 함께 쓰일 때 진가를 발휘합니다.
| 명령어 | 설명 (Description) |
| grep | 입력 내용에서 특정 패턴(문자열)이 포함된 줄만 필터링합니다. |
| sort | 입력된 내용을 줄 단위로 정렬합니다. |
| uniq | 연속된 중복 줄을 제거합니다. (-c 옵션으로 횟수 계산 가능) |
| wc | 입력된 내용의 줄(line), 단어(word), 문자(character) 수를 셉니다. |
| head | 입력된 내용의 처음 일부 줄만 보여줍니다. (기본 10줄) |
| tail | 입력된 내용의 마지막 일부 줄만 보여줍니다. (기본 10줄) |
| awk | 입력을 특정 구분자로 나눠 원하는 필드(열)만 추출 및 가공합니다. |
파이프라인 실제 예시
이제 파이프라인을 이용해 실제 문제를 해결하는 예시를 살펴보겠습니다.
현재 실행 중인 웹 서버 프로세스만 확인하기!!
시스템에서 실행 중인 수많은 프로세스 중에서, 내가 원하는 httpd (Apache 웹 서버) 프로세스만 골라내 보겠습니다.
| 구분 | 내용 |
| 목표 | 전체 프로세스 목록에서 'httpd' 문자열이 포함된 프로세스만 찾아보기 |
| 전체 명령어 | ps -ef | grep httpd |
| 첫 번째 명령어 | ps -ef (시스템의 모든 프로세스 정보를 상세히 출력) |
| 파이프라인 역할 | ps -ef의 방대한 출력 결과를 grep 명령어의 입력으로 전달 |
| 두 번째 명령어 | grep httpd (입력된 내용에서 'httpd'가 포함된 줄만 필터링) |

httpd의 프로세스는 현재 없다는 내용입니다!!
실제로 httpd 프로세스는 실행되지 않기때문에
아!! 아직 프로세스가 안올라왔구나!!
실행 시켜야지!! 라는 답을 얻을 수 있습니다.
그럼 prometheus 프로세스를 grep 해보겠습니다.

prometheus는 프로세스가 잘 올라와있는 것을 확인할 수 있습니다!!
ps -ef 명령만 사용했다면 수십, 수백 줄의 프로세스 목록을
직접 눈으로 찾아야 했겠지만,
파이프라인으로 grep을 연결하니 단 한 줄의 명령어로 원하는 결과만 깔끔하게 얻을 수 있습니다.
내가 가장 많이 사용한 명령어 TOP 5 확인하기!!
여러 명령어를 파이프라인으로 연결하여 조금 더 복잡한 작업을 수행해 보겠습니다.
내가 터미널에서 어떤 명령어를 가장 많이 썼는지 확인하는 예제입니다.
| 구분 | 내용 |
| 목표 | 명령어 입력 기록(history)을 분석해 가장 자주 쓴 명령어 5개 찾기 |
| 전체 명령어 | history | awk '{print $2}' | sort | uniq -c | sort -nr | head -n 5 |
| 명령어 흐름 | 1. history: 명령어 기록 출력 2. awk '{print $2}': 각 줄에서 2번째 열(명령어)만 추출 3. sort: 명령어들을 이름순으로 정렬 (uniq를 위해) 4. uniq -c: 중복된 명령어를 세고, 횟수와 함께 출력 5. sort -nr: 횟수를 기준으로 내림차순 정렬 6. head -n 5: 정렬된 결과 중 상위 5줄만 출력 |

위와 같은 결과를 확인 할 수있습니다.
이처럼 파이프라인을 사용하면 각자 맡은 역할이 명확한 작은 명령어들을 조합하여,
마치 새로운 프로그램을 만든 것처럼 멋진 결과를 얻을 수 있습니다.
이것으로 리눅스의 강력한 기능, 파이프라인에 대한 소개와 사용법, 실제 예제에 대해서 알아보았습니다.
앞으로도 좋은 글로 찾아뵙도록 하겠습니다.
IT 성능 전문가, IT를 전하는 루디쿡아이티였습니다!!

감사합니다~!!

'인프라 (Infrastructure) > 운영체제 (OS)' 카테고리의 다른 글
| 리눅스 chmod 명령어 사용법 및 실제 활용 예시 (파일 권한 수정 변경) (0) | 2025.09.06 |
|---|---|
| 리눅스 sed 명령어 사용법 및 실제 예제 활용(텍스트 치환 / 바꾸기) (0) | 2025.09.06 |
| 리눅스 cat 명령어 사용법 및 실제 예제 활용(파일 내용 보기 / 합치기) (0) | 2025.09.05 |
| 리눅스 ls 명령어 사용법 및 실제 활용 예시 (0) | 2025.09.05 |
| 리눅스 mkdir 명령어 사용법 및 실제 예제 활용 (디렉토리 / 폴더 만들기) (0) | 2025.09.05 |