GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Was sind /dev/zero- und /dev/null-Dateien in Linux

„/dev/zero“ und „/dev/null“ sind zwei Dummy-Gerätedateien, die zum Erstellen leerer Dateien nützlich sind. Aber es gibt einen deutlichen Unterschied in dem, was sie tatsächlich tun. In diesem Beitrag werden wir den Unterschied zwischen den beiden sehen und wo sie verwendet werden können.

/dev/zero-Datei

Es wird verwendet, um eine Datei ohne Daten, aber mit der erforderlichen Größe zu erstellen (eine Datei, auf der nur Nullen stehen).

Erstellen wir eine Datei mit /dev/zero:

# dd if=/dev/zero of=/opt/zero.txt bs=2048 count=2048
2048+0 records in
2048+0 records out
4194304 bytes (4.2 MB) copied, 0.150465 s, 27.9 MB/s

Es erstellt eine Datei, die fortlaufende Nullen enthält. Wir können also sagen, dass /dev/zero eine Datei ist, die verwendet wird, um eine neue Datei mit einer bestimmten erforderlichen Größe ohne Bedeutung für die Daten zu erstellen.

Sie können auch die Datei /dev/zero in Verbindung mit dem Befehl dd verwenden, um eine Festplatte zu löschen. Zum Beispiel:

# dd if=/dev/zero of=/dev/sda bs=2K conv=noerror,sync

Eine weitere Datei, die ebenfalls in diesem Prozess verwendet werden kann, ist /dev/null:

/dev/null

Während das Senden der gesamten Ausgabe oft eine nette Sache ist, werden Sie regelmäßig Fehler (die Sie bei einigen Befehlen erwarten) auf ein spezielles Gerät umleiten:/dev/null.

Die Null-Art verschenkt die Funktionalität:Sie liegt irgendwo zwischen einem Mülleimer und einem schwarzen Loch. Diese Datei ist sogar hilfreich beim Erstellen von Dateien mit einer Größe von Null.

Wenn Sie beispielsweise sehen, dass ich wenige Dateien und Ordner im aktuellen Verzeichnis habe:

# ls
anaconda-ks.cfg  Documents  initial-setup-ks.cfg  Pictures  Templates
Desktop          Downloads  Music                 Public    Videos

Wenn ich die Ausgabe des Befehls „ls“ in die Datei „/dev/null“ umleite, können die Ausgabedaten auch nach dem Lesen der Nulldatei nicht erneut abgerufen werden:

# ls > /dev/null
# cat /dev/null
#

Wie man /dev/null neu erstellt

Die folgenden Befehle wurden in einer Zeile platziert und durch ein Semikolon „;“ getrennt, um so schnell wie möglich ausgeführt zu werden und einen geringen Einfluss auf das laufende System zu haben.

# rm /dev/null ; mknod -m 0666 /dev/null c 1 3 ;

Execute: yes

Stellen Sie sicher, dass alles in Ordnung und vorhanden ist:

# ls -al /dev/null

Zusammenfassung

Wenn wir die Ausgabe nach /dev/zero umleiten, macht es genau dasselbe wie /dev/null:Die Daten verschwinden. In der Praxis wird jedoch am häufigsten /dev/null für diesen Zweck verwendet.

Warum also dieses spezielle Gerät? Denn mit /dev/zero lassen sich auch Nullbytes auslesen. Von allen möglichen 256 Bytes ist das Null-Byte das erste:die hexadezimale 00. Ein Null-Byte wird oft verwendet, um die Beendigung eines Befehls anzuzeigen.


Linux
  1. Wie behandelt Linux mehrere aufeinanderfolgende Pfadtrennzeichen (/home////username///file)?

  2. Wie portabel sind /dev/stdin, /dev/stdout und /dev/stderr?

  3. Wann sollte /dev/random vs. /dev/urandom verwendet werden?

  4. So ordnen Sie /dev/sdX- und /dev/mapper/mpathY-Geräte vom /dev/dm-Z-Gerät zu

  5. Wann sollte ich /dev/shm/ verwenden und wann sollte ich /tmp/?

tty (/dev/tty ) vs. pts (/dev/pts) unter Linux

Was ist /dev/null unter Linux

/dev/null unter Linux

Kernel:/dev/kmem und /dev/mem deaktivieren

Erstellen Sie ein virtuelles Blockgerät, das in /dev/null schreibt

Unterschiede zwischen /dev/sda und /dev/sda1