/ 레드햇

2.7 Using I/O Redirection and Pipes

레드햇 rhcsa 입출력 리다이렉션 파이핑
https://4am.kr/2-6-understanding-i-o-redirection-and-pipes/

Redirection, Piping 이란

Redirection
  • 리다이렉션은 표준 입출력의 방향을 바꿔준다.
  • 표준 입력은 키보드, 표준 출력은 모니터이지만 이를 파일로 처리하고 싶을 때 주로 사용한다.
command1 > file1
command1 < file1

The standard streams for input, output, and error - Copyright en.wikipedia.org

Piping
  • 파이프는 2개의 프로그램을 연결해주는 연결 통로를 의미한다.
    command1 | command2
  • 한 프로그램에서 생성한 출력을 읽어 다른 프로그램에서 사용되는 경우, 중간에 불필요한 파일을 생성하지 않고 같이 프로그램이 파이핑을 통해 동시에 실행될 수 있도록 한다.
  • 아래의 그림은 3개의 프로그램이 동시에 파이프라인으로 돌아가는 것을 보여준다.
    A pipeline of 3 programs run on a text terminal - Copyright en.wikipedia.org
표준 입출력과 에러
표준 입출력 기본적인 입출력의 도착지 리다이렉션에서의 사용 파일 설명자 번호
STDIN 컴퓨터의 키보드 < (0<과 같다) 0
STDOUT 컴퓨터의 모니터 > (1>과 같다) 1
STDERR 컴퓨터의 모니터 2> 2
일반적인 Bash Redirectior들
리다이렉터 설명
> (1>과 같다) STDOUT(표준 출력)을 리다이렉트한다. 만약에 리다이렉트가 파일로 된다면 파일이 있는 경우 현재 파일의 내용에 덮어쓰기(overwrite)된다.
>> (1>>과 같다) STDOUT(표준 출력)을 리다이렉트한다. 만약에 리다이렉트가 파일로 된다면 파일이 있는 경우 현재 파일의 내용에 추가(append)된다.
2> STDERR(표준 에러)를 리다이렉트한다.
2>&1 STDERR(표준 에러)를 STDOUT(표준 출력)과 같은 곳으로 리다이렉트 한다.
< (0<과 같다) STDIN(표준 입력)을 리다이렉트한다.
사용 예
#redirection
#'ls -l'의 결과를 화면에 출력하지 않고 list.txt로 저장(overwrite)
ls -l > list.txt
#'ls -l'의 결과를 화면에 출력하지 않고 list.txt로 저장(append)
ls -l >> list.txt
#list.txt 파일을 정렬하여 화면에 출력
sort < list.txt
#list.txt 파일을 정렬해 outputlist.txt로 저장(overwrite)
sort < list.txt > outputlist.txt

#pipe
#'ls -l /etc'를 1페이지씩 나누어 봄
ls -l /etc | more