Što je / dev / null i kako vam može pomoći?

Ako već imamo neke predodžbe o stablu direktorija GNU / Linux, trebali bismo barem biti upoznati s / dev / referencom, koja je zapravo tamo gdje su sve datoteke povezane sa hardverski uređaji.

Ako pogledamo u direktorij / dev / vidjet ćemo "datoteku" pod nazivom nula, ali ako ga želimo otvoriti kako bismo vidjeli njegov sadržaj, sustav će nam reći da to nije moguće jer to nije običan sadržaj. Priložio sam riječ datoteka jer, kao što svi znate za Linux, sve (hardver i softver) predstavljeno je kao datoteka.

Ovo je doprinos Daniela Durantea, postajući tako jedan od pobjednika našeg tjednog natjecanja: «Podijelite što znate o Linuxu«. Svaka čast Daniele!

Kojem uređaju odgovara / dev / null?

Iz praktičnih razloga zamislite kantu za smeće, jamu bez dna ili svemir u koji možete baciti bilo što bez mogućnosti oporavka (bez obzira na to koliko se dečki iz NASA trude).

Ali ako već imam naredbe poput rm, zašto želim izbrisati nešto novo?

Budući da se način rada obje "crne rupe" potpuno razlikuje: kako biste nadvladali standardni izlaz pogreške u naredbi unutar skripte ljuske tijekom izvođenja? Ovdje dolazi / dev / null.

Pogledajmo na primjeru.

Stvorili smo datoteku nazvanu testovi koja sadrži niz "Hello World". Ako želimo predstaviti sadržaj te datoteke na naredbenom retku, mogli bismo to učiniti na sljedeći način:

user @ laptop: ~ $ mačji test
Pozdrav svijete

Ako datoteka ne postoji ili je imenovana kao testovi (s 's na kraju), u konzoli ćemo dobiti sljedeću pogrešku:

user @ laptop: ~ $ mačji testovi
cat: tests: Datoteka ili direktorij ne postoji

Što bismo mogli učiniti da izbjegnemo poruku o pogrešci? Pa, jednostavno preusmjerite izlaz naredbe, u slučaju pogreške, u "kantu za smeće", to jest na / dev / null

Kako odrediti da bude u slučaju pogreške? Tu ulaze standardne vrijednosti ulaza, izlaza i pogreške za program: STDIN, STDOUT i STDERR (koje se mogu zamijeniti s 0, 1 i 2). Na taj način, ako stavimo ...

user @ laptop: ~ $ mačka testira 2> / dev / null
korisnik @ laptop: ~ $

... Vidjet ćemo da se poruka o pogrešci neće prikazivati ​​na konzoli.

Morate biti oprezni jer je sintaksa bitna: između znakova 2 i> ne smije biti razmaka. U suprotnom, dalo bi sljedeće:

user @ laptop: ~ $ mačka testira 2> / dev / null
cat: tests: Datoteka ili direktorij ne postoji
mačka: 2: Datoteka ili direktorij ne postoji

Suprotno tome, razmak između> i / dev / null neće negativno utjecati na rezultat.

Također bismo mogli koristiti preusmjeravanje pogrešaka, na primjer, za hvatanje pogrešaka u datoteci dnevnika na sljedeći način:

user @ laptop: ~ $ mačka testira 2> err.log

Još jedan zanimljiv slučaj bilo bi prikupljanje rezultata u drugoj datoteci sve dok se ne dogodi pogreška, za koju bismo stavili:

user @ laptop: ~ $ mačka test 1> output_result 2> err.log

Na kraju, vrijedi staviti izraz «> / dev / null 2> & 1» u kojem se kombiniraju standardni izlaz i izlaz pogreške, preusmjeravajući ih tako da se ni u kojem slučaju ne dobivaju izlazne informacije.


8 komentara, ostavi svoj

Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   Guido Ignacije Ignacije dijo

    Ah, ali nedostaje jedan od najčešće korištenih uslužnih programa koji ima / dev / null, a to je pražnjenje datoteka: $ cat / dev / null> file.log Na taj će način datoteka file.log biti prazna. Dodajte ga!

    1.    Edward H. dijo

      Upravo je objašnjenje tražio.
      Podržavam prijedlog za njegovo dodavanje =)

      Saludos!

  2.   Pavle dijo

    Pozdrav, prije svega članak je vrlo dobar! drugi bih htio nešto doprinijeti ovom vezom na tu temu cron posao u php-u s Cpanela i treća čestitka za blog!

  3.   Pavle dijo

    Lijep članak o dev / null, šteta što mislim da sam prije pogrešno komentirao na pogrešnom mjestu! ispričavam se

  4.   anoniman dijo

    dobar doprinos hvala

  5.   dresovi dijo

    Pozdrav, dobivam nulti napad. Koristim andrirc i dobivam private od svog nadimka s riječju Null. Dvije sekunde kasnije program se zatvara što sam čitao i prema onome što vidim to može učiniti samo Shell, a ne netko vanjski. Pokušao sam se zanemariti / zanemariti -lrpcntikd i ništa me ne iznenađuje naredba stalno dolazi. Ako imate bilo koji način da to pokušate blokirati, bio bih vam zahvalan. Živjeli

  6.   Sofija martinez dijo

    Što se događa ako se prilikom izvršavanja rečenice simbol> ne postavi?

    Može li me netko uputiti, molim vas?

  7.   Nula dijo

    Dobro jutro, instalirao sam Debian netinst u ACER Extensa 5620Z – 32 bit. Nakon što je instalacija s USB-a gotova i drajv je uklonjen tako da se diže s tvrdog diska (nemojte ponovno instalirati s olovke) već u trenutku dizanja sustav ona me pita:
    debian prijava: xxxxxxxx (ok)
    Lozinka: xxxxxxxx (u redu)
    nil@debian:~$ ???? što je to? Što da stavim tamo?

    Bez ove naredbe ne mogu nastaviti s podizanjem sustava.
    Možeš li mi pomoći? Ne znam kako da nastavim.
    Hvala vam puno. Lijepi Pozdrav.