Umleiten Sie Stdout und Stderr zur Datei um

Umleiten Sie Stdout und Stderr zur Datei um

Wenn Sie eine Befehlsausgabe in eine Datei umleiten, werden Sie feststellen, dass die Fehlermeldungen im Terminalfenster gedruckt werden. Jeder Befehl, der in einer Linux -Shell wie Bash ausgeführt wird, verwendet drei reguläre E/A -Streams. Ein numerischer Dateideskriptor wird verwendet, um jeden Stream darzustellen.

  • Der Standardeingangsstream (STDIN): 0
  • Der Standardausgangsstrom (STDOut): 1
  • Der Standardfehlerstrom (STDERR): 2

In diesem Beitrag werden wir die Informationen erfassen, die unter die Umleitung von Stdout und Stderr zu einer Datei werden.

Standardausgabe (STDOut):

Jedes Betriebssystem, das auf Linux basiert. Jeder bezeichnet diesen Begriff als "stdout" oder "Standardausgabe", um sie einfacher klingen zu lassen. Ihre Bash- oder ZSH -Shell sucht ständig nach dem Standardausgangsort. Wenn die Shell eine neue Ausgabe erkennt, wird sie auf dem Terminalbildschirm angezeigt, damit Sie sie sehen können. Andernfalls wird die Ausgabe an den Standardpunkt gesendet.

Standardfehler (Stderr):

Standardfehler oder Stderr ähnelt der Standardeingabe und Ausgabe, wird jedoch zum Speichern von Fehlermeldungen verwendet. Der Standardfehler kann mit einem Terminal in die Befehlszeile oder eine Datei umgeleitet werden. Wenn Sie Nachrichten in einer separaten Protokolldatei aufzeichnen oder speichern oder die Fehlermeldungen ausblenden möchten, hilft Ihnen die Umleitung von Stderr Ihnen bei. Gehen wir nun auf die praktische Seite von Stdout und Stderr -Umleitung.

Stdout und Stderr in eine Datei umleiten:

Als Umleitung ist eine Methode, um eine Programmausgabe zu erfassen und als Eingabe an einen anderen Befehl oder eine andere Datei zu senden. Die E/A -Streams können umgeleitet werden, indem der N> Bediener verwendet wird, wobei n die Dateideskriptornummer ist. Zum Umleiten von StDout verwenden wir "1>" und für Stderr wird "2>" als Operator hinzugefügt.

Wir haben eine Datei mit dem Namen „Beispiel.txt ”, um die umgeleitete Ausgabe in unserem aktuellen Verzeichnis zu speichern.

Die (Befehl> Datei) wird als klassischer Umleitungsoperator angesehen, der die Standardausgabe nur mit dem in der Klemme gezeigten Standardfehler umleitet. Wir werden verschiedene Optionen demonstrieren, um Stderr auch umzuleiten.

Umleiten von Stderr und Stdout in separate Dateien:

Unten finden Sie die Befehlssyntax zum Umleiten von STDOut und STDERR in getrennten Dateien.

Befehl> out 2> Fehler

Der folgende Befehl untergewandt wird die Ausgabe in die Datei „Out“ und Fehlermeldungen in die "Fehler" -Datei umleiten.

$ CAT -Probe.txt> out 2> fehler

Umleiten von Stderr zu Stdout:

Es ist eine übliche Praxis, den Stderr mit der Standardausgabe eines Programms umzuleiten, um alles in einer einzelnen Datei zu speichern. Hier ist die Befehlssyntax für die Umleitung von Stderr in STDOut:

Befehl> out 2> & 1
$ ls> samplefile.txt 2> & 1
$ cat samplefile.txt

> Out leitet den STDOUT um die Probe -Datei um.TXT und 2> & 1 werden den Stderr an den aktuellen Standort von STDOut umleiten.

Wenn Stderr zuerst zu STDOut weitergeleitet wird, verwenden Sie den folgenden Befehl, um den STDOut in eine Datei umzuleiten.

Befehl 2> & 1> Datei
$ ls -al 2> & 1> samplefile.txt
$ cat samplefile.txt

"&>" Wird auch für dieselbe Funktionalität verwendet, die "2> & 1" ausführt.

Befehl &> Datei
$ ls &> samplefile.txt
$ cat samplefile.txt

Umleiten von Stdout und Stderr zu einer einzelnen Datei:

Alle Muscheln unterstützen diese Formumleitung nicht, sondern unterstützen sie, sondern unterstützen sie. Stdout und Stderr können durch Verwendung der folgenden Syntax umgeleitet werden.

Befehl &> out
$ CAT -Probe.txt &> out

Im kommenden Abschnitt des Artikels werden wir das separate Beispiel für die Umleitung von STDOut und STDERR ansehen.

Umleiten von Stdout in eine Datei:

Die Standardausgabe wird durch die "1" in der Liste der Dateideskriptornummern dargestellt. Für den Umleitungsbefehl ohne Dateideskriptorennummer hat der Terminal seinen Wert auf "1" festgelegt. Die Syntax für die Umleitung des STDOuts in eine Datei wird wie folgt angegeben:

Befehl> Datei

Wir verwenden die „Probe.Datei ”zum Speichern der Standardausgabe des Befehl„ LS -ALAL “

$ ls -al> Probe.txt
$ CAT -Probe.txt
Befehl 1> Datei
$ ls 1> Probe.txt
$ CAT -Probe.txt

Umleiten von Stderr in eine Datei:

Verwenden Sie den Operator "2>", um das Stderr in eine Datei umzuleiten.

Befehl 2> Datei
$ ls -al 2> Probe.txt

Wir können die Ausführung für Stderr und Stdout in einem einzigen Umleitungsbefehl kombinieren.

Befehl 2> Fehler.txt 1> Ausgabe.txt

Im folgenden Beispiel werden die Fehlermeldungen in „Fehler aufbewahrt.txt, wo "Ausgabe.txt ”wird seine Standardausgabe des„ LS -Befehls haben.”

$ ls 2> Fehler.txt 1> Ausgabe.txt
$ CAT -Ausgabe.txt

Abschluss:

Das Konzept der Umleitung und Dateideskriptoren für E/A -Streams ist sehr wertvoll, während sie in einem Linux -Terminal arbeiten. In diesem Beitrag haben wir über die regulären E/A -Streams gesprochen, einschließlich Stdout und Stderr. Der erste Abschnitt dieses Beitrags bringt Ihnen detaillierte Informationen über die Umleitung, I/O -Streams und den numerischen Dateideskriptor mit. Als nächstes haben Sie das praktische Beispiel für verschiedene Formen von Stdout und Stderr -Umleitung gesehen.