Was ist /Dev/Null?

/dev/null ist eines der am häufigsten verwendeten speziellen virtuellen Geräte unter Linux. In diesem Leitfaden werden wir darüber diskutieren und die verschiedenen Verwendungsmöglichkeiten vorstellen.

Was ist /Dev/Null unter Linux?

Linux behandelt alles als Datei, sei es ein Treiber oder ein Gerät. Das Verzeichnis /dev wird zum Speichern aller physischen und virtuellen Geräte verwendet. Wenn Sie mit Festplattenpartitionierung gearbeitet haben, ist Ihnen möglicherweise aufgefallen, dass das Verzeichnis /dev verwendet wird. Zum Beispiel: /dev/sda, /dev/sdb1 usw.

Jedes der speziellen virtuellen Geräte verfügt über einzigartige Eigenschaften. Wenn Sie beispielsweise aus /dev/zero lesen, werden die ASCII-NUL-Zeichen zurückgegeben. Zu den beliebten virtuellen Geräten gehören:

  • /dev/null
  • /dev/zero
  • /dev/random
  • /dev/urandom

/dev/null ist ein Nullgerät, das alle darauf geschriebenen Daten verwirft. Es meldet jedoch zurück, dass der Schreibvorgang erfolgreich war. In der UNIX-Terminologie wird dieses Nullgerät auch als Bit-Bucket oder Schwarzes Loch bezeichnet.

Verwendung von /Dev/Null unter Linux

Eigenschaften von /Dev/Null

Beim Versuch, aus /dev/null zu lesen, wird ein EOF-Zeichen zurückgegeben:

$ cat /dev/null

Trotz seiner einzigartigen Funktionen ist /dev/null eine gültige Datei. Wir können es mit dem folgenden Befehl überprüfen:

$ stat /dev/null

Grundlegende Verwendung

Alles, was nach /dev/null geschrieben wird, verschwindet für immer. Das folgende Beispiel demonstriert diese Eigenschaft:

$ echo „Hallo Welt“ > /dev/null
$ cat /dev/null

Hier leiten wir die STDOUT des Echo-Befehls nach /dev/null um. Mit dem Befehl cat lesen wir den Inhalt von /dev/null.

Da /dev/null keine Daten speichert, enthält die Ausgabe des Befehls cat nichts.

Umleiten der Befehlsausgaben nach /Dev/Null

Müssen Sie einen Befehl ausführen, ohne sich um seine Ausgabe zu kümmern? Wir können die Daten nach /dev/null umleiten, um sie sicher zu verwerfen. Um diese Technik zu implementieren, sind Vorkenntnisse der Dateideskriptoren STDIN, STDOUT und STDERR erforderlich.

Beispiel 1:

Schauen Sie sich das erste Beispiel an:

$ echo „Hallo Welt“ > /dev/null

Hier leiten wir die STDOUT des Echo-Befehls nach /dev/null um. Aus diesem Grund erfolgt keine Ausgabe auf dem Konsolenbildschirm.

Beispiel 2:

Schauen Sie sich das nächste Beispiel an:

$ asdfghjkl > /dev/null

Hier existiert der Befehl asdfghjkl nicht. Bash erzeugt also einen Fehler. Die Fehlermeldung wurde jedoch nicht nach /dev/null geschrieben. Dies liegt daran, dass die Fehlermeldung in STDERR gespeichert ist. Daher müssen wir auch die STDERR (2)-Umleitung angeben. Hier ist der aktualisierte Befehl:

$ asdfghjkl 2> /dev/null

Beispiel 3:

Was ist, wenn wir sowohl STDOUT als auch STDERR nach /dev/null umleiten möchten? Die Befehlsstruktur würde so aussehen:

$ > /dev/null 2> /dev/null

Obwohl diese Struktur völlig gültig ist, ist sie ausführlich und überflüssig. Es gibt eine Möglichkeit, die Struktur drastisch zu verkürzen: STDERR zuerst nach STDOUT umleiten und dann STDOUT nach /dev/null umleiten.

Schauen Sie sich den aktualisierten Befehl an:

$ > /dev/null 2>&1

Hier wird STDOUT nach /dev/null umgeleitet. Dann leiten wir STDERR (2) zu STDOUT (1) um. Das „&1“ beschreibt der Shell, dass das Ziel ein Dateideskriptor und kein Dateiname ist.

Jetzt lässt sich der Befehl effizienter implementieren.

Abschluss

Wir haben etwas über /dev/null gelernt, das Null-Gerät in Linux. Wir haben die Funktionsweise auch anhand verschiedener Beispiele demonstriert. Diese Techniken werden häufig beim Shell-Scripting verwendet.

Möchten Sie mehr erfahren? Schauen Sie sich die Unterkategorie „Bash-Programmierung“ an, die zahlreiche Anleitungen zu verschiedenen Konzepten der Bash-Skripterstellung enthält.

Viel Spaß beim Rechnen!

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen