■ 예약되어진 파일 기술자(File Descriptor)
---------------------------------------
번호 설 명
---------------------------------------
0 표준입력 stdin (Standard Input)
1 표준출력 stdout(Standard Ouput)
2 표준에러 stderr(Standard Error)
---------------------------------------
쉘은 아래 그림과 같이 표준입력을 키보드로, 표준 출력을 모니터로, 표준 에러를
모니터로 지정해석한다. 특별한 입력이 지정되지 않는다면 키보드에서 입력을 받
고 정상적인 출력 결과나 에러 메세지의 출력 방향이 지정되지 않는 경우 모니터
로 지정되는 것을 의미한다.
# ls /var /nodir > file.txt
모니터에 출력되는 내용은 정상적인 출력 결과와 에러 메세지이다. ">" 기호를 통해서 정상
적인 출력 결과는 file.txt 파일에 출력하도록 지정이 되어 있고, 에러메세지는 지정이 되어 있지 않으므로 모니터에 출력된다.
# ls /var /nodir 2> file.txt
정상적인 출력결과는 모니터에 출력이 되고 에러 메세지는 file.txt 파일에 출력되도록 지정 되어 있다.
# ls /var /nodir > file1.txt 2> file2.txt
정상적인 출력결과는 file1.txt 파일에 에러메세지는 file2.txt 파일에 출력되도록 설정 되었다.
# ls /var /nodir > file1.txt 2>&1
정상적인 출력결과와 에러메세지를 모두 file1.txt 파일에 출력되도록 설정 되었다.
[참고] CMD 2>/dev/null
일반사용자 전체 시스템의 파일과 디렉토리 목록중에 core 파일을 찾을려고 할때 검색할려고하는 내용보다 권한이 되지 않아서 'Permission Denied' 에러 메세지가 더 많이 출력되는 경우가 존재할 수 있다. 이런 경우 명령어의 마지막에 '2>/dev/null'을 붙여서 에러메세지는 보지 않고 정상적인 출력 결과만 보는 경우가 있다. 그런 경우 다음과 같이 명령어를 수행할 때 명령어의 끝 부분에 "2>/dev/null"을 붙인다.
$ find / -name core -type f 2>/dev/null
'컴퓨터활용 > 유닉스' 카테고리의 다른 글
배치프로그램 실행 쉘 예제 (0) | 2011.04.28 |
---|---|
Unexpected end of file (0) | 2010.11.12 |
문자열 숫자에 , 콤마로 세자리씩 분리하기 (0) | 2010.08.17 |
unix tee 명령어 (1) | 2010.04.22 |
0 문자를 트림하는 TRIMZERO 매크로 (0) | 2009.08.12 |