본문으로 바로가기

[리눅스] /dev/null 이란?

category 운영체제/리눅스 2024. 1. 16. 18:42
728x90
반응형

예전의 경우 바이너리를 실행하고 거기에서 출력되는 값들을 보면서 디버깅을 했고, 분석을 많이했습니다.

여러 바이너리를 사용하다보니 너무 많은 출력이 찍혀서 눈으로 보기가 힘들었고, 그럴때 /dev/null을 많이 사용했습니다.

/dev/null 은 프로그램에서 찍히는 출력/에러를 없애버리는 휴지통 개념이라고 생각하시면됩니다.

휴지통이라고해서 휴지통 비우기의 개념은 여기서는 없습니다.

참고로 /dev/null 은 파일입니다.

아무 설정을 하지 않는다면 출력은 화면에 찍히게 됩니다.

/dev/null 은 이렇게 사용합니다.

]# ./test 1>/dev/null 2/dev/null 

실행하는 프로그램 명령어 뒤에 추가를 하면됩니다.

1>/dev/null 2>/dev/null

>는 아시다시피 리다이렉션입니다.

위의 명령어에서 숫자의 의미를 알아보겠습니다.

0은 STDIN으로 표준 입력입니다. 입력의 경우 /dev/null 을 보통 사용하지 않습니다.

1은 STDOUT으로 표준 출력, 즉 정상 메시지를 의미합니다.

2는 STDERR 표준에러로 표준 에러, 즉 에러 메시지를 의미합니다.

]# ./test 1>/dev/null 2/dev/null 

이 명령어를 해석해보자면

test 프로그램을 실행하라, 표준 출력의 경우 /dev/null 파일에 쓰고, 표준 에러의 경우 /dev/null 파일에 써라

/dev/null은 휴지통의 개념이기 때문에 표준 출력/에러의 경우 화면에 출력되지 않습니다.

오늘 포스팅은 여기까지입니다.

728x90
반응형