본문 바로가기
인프라 (Infrastructure)/운영체제 (OS)

리눅스 파이프라인 (|) 명령어 조합 사용법 및 실제 예제

by IT 성능 전문 블로그 2025. 9. 5.
반응형

안녕하세요. 루디쿡 아이티입니다~!!

이번에 소개드릴 리눅스의 핵심 기능은

파이프라인 (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를 전하는 루디쿡아이티였습니다!!

 

감사합니다~!!

 

 

 

반응형