거의 모든 명령어들은 화면에 출력하거나 키보드로부터 입력을 받는다. 또한 리눅스에서는 출력을 파일로 보내거나, 파일로부터 입력을 읽을 수 있다. 각각의 셸들은 자신만의 입력과 출력을 가지고 있다. 명령어가 실행되기 전, 셸이 해석한 특별한 기호를 통해 입력과 출력을 다른 곳으로 변경할 수 있다. 예를 들어, 출력 명령어를 통해 출력될 데이터를 화면이 아니라 파일로 보낼수 있다. 이렇게 출력이나 입력의 경로를 변경하는 것을 리다이렉션이라고 부른다.
- 리눅스에서는 모든 것은 파일이다.
- 당신의 하드웨어도 파일로 표현된다.
- 0 - 입력 - 키보드 (stdin)
- 1 - 출력 - 화면 (stdout)
- 2 - 에러 - Screen (stderr)
- 위의 세 숫자는 표준 POSIX 숫자로 알려져있으며, 파일 명세자(FD - file descriptors)로도 알려져 있다.
모든 리눅스 명령어는 최소한, 위에서 설명한 스트림을 열어 사용자나 다른 시스템 프로그램과 대화하기 위한 동작을 반드시 한다.
정수
Standard File | File Descriptor Number | Meaning | Example (type at shell prompt) |
---|---|---|---|
stdin | 0 | Read input from a file (the default is keyboard) | cat < filename |
stdout | 1 | Send data to a file (the default is screen). | date > output.txt |
stderr | 2 | Send all error messages to a file (the default is screen). | rm /tmp/4815162342.txt 2>error.txt |
우리는 입력과 출력을 리다이렉트하여 최종 출력을 수정할 수 있다.