CS/시스템 프로그래밍

쉘 사용법 정리 - 리눅스 리다이렉션과 파이프

:_: 2022. 2. 25. 17:59

Standard Stream (표준 입출력)

 

1. command로 실행되는 프로세스는 세가지 스트림을 가지고 있습니다.

  • 표준 입력 스트림(Standard Input Stream) - stdin
  • 표준 출력 스트림(Standard Output Stream) - stdout
  • 오류 출력 스트림(Standard Error Stream) - stderr

2. 모든 스트림은 일반적으로 plain text로 console 에 출력하도록 되어 있음

 

redirection (리다이렉션)

- 표준 스트림 프름을 바꿔줄 수 있습니다

  1.  > , < 을 사용함

  2. 주로 명령어 표준 출력을 화면이 아닌 파일에 쓸 때

 

EX 1 ) 

 

ls > files.txt 

ls로 출력되는 표준 출력 스트림의 방향을 files.txt로 바꿔줌(files.txt에 ls로 출력되는 결과가 저장됨)

 

EX 2 )

 

head > files.txt 

 : files.txt의 파일 내용이 head라는 파일의 처음부터 10라인까지 출력해주는 명령으로 넣어짐

  (files.txt의 앞 10라인이 출력됨) 

 

EX 3 )

 

head < files.txt > files2.txt

 - files.txt의 파일 내용이 head로 들어가서, file,txt의 앞 10라인을 출력

 - head의 출력 스트림은 다시 files2.txt로 들어감

 - head는 files.txt 내용을 출력하지 않고, 해당 출력 내용이 다시 files2.txt에 저장됨

   (결과적으로 files.txt의 앞 10 라인이 files2.txt에 저장됨)

 

EX 4 )

 

기존 파일에 추가는 >> 또는 << 사용

 - ls >> files.txt

 - 기존에 있는 files.txt 파일 끝에, ls 출력 결과를 추가해줌

 

 

Pipe (파이프)

두 프로세스 사이에서 한 프로세스의 출력 스트림을 또다른 프로세스의 입력 스트림으로 사용할 때 사용됨

 

EX )  ls l grep files.txt

- ls 명령을 통한 출력 내용이 grep 명령의 입력 스트림으로 들어감

- grep files.txt는 grep 명령의 입력 스트림을 검색해서 files.txt가 들어있는 입력 내용만 출력해줌

- 따라서, ls 명령으로 해당 디렉토리/파일 중에 files.txt파일이 있는지를 출력해줌

 


정리

1. Standard Stream : stdin, stdout,stderr

2. redirection : 주로 명령어 표준 출력을 화면이 아닌 파일에 쓸 때

3. pipe : 두 프로세스 사이에서 앞에 있는 프로세스의 출력 스트림을 뒤에 있는 프로세스의 입력 스트림에 사용할 때

 

 

제로베이스 컴퓨터 공학 전공자 따라잡기 강의 정리한 내용입니다.
 
728x90