Computer Science/Operating System

표준 입출력, 표준 에러

Ofglen 2023. 7. 9. 23:35

2. 표준 입출력, 표준 에러

표준 입력(STDIN)

표준 입력(STDIN, STanDard INput): 외부로부터 OS가 외부 입력 장치로부터 받는 표준 인터페이스(STanDard INput). 애플리케이션은 OS가 전달해 준 표준 입력 데이터를 받는다.

  • ID = 0
  • tty: 물리 터미널 (내 로컬 PC에서 처리)
  • pty: 가상 터미널 (tty는 동시에 한 명밖에 사용할 수 없으므로 원격에서 접속하여 처리하기 위함)

 

 

표준 출력(STDOUT)

표준 입력(STDOUT, STanDard OUTput): 현재 쉘을 실행한 console 또는 terminal

OS가 내용을 외부 출력 장치(Ex. 모니터, 프린터)로 보내는 표준 출력 인터페이스(STanDard OUTput)

OS는 애플리케이션이 전달해준 표준 출력 데이터를 받는다.

  • ID = 1

 

 

표준 에러(STDERR)

표준 에러(STDERR, STanDard ERRor)

OS가 내용을 외부 출력 장치로 보내는 표준 출력 인터페이스

OS는 애플리케이션이 전달해준 표준 에러 데이터를 받는다.

  • ID = 2

표준 출력과 동일하고 파일로 내보낼 수 있다. Ex) GC) Cloud Logging

 

 

 

⭐ 리다이렉션

표준 출력과 표준 에러는 원리가 같기 때문에 표준 출력만 모니터에 출력된다.

리다이렉션: 출력 또는 입출력 방향을 바꾸는 것 (>, >>)

  • >: 덮어쓰기
  • Ex) [명령어] > [파일] : ls-l > result ls-l의 결과를 result 파일에 저장
  • Ex)
# python file 내용: cat

python file.py
# cat 출력

python file.py > cat.txt 2 > &1
# 2> log id, 1> output id 
# catcat 출력 -> 로그 완료

 

  • # python file 내용: cat python file.py # cat 출력 python file[.py](<http://cat.py>) > cat.txt 2 > &1 # 2> log id, 1> output id # catcat 출력 -> 로그 완료
  • >> : 내용 추가 (기존 내용 보존)

 

 

파이프: 이전 실행 명령 결과를 받아온다. ( | )

Ex) A | B → A의 명령어의 결가 B로 전달돼서 B 결과가 출력됨

 

표준 출력&표준 에러 리다이렉션

cat.txt > text.log 2> &1

 

표준 입력 리다이렉션

cat > file.txt > EOF

 

termination ID

EOF: End OF File, 파일의 끝까지 저장

EOL: End Of Line, 파일의 마지막 줄