Kali Linux 기초 Part. 19 PIPE(파이프)

2025. 3. 19. 12:52보안/Linux

Kali Linux 기초 가이드는 normaltic 강의를 참고하여 제작하였습니다.

1. PIPE (파이프)

1. PIPE란?

한 명령어의 출력을 다른 명령어의 입력으로 전달하는 기능

즉, 여러 개의 명령어를 연결하여 데이터를 가공하는 데 사용 함.

 

2. 사용 방법

📌 예제: ls -l 출력에서 .txt 포함된 파일만 찾기

ls -l | grep ".txt"

 

ls -l 결과 중 .txt가 포함된 파일만 필터링

 

내부 동작을 알아 보자면,

  1. ls -l 명령어가 실행됨 -> 현재 디렉토리의 파일 목록 출력
  2. 출력된 목록이 grep ".txt" 명령어의 입력(stdin)으로 전달됨
  3. grep ".txt"이 입력을 받아 .txt가 포함된 파일만 필터링

즉, 첫 번째 명령어의 결과를 두 번째 명령어가 입력으로 받아 처리함.

또한, 파이프는 여러 개의 명령어를 연결해서 사용 할 수 있는데, 예제를 보자면

 

📌 예제: ls -l 출력에서 .txt 포함된 파일의 줄을 찾아 개수 세기

ls -l | grep ".txt" | wc -l

 

내부 동작으로,

  1. ls -l 명령어가 실행됨 -> 현재 디렉토리의 파일 목록 출력
  2. 출력된 목록이 grep ".txt" 명령어의 입력(stdin)으로 전달되어 필터링
  3. 필터링 된 출력을 wc -l 명령어의 입력(stdin)으로 전달되어 줄 개수를 출력

여기서 가장 많이 사용 하는 명령어는 grep 명령어 이다.

grep 은 특정 문자를 찾아내는데 사용한다.

grep [찾을 패턴] [수색할 파일/디렉토리]

 

실습

 

이제 실습을 해보자.

먼저 grep_test 라는 디렉토리를 만들고 그 안에 "I'm Pan" 이라는 내용의 grep_test.txt를 만들어 보자.

 

 

한번 grep을 이용해서 문자를 찾아 보자!

 

cat grep_test | grep "Pan"

 

찾은 걸 확인 할 수 있다!

이번엔 /etc/passwd 에서 root가 포함된 모든 줄을 가져 와 보자!

원래 cat /etc/passwd 명령어를 실행하게 되면 모든 데이터가 화면에 출력되지만, 파이프로 grep을 연결하여 실행하게 되면 cat /etc/passwd 값이 grep으로 넘어가서 grep 에서 그 데이터 안에 값을 찾아 줄 수 있다.

 

 

이런 식으로 root가 포함된 내용을 가져온 것을 확인 할 수있다.

이번엔 /bin 안에 find라는 단어가 들어간 파일을 찾아 보겠다.

 

ls /bin | grep find

 

 

이런 식으로 find단어만 들어간 파일 목록을 확인 할 수있다.

 

정리해보자면,

 

  • 파이프는 한 명령어의 출력을 다른 명령어의 입력으로 전달하는 기능이다.
  • 데이터를 임시 파일 없이 직접 전달하여 효율적인 데이터 처리가 가능하다
  • 여러 개의 명령어를 연결하여 사용 할 수도 있다.