본문 바로가기
IT/LINUX

리눅스 블랙홀 사용하기 /dev/null

by SidePower 2020. 9. 17.

윈도우에서 파일 지우면 휴지통에 들어가는거 처럼

리눅스에도 이와 쓰임새는 다르지만 비슷한 블랙홀 같은게 있습니다.

바로 /dev/null 입니다.

 

블랙홀 아시조? ㅋ

검은구멍. 중력이 강해 빛조차도 빨려 들어가 나올수 없는 전체.

 

/dev/null 로 보내면 블랙홀처럼 빨려 들어가 없어집니다.

 

/dev/null 은 NULL (널) 장치파일 라고 합니다.

리눅스 내부적으로는 커널의 어떤 작업이 정상일때 보내는거라고 하네요.(정확하지 않습니다. ^^;;)

 

이거 뭐할때 쓰냐면요..

 

프로그램이나 쉘스크립트 등이 실행되고 나오는 결과에 대해서

오류가 났던 안 났던 상관없이 출력되는 값을 보고싶지 않을때 사용합니다.

 

cat str.txt                                       

hello ! good day, thank you~

i wnat key                                     

i want KEY                                    

 

cat str.txt > /dev/null               

                                                          

 

str.txt 파일 내용이 안보입니다. (아래 실제 실행된 내용)

또 오류가 발생할때도 사용하는데요.

특히 이 오류가 무시해도 되는 오류일때 사용합니다.

 

 

리눅스는 권한이 없는 다른 디렉토리 정보는 볼수가 없습니다.

이것을 이용해서 예제를 하나 만들어봤습니다.

 

find / -name "str"                        

find: '/boot/grub2; : 허가 거부 

find: '/proc/task; : 허가 거부     

.                                                           

.                                                           

 

/ 는 최상위 디렉토리를 나타냅니다.

/ 여기 위치를 조회하게 되면 root 소유의 디렉토리까지 조회하게 되어

일반 유저는 권한이 없어 접근할수가 없습니다. (아래 실제 실행된 내용)

 

어차피 권한 없는건 다 아는 사실이라 굳이 [ 허가 거부 ] 오류를

계속 볼 필요가 없을거에요.

오류 내용은 볼 필요없고 정상인 결과만 화면에 출력하고 싶습니다.

 

find / -name "str" 2> /dev/null 

/home/sidepower/test/str         

(아래 실제 실행된 내용)

2> /dev/null 에서 2 숫자 의미는 표준 에러를 말합니다.

 

이렇게 오류거나 정상 출력값이라도 보고 싶지 않을때 /dev/null를 사용합니다.

 

참고로 표준입출력과 에러에 대해서 간단하게 정리했습니다.

 

0 은 표준 입력

1 은 표준 출력

2 는 표준 에러

 

리눅스에서는 입,출력에 대해서 기본적인 장치가 미리 결정되어 있습니다.

 

표준 입력은 키보드이고 stdin 으로 표기 , 파일 디스크립터 번호 0 

표준 출력은 모니터이고 stdout 으로 표기 , 파일 디스크립터 번호 1

표준 에러는 명령어나 쉘스크립트, 프로그램 등 쉘상에는

발생하는 에러를 말하고 strerr 으로 표기 , 파일 디스크립터 번호 2 입니다.

 

다음에 표준 입출력과 에러에 대해서 상세히 포스팅하겠습니다.

 

감사합니다.

반응형

'IT > LINUX' 카테고리의 다른 글

리눅스 su sudo 명령어  (0) 2020.09.29
리눅스 표준입력 표준출력 표준에러  (0) 2020.09.18
리눅스 touch 명령어  (0) 2020.09.16
리눅스 0 byte 빈파일 만들기  (0) 2020.09.10
리눅스 RPM YUM 그리고 APT-GET DNF 사용법  (0) 2020.09.05

댓글