Stdin, Stdout, Stderr (표준 스트림)¶
리눅스(유닉스) 환경에서 프로그램이 실행될 때 기본적으로 연결되는 3가지 표준 입출력 스트림입니다.
1. 개념¶
| 이름 | 파일 디스크립터 (FD) | 설명 | 기본 장치 |
|---|---|---|---|
| stdin (Standard Input) | 0 | 프로그램으로 들어가는 입력 | 키보드 |
| stdout (Standard Output) | 1 | 프로그램이 정상적으로 출력하는 결과 | 모니터 (터미널) |
| stderr (Standard Error) | 2 | 오류 메시지나 진단 정보를 출력 | 모니터 (터미널) |
2. 리다이렉션 (Redirection)¶
스트림의 방향을 파일이나 다른 장치로 돌리는 기능입니다.
>: stdout을 파일로 저장 (덮어쓰기)>>: stdout을 파일 끝에 추가 (append)2>: stderr만 파일로 저장2>&1: stderr을 stdout과 같은 곳으로 보냄<: 파일 내용을 stdin으로 입력
예시¶
# 정상 출력은 out.log에, 에러는 err.log에 저장
python app.py > out.log 2> err.log
# 정상 출력과 에러 모두를 같은 파일에 저장
python app.py > all.log 2>&1
3. 파이프 (Pipe, |)¶
한 프로그램의 stdout을 다음 프로그램의 stdin으로 연결합니다.