in 포스트

입력과 출력

거의 모든 명령어들은 화면에 출력하거나 키보드로부터 입력을 받는다. 또한 리눅스에서는 출력을 파일로 보내거나, 파일로부터 입력을 읽을 수 있다. 각각의 셸들은 자신만의 입력과 출력을 가지고 있다. 명령어가 실행되기 전, 셸이 해석한 특별한 기호를 통해 입력과 출력을 다른 곳으로 변경할 수 있다. 예를 들어, 출력 명령어를 통해 출력될 데이터를 화면이 아니라 파일로 보낼수 있다. 이렇게 출력이나 입력의 경로를 변경하는 것을 리다이렉션이라고 부른다.

  • 리눅스에서는 모든 것은 파일이다.
  • 당신의 하드웨어도 파일로 표현된다.
  • 0 - 입력 - 키보드 (stdin)
  • 1 - 출력 - 화면 (stdout)
  • 2 - 에러 - Screen (stderr)
  • 위의 세 숫자는 표준 POSIX 숫자로 알려져있으며, 파일 명세자(FD - file descriptors)로도 알려져 있다.
    모든 리눅스 명령어는 최소한, 위에서 설명한 스트림을 열어 사용자나 다른 시스템 프로그램과 대화하기 위한 동작을 반드시 한다.

정수

Standard FileFile Descriptor NumberMeaningExample (type at shell prompt)
stdin0Read input from a file (the default is keyboard)
cat < filename
 
stdout1Send data to a file (the default is screen).
date > output.txt
cat output.txt

 
stderr2Send all error messages to a file (the default is screen).
rm /tmp/4815162342.txt 2>error.txt
cat error.txt

 

우리는 입력과 출력을 리다이렉트하여 최종 출력을 수정할 수 있다.