「작은 도구를 조합」 철학을 실현하는 게 파이프(|)와 리다이렉션(> < >>).
같은 명령들로 무한히 다른 일을 할 수 있게 해 줍니다.
파이프 |.
「앞 명령의 stdout을 뒤 명령의 stdin으로」.
ls | wc -l — 파일 목록을 줄 수 세기로.
ps aux | grep python | head — 여러 단계 가능.
파이프가 셸의 가장 강력한 기능.
리다이렉션 — 출력.
> 파일 — stdout을 파일로(덮어쓰기).
>> 파일 — append.
2> 파일 — stderr를.
2>&1 — stderr를 stdout과 같은 곳으로.
&> 파일 — stdout·stderr 둘 다 파일로(bash).
로그 처리에 자주.
리다이렉션 — 입력.
< 파일 — 파일을 stdin으로.
command < input.txt — 인자 대신 파일을 입력.
또는 heredoc — command << EOF / 여러 줄 / EOF.
스크립트에서 자주.
흔한 패턴.
command > out.log 2>&1 — 모든 출력을 로그로.
command 2>/dev/null — 에러 무시.
command1 && command2 — command1 성공 시에만 command2.
command1 || command2 — 실패 시.
command1; command2 — 무관하게 둘 다.
한 줄 요약
파이프(|)는 stdout → stdin, > > > stdout 파일·>> append·2> stderr·2>&1 합치기.
< 입력 파일.
&& 성공 시·|| 실패 시·; 무관.
「작은 도구 조합」의 핵심.
더 알아볼 것
- heredoc — << EOF 패턴
- process substitution — <(cmd)
- named pipe — mkfifo