[ I/O 리다이렉션의 이해 ]
1. 리다이렉션(redirection)
: 표준 스트림을 사용자가 지정한 위치로 우회할 수 있도록 명령이다.
(다양한 셸과 명령어 인터프리터의 일반적인 명령)
2. 표준 스트림
: 특정 프로그래밍 언어 인터페이스 뿐만 아니라 유닉스 및 유닉스 계열 운영 체제에서 컴퓨터 프로그램과 그 환경(일반적으로 단말기 또는 터미널) 사이에 미리 연결된 입/출력 통로를 가리킨다.
: 일반적으로 유닉스에서 동작하는 프로그램은 실행 시 세 개의 스트림이 자동으로 열린다.
이를 표준 스트림이라고 부른다.
(Standard Input, STDIN, 0), (Standard Output, STDOUT, 1), (Standard Error, STDERR, 2)
: 보통 입/출력은 물리적으로 연결된 시스템 콘솔의 키보드와 모니터를 통해 일어나는데, 표준 스트림은 이것을 추상화한 것이다.
: 자식 프로세스는 부모 프로세스의 표준 스트림을 상속 받는다.
통상, 터미널에 로그인 셸 기동 -> 사용자 인증이 끝나면 대화형 셸(이때 자동으로 부착된 세 개의 표준 스트림이 상속된다.) -> 셸에서 실행되는(exec) 모든 명령들은, 셸을 부모 프로세스로 삼아 세 개의 표준 스트림을 다시 상속 받는다.
: 표준 C 실행 라이브러리의 <stdio.h>헤더에서 stdin, stdout, stderr로 정의 되며, <unistd.h>에 의해 파일 디스크립터 0, 1, 2 로 표현하기도 한다.
출처: https://ko.wikipedia.org/wiki/%ED%91%9C%EC%A4%80_%EC%8A%A4%ED%8A%B8%EB%A6%BC
3. 파이프(pipe)
: 운영체제에서 지원하는 프로세스 간 통신 방법이다.
(즉, 한 프로세스의 표준 출력을 다른 프로세스의 표준 입력으로 넘긴다.)
[ I/O 리다이렉션의 활용 ]
명령어 > 파일
명령어 < 파일
명령어 < 파일 > 파일
명령어 >> 파일
명령어 | 명령어
명령어 | 명령어 | ... | 명령어
명령어 < 파일 | 명령어
명령어 2> 파일
명령어 2>&1 > 파일
(축약: 명령어 &> 파일)
※ 참고 사항
0: 표준 입력(stdin)
1: 표준 출력(stdout)
2: 표준 에러(stderr)
'운영체제 > 리눅스' 카테고리의 다른 글
echo 명령어 활용 (0) | 2017.06.03 |
---|---|
cd 명령어 활용 (0) | 2017.06.02 |
find 명령어 활용 (0) | 2016.11.26 |
맨 페이지 활용 (0) | 2016.11.26 |
셸의 종류 (0) | 2016.11.26 |