이미 GNU / Linux 디렉토리 트리에 대한 개념이있는 경우 / dev / reference에 대해 잘 알고 있어야합니다. 하드웨어 장치.
디렉토리를 살펴보면 / dev / 우리는 "파일"을 볼 것입니다 null로하지만 내용을보기 위해 열어보고자한다면 시스템은 일반 내용이 아니기 때문에 불가능하다고 알려줄 것입니다. Linux에 대해 모두 알고 있듯이 모든 하드웨어 (하드웨어 및 소프트웨어)가 파일로 표시되기 때문에 파일이라는 단어를 동봉했습니다. |
/ dev / null은 어떤 장치에 해당합니까?
실용적인 목적을 위해 쓰레기통, 바닥이없는 구덩이 또는 우주 공간을 상상해보십시오 (NASA 팀원들이 아무리 열심히 노력하더라도).
하지만 이미 rm과 같은 명령이있는 경우 새 항목을 삭제해야하는 이유는 무엇입니까?
두 "블랙홀"이 작동하는 방식이 완전히 다르기 때문입니다. 런타임시 쉘 스크립트 내의 명령에서 오류의 표준 출력을 대체하려면 어떻게해야합니까? 이것은 / dev / null이 들어오는 곳입니다.
예를 들어 보겠습니다.
"Hello World"문자열을 포함하는 tests라는 파일을 만들었습니다. 명령 줄에서 해당 파일의 내용을 나타내려면 다음과 같이 할 수 있습니다.
사용자 @ 노트북 : ~ $ cat test
Hello World
파일이 존재하지 않거나 테스트로 이름이 지정된 경우 (끝에 's'가 있음) 콘솔에 다음 오류가 표시됩니다.
사용자 @ 노트북 : ~ $ 고양이 테스트
cat : tests : 파일 또는 디렉토리가 존재하지 않습니다.
오류 메시지를 피하려면 어떻게해야합니까? 글쎄, 오류가 발생한 경우 명령의 출력을 "휴지통", 즉 / dev / null로 리디렉션하기 만하면됩니다.
오류가 발생하는 경우 어떻게 지정합니까? 여기에 프로그램의 표준 입력, 출력 및 오류 값을 입력합니다 : STDIN, STDOUT 및 STDERR (각각 0, 1 및 2로 대체 될 수 있음). 이런 식으로 우리가 넣으면 ...
user @ laptop : ~ $ cat tests 2> / dev / null
사용자 @ 노트북 : ~ $
… 콘솔에 오류 메시지가 생성되지 않는 것을 볼 수 있습니다.
구문이 필수적이기 때문에주의해야합니다. 문자 2와> 사이에는 공백이 없어야합니다. 그렇지 않으면 다음을 제공합니다.
user @ laptop : ~ $ cat tests 2> / dev / null
cat : tests : 파일 또는 디렉토리가 존재하지 않습니다.
cat : 2 : 파일 또는 디렉토리가 존재하지 않습니다.
반대로>와 / dev / null 사이의 공백은 결과에 부정적인 영향을주지 않습니다.
예를 들어 다음과 같이 로그 파일의 오류를 캡처하기 위해 오류 리디렉션을 사용할 수도 있습니다.
user @ laptop : ~ $ cat tests 2> err.log
또 다른 흥미로운 경우는 오류가 발생하지 않는 한 다른 파일에 결과를 수집하는 것입니다.
user @ laptop : ~ $ cat test 1> output_result 2> err.log
마지막으로, 표준 출력과 오류 출력이 결합 된«> / dev / null 2> & 1»표현식을 넣어 어떤 경우에도 출력 정보를 얻지 못하도록 리디렉션하는 것이 좋습니다.
아,하지만 / dev / null에 가장 많이 사용되는 유틸리티 중 하나가 누락되어 파일을 비 웁니다. $ cat / dev / null> file.log 이런 방식으로 file.log 파일이 비어있게됩니다. 그것을 추가하십시오!
그가 찾고 있던 바로 그 설명이었습니다.
나는 그것을 추가하는 모션을 지원합니다 =)
안녕 하쇼!
안녕하세요, 우선 기사가 아주 좋습니다! 두 번째는 주제에 대한이 링크를 통해 무언가를 기여하고 싶습니다. Cpanel에서 PHP의 cron 작업 그리고 블로그에 대한 세 번째 축하합니다!
dev / null에 대한 멋진 기사, 이전에 잘못된 위치에 실수로 댓글을 달았다는 점이 아쉽습니다! 사과드립니다
좋은 기부 감사
안녕하세요. 무효 공격을 받고 있습니다. 나는 andrirc를 사용하고 Null이라는 단어로 내 별명에서 비공개를 얻습니다. 2 초 후 내가 읽은 프로그램이 닫히고 내가 본 바에 따르면 외부 사람이 아닌 셸에서만 수행 할 수 있습니다. 나는 나 자신을 무시하려고 / -lrpcntikd를 무시하려고 노력했으며 명령이 계속 오는 것을 놀라게하는 것은 없습니다. 차단할 방법이 있다면 감사하겠습니다. 건배
문장을 실행할 때 기호>가 배치되지 않으면 어떻게됩니까?
누군가 나를 안내해 주시겠습니까?
안녕하세요, 저는 ACER Extensa 5620Z – 32비트에 Debian netinst를 설치했습니다. USB에서 설치가 완료되고 펜 드라이브가 제거되면 하드 디스크에서 부팅되지만(펜에서 다시 설치하지 마십시오) 부팅하는 순간에 그녀가 나에게 묻는 시스템:
데비안 로그인: xxxxxxxx(확인)
비밀번호: xxxxxxxx(확인)
nil@debian:~$ ???? 이게 뭔가요? 거기에 무엇을 넣어야 합니까?
이 명령이 없으면 시스템 부팅을 진행할 수 없습니다.
도와주세요? 어떻게 계속해야 할지 모르겠습니다.
매우 감사합니다. 감사합니다.