리다이렉션과 파이프

리다이렉션과 파이프

Stansdard Stream(표준 입출력)

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

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

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

리다이렉션(redirection)

표준 스트림 흐름을 바궈준다.
주로 표준 출력을 화면이 아닌 파일로 할때 사용한다.
혹은 파일에 있는 내용을 응용 프로그램에 입력으로 바꿔 줄때 사용하기도 한다.

1
2
3
ls > files.txt
head < files.txt
head < files.txt > files2.txt

head < files.txt 원래는 이게 화면에 출력 되어야 하지만 뒤에 > files2.txt 가 있기 때문에 리다이렉션 되어서 files2.txt 에 해당 내용이 적힌다.

ls >> files.txt 기존에 파일이 있으면 append 되어서 추가된다.

파이프 (pipe)

두 프로세스 사이에서 한 프로세스의 출력 스트림을 또다른 프로세스의 입력 스트림으로 사용하는 기능.
기호로 |를 사용한다.

유닉스의 철학 : 프로세스를 간단하게 만듦.

ls | grep files.txt : grep 은 입력으로 들어온 데이터 중에서 인수로 받은 텍스트를 찾는 명령어이다.
파일 리스트에서 특정한 파일만 찾을때 사용한다.

grep flag