Leiten Sie Stderr und Stdout in eine Datei in Bash um
- Standardausgabe und Standardfehler in Linux
- Leiten Sie die Standardausgabe in eine Datei in Bash um
- Leiten Sie den Standardfehler in eine Datei in Bash um
- Leiten Sie die Standardausgabe und den Standardfehler in eine Datei in Bash um
Dieser Artikel behandelt die Standardausgabe und den Standardfehler in Linux. Wir werden sehen, wie wir die Standardausgabe und den Standardfehler in Bash umleiten können.
Beginnen wir mit dem Verständnis der Begriffe Standardausgabe und Standardfehler in Linux.
Standardausgabe und Standardfehler in Linux
In Linux nehmen Befehle einige Eingaben vom Benutzer entgegen, die eine Datei oder ein beliebiges Attribut sein können. Wenn wir diese Befehle ausführen, geben sie eine Ausgabe der von uns eingegebenen Eingaben aus, die als Standardausgabe bezeichnet wird.
Diese Standardausgabe kann ein Erfolg oder ein Fehler sein. Wenn die Ausgabe, die wir erhalten, ein Fehler ist, nennen wir dies Standardfehler.
Beide werden auf unserem Terminalbildschirm angezeigt. Manchmal möchten wir die Standardausgabe und den Standardfehler in einer Datei speichern, um den Code zu testen oder zu debuggen.
Unter Linux können wir diese beiden Ausgaben in eine Datei umleiten, und der Prozess, der sie speichert, wird als Umleitung bezeichnet.
In Linux haben wir für jeden Prozess drei Datenströme, Standard Input (stdin
), Standard Output (stdout
) und Standard Error (stderr
).
Die Standardeingabe (stdin
) nimmt Eingaben des Benutzers über die Tastatur entgegen. Die Standardausgabe (stdout
) zeigt die Ausgabe auf dem Terminalbildschirm an.
Der Standardfehler (stderr
) zeigt die Fehlerinformationen auf dem Bildschirm an. Standardmäßig werden sowohl die Standardausgabe als auch der Standardfehler auf dem Terminalbildschirm gedruckt.
Unter Linux hat jeder Datenstrom eine eindeutige numerische ID:
- Für die Standardeingabe (
stdin
) ist die numerische ID0
. - Für die Standardausgabe (
stdout
) ist die numerische ID1
. - Für Standardfehler (
stderr
) ist die numerische ID2
.
Lassen Sie uns die Umleitung der Standardausgabe und des Standardfehlers genauer erläutern.
Leiten Sie die Standardausgabe in eine Datei in Bash um
Unter Linux können wir die stdout
mithilfe ihrer numerischen ID in eine Datei umleiten. Um die Standardausgabe eines beliebigen Befehls umzuleiten, verwenden wir 1
mit einer Umleitungsoperation, die das Zeichen >
ist.
In unserem Beispiel verwenden wir den Befehl ls
. Wir werden die Ausgabe des Befehls ls
in eine Datei umleiten.
Dann sehen wir uns die Textdatei an, um die Ausgabe des in der Datei gespeicherten Befehls ls
zu sehen.
Beispielcode:
$ ls 1> stdout.txt
Um die Datei anzuzeigen, verwenden wir diesen Befehl:
$ cat stdout.txt
Die Ausgabe des Codes:
Wie im obigen Terminalbildschirm gezeigt, haben wir den Befehl ls 1> stdout.txt
im Terminal verwendet. Dieser Befehl speichert die Ausgabe des Befehls ls
in der Datei namens stdout.txt
.
Wir verwenden den Befehl ls
in Linux, um alle Dateien und Verzeichnisse aufzulisten. Also leiten wir die Ausgabe des ls
-Befehls in eine Datei um.
Als wir die Datei mit dem Befehl cat
betrachteten, konnten wir die Standardausgabe des in der Datei gespeicherten Befehls ls
sehen. Auf diese Weise können wir die Standardausgabe eines beliebigen Befehls mithilfe seiner numerischen ID in eine Datei umleiten.
Leiten Sie den Standardfehler in eine Datei in Bash um
Wir können den Standardfehler
auch mithilfe seiner numerischen ID auf eine Datei umleiten. Um den Standardfehler zu einer Datei umzuleiten, verwenden wir ihre numerische ID 2
mit dem Umleitungsoperator >
.
Wir können das mit dem folgenden Befehl im Terminal tun.
Beispielcode:
$ cat file.txt 2> stderr.txt
Um die Datei mit dem Namen stderr.txt
anzuzeigen, verwenden wir diesen Befehl:
$ cat stderr.txt
Wie wir sehen können, haben wir im Terminal den Befehl cat file.txt 2> stderr.txt
verwendet. Da es im aktuellen Verzeichnis keine Datei mit dem Namen file.txt
gibt, gibt der Befehl cat
einen Fehler aus, den wir in der Datei stderr.txt
angehängt haben.
Als wir die Datei stderr.txt
mit dem Befehl cat
angesehen haben, können wir sehen, dass sie den Fehler No such file or directory
anzeigt. Das bedeutet, dass wir den Standardfehler des cat
-Befehls in eine Datei namens stderr.txt
umgeleitet haben.
So können wir den Standardfehler eines beliebigen Befehls in eine Datei umleiten.
Leiten Sie die Standardausgabe und den Standardfehler in eine Datei in Bash um
Wir können diese beiden Ausgaben auch mit einem einzigen Befehl in eine Datei umleiten. Dazu verwenden wir den folgenden Befehl.
Beispielcode:
$ ls 1> stdout.txt 2> stderr.txt
Um die Datei stdout.txt
anzuzeigen, verwenden wir diesen Befehl:
$ cat stdout.txt
Um die Datei stderr.txt
anzuzeigen, verwenden wir diesen Befehl:
$ cat stderr.txt
Wie wir sehen können, haben wir die Standardausgabe und den Standardfehler in einem einzigen Befehl in Dateien umgeleitet. Die Ausgabe des Befehls ls
wird in der Datei stdout.txt
gespeichert, und die Füllung stderr.txt
bleibt leer, da kein Fehler auftreten würde.
So können wir die Standardausgabe und den Standardfehler mit nur einem einzigen Befehl in eine Datei umleiten.
Wir hoffen, dass Sie diesen Linux-Artikel hilfreich finden, um zu verstehen, wie Sie die Standardausgabe und den Standardfehler eines beliebigen Befehls in eine Datei in Bash umleiten können.
My name is Abid Ullah, and I am a software engineer. I love writing articles on programming, and my favorite topics are Python, PHP, JavaScript, and Linux. I tend to provide solutions to people in programming problems through my articles. I believe that I can bring a lot to you with my skills, experience, and qualification in technical writing.
LinkedIn