Linux

Linux 파이프

Bithub 2024. 3. 15. 01:33
728x90

파이프란?

파이핑은 하나의 명령어의 출력스트림을 파이프를 통해 다른 명령어의 입력스트림으로 연결해주는 작업이다.

파이프는 커널이 주기억장치(RAM)에 만든다.

입출력 리다이렉션과 다른 점은 리다이렉션은 파일로 스트림을 연결했던 반면, 파이핑은 다른 명령어의 스트림이 이어진다.

 

Syntax

command1 | command2 | command3 ...

 

Example

sort names.txt | uniq

james
sam
steven jobs
thosmas
tom

기명 파이프(Named Pipe)

 

 

기명파이프가 일반파이프(익명파이프)와 다른 점은 파이프의 역할이 kernel의 파이프가 아니라 파일형태의 FIFO라는 점이다.

 

Syntax

mkfifo myFIFO

(섹션1)
cat < myFIFO
(섹션2)
cat > myFIFO

 

우선 mkfifo myfifo를 실행해보자.

그럼 myfifo 파일이 생성된다.

myfifo 파일의 파일 종류가 'p'로 표기되어 있는데 이는 pipe임을 의미한다.

 

Linux에서 2개의 섹션을 열어보자.

한쪽 터미널에는 cat > myFIFO를, 다른쪽 터미널에는 cat < myFIFO를 입력해보자.

cat > myFIFO를 입력한 터미널에서 키보드 입력을 해보면 다른 터미널에서 출력되는 것을 볼 수 있다.

cat > myfifo
cat < myfifo