윈도우에서 파일 지우면 휴지통에 들어가는거 처럼
리눅스에도 이와 쓰임새는 다르지만 비슷한 블랙홀 같은게 있습니다.
바로 /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 |
댓글