/ dev / null은 무엇이며 어떻게 도움이 될 수 있습니까?

이미 GNU / Linux 디렉토리 트리에 대한 개념이있는 경우 / dev / reference에 대해 잘 알고 있어야합니다. 하드웨어 장치.

디렉토리를 살펴보면 / dev / 우리는 "파일"을 볼 것입니다 null로하지만 내용을보기 위해 열어보고자한다면 시스템은 일반 내용이 아니기 때문에 불가능하다고 알려줄 것입니다. Linux에 대해 모두 알고 있듯이 모든 하드웨어 (하드웨어 및 소프트웨어)가 파일로 표시되기 때문에 파일이라는 단어를 동봉했습니다.

이는 Daniel Durante의 공헌으로, 주간 대회의 우승자가되었습니다.«Linux에 대해 알고있는 정보 공유«. 축하합니다 Daniel!

/ 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»표현식을 넣어 어떤 경우에도 출력 정보를 얻지 못하도록 리디렉션하는 것이 좋습니다.


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.

  1.   귀도 이그나시오 이그나시오

    아,하지만 / dev / null에 가장 많이 사용되는 유틸리티 중 하나가 누락되어 파일을 비 웁니다. $ cat / dev / null> file.log 이런 방식으로 file.log 파일이 비어있게됩니다. 그것을 추가하십시오!

    1.    에두아르도 H

      그가 찾고 있던 바로 그 설명이었습니다.
      나는 그것을 추가하는 모션을 지원합니다 =)

      안녕 하쇼!

  2.   파블로

    안녕하세요, 우선 기사가 아주 좋습니다! 두 번째는 주제에 대한이 링크를 통해 무언가를 기여하고 싶습니다. Cpanel에서 PHP의 cron 작업 그리고 블로그에 대한 세 번째 축하합니다!

  3.   파블로

    dev / null에 대한 멋진 기사, 이전에 잘못된 위치에 실수로 댓글을 달았다는 점이 아쉽습니다! 사과드립니다

  4.   익명

    좋은 기부 감사

  5.   저지

    안녕하세요. 무효 공격을 받고 있습니다. 나는 andrirc를 사용하고 Null이라는 단어로 내 별명에서 비공개를 얻습니다. 2 초 후 내가 읽은 프로그램이 닫히고 내가 본 바에 따르면 외부 사람이 아닌 셸에서만 수행 할 수 있습니다. 나는 나 자신을 무시하려고 / -lrpcntikd를 무시하려고 노력했으며 명령이 계속 오는 것을 놀라게하는 것은 없습니다. 차단할 방법이 있다면 감사하겠습니다. 건배

  6.   소피아 마르티네즈

    문장을 실행할 때 기호>가 배치되지 않으면 어떻게됩니까?

    누군가 나를 안내해 주시겠습니까?

  7.  

    안녕하세요, 저는 ACER Extensa 5620Z – 32비트에 Debian netinst를 설치했습니다. USB에서 설치가 완료되고 펜 드라이브가 제거되면 하드 디스크에서 부팅되지만(펜에서 다시 설치하지 마십시오) 부팅하는 순간에 그녀가 나에게 묻는 시스템:
    데비안 로그인: xxxxxxxx(확인)
    비밀번호: xxxxxxxx(확인)
    nil@debian:~$ ???? 이게 뭔가요? 거기에 무엇을 넣어야 합니까?

    이 명령이 없으면 시스템 부팅을 진행할 수 없습니다.
    도와주세요? 어떻게 계속해야 할지 모르겠습니다.
    매우 감사합니다. 감사합니다.