Stderr은 무엇입니까?

표준 오류 라고도하는 Stderr 는 프로세스가 오류 메시지를 쓸 수있는 기본 파일 설명자입니다.

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의 재 지정을 참조하십시오.

운영 체제 용어 오류 메시지