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

So leiten Sie die Ausgabe unter Linux nach /dev/null um

Unter Linux wird auf Programme sehr häufig über die Befehlszeile zugegriffen, und die Ausgabe als solche wird auf dem Terminalbildschirm angezeigt. Die Ausgabe besteht aus zwei Teilen:STDOUT (Standardausgabe ), das Informationsprotokolle und Erfolgsmeldungen enthält, und STDERR (Standardfehler ), die Fehlermeldungen enthält.

Oft enthält die Ausgabe viele Informationen, die nicht relevant sind und unnötig Systemressourcen beanspruchen. Besonders bei komplexen Automatisierungsskripten, wo viele Programme hintereinander ausgeführt werden, ist das angezeigte Protokoll riesig.

In solchen Fällen können wir auf das Pseudo-Gerät zurückgreifen Datei „/dev/null ‘, um die Ausgabe umzuleiten. Wenn die Ausgabe nach /dev/null umgeleitet wird , wird es sofort verworfen und somit findet keine Ressourcennutzung statt.

Sehen wir uns an, wie die Ausgabe nach /dev/null umgeleitet wird unter Linux.

Nehmen wir ein Beispiel für den Befehl mv, der versucht, zwei Dateien in ein bestimmtes Verzeichnis zu verschieben, wobei eine Datei erfolgreich verschoben wird (zeigt STDOUT an ) und der andere gibt beim Verschieben einen Fehler aus (zeigt STDERR an ).

$ mv -v tmp.c /etc/apt/sources.list /tmp

Hinweis :Der '-v' Argument für mv zeigt das Erfolgsprotokoll an, wenn eine Datei verschoben wird. Ohne das Flag wird nichts nach STDOUT gedruckt .

Um jetzt nur die STDOUT umzuleiten nach /dev/null , d. h. um die Standardausgabe zu verwerfen, verwenden Sie Folgendes:

$ mv -v tmp.c /etc/apt/sources.list /tmp 1>/dev/null

Was bedeutet „1>/dev/null“?

Hier '1' gibt STDOUT an , was eine von Linux dafür zugewiesene Standard-Ganzzahl ist. Der Operator '>' , ein sogenannter Umleitungsoperator, schreibt Daten in eine Datei. Die in diesem Fall angegebene Datei ist /dev/null . Daher werden die Daten letztendlich verworfen.

Wenn statt /dev/null eine andere Datei angegeben wurde , wäre die Standardausgabe in diese Datei geschrieben worden.

Ebenso, um nur das STDERR umzuleiten nach /dev/null verwenden Sie die Ganzzahl '2' statt '1' . Die Ganzzahl '2' steht für Standardfehler.

$ mv -v tmp.c /etc/apt/sources.list /tmp 2>/dev/null

Wie Sie sehen können, wird der Standardfehler jetzt nicht auf dem Terminal angezeigt, da er in /dev/null verworfen wird .

Abschließend verwerfen Sie beide STDOUT und STDERR verwenden Sie gleichzeitig Folgendes:

$ mv -v tmp.c /etc/apt/sources.list /tmp &>/dev/null

Das kaufmännische Und-Zeichen ('&') gibt an, dass sowohl die Standardausgabe als auch der Standardfehler nach /dev/null umgeleitet werden müssen und verworfen. Daher sehen wir im letzten Screenshot überhaupt keine Ausgabe auf dem Bildschirm.

Schlussfolgerung

In diesem Artikel haben wir gesehen, wie die Ausgabe nach /dev/null umgeleitet wird . Dasselbe kann sowohl in Befehlen als auch in komplexen Bash-Skripten verwendet werden, die eine große Menge an Protokollen generieren. Falls das Skript debuggt oder getestet werden muss; in solchen Fällen ist das Protokoll erforderlich, um die Fehler richtig anzuzeigen und zu analysieren.

In Fällen, in denen die Ausgabe jedoch bereits bekannt und erwartet ist, kann sie mit /dev/null verworfen werden . Wenn Sie Fragen oder Feedback haben, teilen Sie uns dies in den Kommentaren unten mit!


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

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

  3. Wie man einen Cronjob komplett zum Schweigen bringt /dev/null/?

  4. Linux – Wie erstellt man /dev/null?

  5. So leiten Sie die Ausgabe einer Anwendung im Hintergrund nach /dev/null um

So ersetzen Sie eine ausgefallene Festplatte in einem Linux-Software-RAID

Was ist „/dev/null 2&1“ unter Linux

Was ist /dev/null unter Linux

/dev/null unter Linux

Wie erstellt man /dev/null?

Linux:Unterschied zwischen /dev/console , /dev/tty und /dev/tty0