파이프라인과 리다이렉션

Numberbeen·2022년 12월 11일
0

DevOps Bootcamp

목록 보기
11/30

리다이렉션(Redirection)

리눅스에서 프로그램은 보통 3개의 표준 스트림인 stdin, stdout, stderr 를 자동으로 열게된다.
리다이렉션은 이러한 표준 스트림의 흐름을 바꿔 파일로 표준 입/출력 할 수 있도록 한다. 리다이렉션을 쓰고 싶다면 기호인 > 혹은 < 를 사용한다.

$ps aux > ps. txt
#명령어 > 파일

위와 같이 입력하게 되면, ps aux 명령의 출력 결과를 ps. txt 파일에 저장하게 된다. 좀더 상세하게 설명하면 ps aux 의 출력 스트림을 ps.txt 라는 파일로 전환하여 저장하라는 것이다.

반대의 경우도 가능하다.

$head < ps.txt
#명령어 < 파일

head 명령은 파일의 처음 부분을 설명한 라인(line)만큼 출력하는 명령어이며, 따로 줄 수를 정하지 않으면 기본적으로 10줄이 출력된다.
조금 더 응용하자면

$ head < ps.txt > sample.txt
# 명령어 1 < 들어오는 파일 > 나가는 파일

위의 코드를 설명하자면.
1. ps.txt 의 내용을 head 명령의 입력스트림으로 전환하여 전송.
2. head 명령은 입력 받은 ps.txt 의 내용에서 처음 10줄만 출력.
3. head 명령의 출력 스트림은 sample.txt 파일에 연결한다.
4. head 명령의 출력 스트림의 결과를 sample.txt 파일에 저장한다.

리다이렉션 기호방향의미
>표준 출력명령의 결과를 파일로 저장 (기존 파일 덮어씀)
>>표준 출력(append)명령의 결과를 기존 파일에 추가
<표준 입력파일의 데이터를 명령에 입력

파이프(Pipe)

📌 파이프는 어떤 명령의 결과를 다시 어떤 명령의 입력으로 받아야 할 때 사용된다. 프로세스 1 의 출력 스트림을 프로세스 2 의 입력 스트림으로 사용할때 파이프 기호 | 를 사용하여 연결한다.

$ process1 | process2

예를 들어 터미널에서 /bin 으로 이동 후 ls -l 명령을 타이핑 하면 많은 파일이 나타나는데 이 중에서 z
sh 라는 문자열만 포함이 된 것을 보려고 한다면? grap 명령어와의 조합으로 가능하다.

$ls -l | grep zsh

profile
내기 이해한 것을 보관하는 곳

0개의 댓글