Linux, macOS X 및 BSD와 같은 유닉스 계열 운영 체제에서 stderr 는 POSIX 표준에 의해 정의됩니다. 기본 파일 설명자 번호는 2 입니다.
터미널에서 표준 오류는 사용자 화면으로 기본 설정됩니다.
리눅스 커맨드 라인의 Stderr
bash에서는 명령 행에서 표준 오류를 재 지정할 수 있습니다. 오류 메시지를 별도의 로그 파일에 캡처하거나 오류 메시지를 완전히 숨기는 경우 stderr 를 리디렉션하는 것이 유용 할 수 있습니다.
예를 들어, 다음 찾기 명령을 고려하십시오.
/ * '* * *'를 찾으십시오.
`/ run / udisks2 ': 허가가 거부되었습니다 :`/ run / wpa_supplicant': 허가가 거부되었습니다 / usr / share / something / usr / usr / share / doc / something / usr / share / doc / something / examples / / 게임 / 무언가
find 는 우리가 읽을 수있는 권한이없는 몇 개의 시스템 디렉토리를 검색하려고하기 때문에 에러가 발생합니다. "Permission denied"라는 줄은 오류 메시지이며 stderr 에 기록되었습니다. 다른 행은 stdout (표준 출력)에 기록되었습니다. 기본적으로 둘 다 터미널에 표시됩니다.
stderr 를 숨기려면 표준 오류의 파일 설명자 번호 2 와 "redirect output"연산자 > 를 참조하여 경로를 재 지정할 수 있습니다.
/ * '* something *'2 / dev / null을 찾는다.
/ usr / share / doc / something / usr / share / doc / something / examples / something_random / usr / share / something / usr / games / 무언가
stderr 에 대한 모든 출력이 / dev / null 로 리디렉션 되었기 때문에 오류가 더 이상 표시되지 않습니다. Linux의 특수 장치 인 "아무데도 가지 않습니다".
모든 오류를 파일로 리디렉션 할 수도 있습니다.
/ * '* something *'2> output.txt를 찾는다.
/ usr / share / doc / something / usr / share / doc / something / examples / something_random / usr / share / something / usr / games / 무언가
이제 output.txt 의 내용을 살펴보면 오류 메시지가 거기에 저장되었음을 알 수 있습니다.
cat output.txt
find :`/ run / udisks2 ': 허가 거부 됨 find :`/ run / wpa_supplicant': 허가 거부 됨
데이터 스트림을 재지 정하는 f}에 대한 자세한 정보는 bash의 재 지정을 참조하십시오.
운영 체제 용어 오류 메시지