Linux I/O-Umleitung

LinuxLinuxBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Die Linux-Eingabe/Ausgabe-Umleitung (I/O Redirection) ist ein leistungsstarkes Feature, das es Ihnen ermöglicht, zu steuern, wohin die Ausgabe eines Befehls geht und woher die Eingabe eines Befehls kommt. Indem Sie die Eingabe/Ausgabe-Umleitung beherrschen, können Sie die Ausgabe von Befehlen in Dateien speichern, mehrere Befehle kombinieren und Fehler effizient behandeln.

In diesem Lab (Praktikum) werden Sie lernen, wie Sie verschiedene Umleitungsoperatoren in Linux verwenden. Sie werden üben, die Standardausgabe in Dateien umzuleiten, Ausgabe an bestehende Dateien anzuhängen und Fehlermeldungen durch Umleitung zu verwalten. Diese Fähigkeiten sind für jeden Linux-Benutzer unerlässlich und machen Ihre Befehlszeilenoperationen effizienter und besser organisiert.

Dies ist ein Guided Lab, das schrittweise Anweisungen bietet, um Ihnen beim Lernen und Üben zu helfen. Befolgen Sie die Anweisungen sorgfältig, um jeden Schritt abzuschließen und praktische Erfahrungen zu sammeln. Historische Daten zeigen, dass dies ein Labor der Stufe Anfänger mit einer Abschlussquote von 94% ist. Es hat eine positive Bewertungsrate von 100% von den Lernenden erhalten.

Grundlegende Ausgabeumleitung

In Linux zeigen Befehle normalerweise ihre Ausgabe auf dem Bildschirm an. Mit der Eingabe/Ausgabe-Umleitung (I/O Redirection) können Sie diese Ausgabe stattdessen in Dateien senden. Der grundlegendste Umleitungsoperator ist >, der die Ausgabe in eine Datei sendet.

Beginnen wir damit, eine Verzeichnisstruktur für unsere Übungen zu erstellen:

cd ~/project
mkdir -p io_practice
cd io_practice

Jetzt sehen wir uns an, wie die Umleitung funktioniert. Wenn Sie den echo-Befehl verwenden, wird der Text auf dem Bildschirm angezeigt:

echo "Hello, Linux World!"

Sie sollten folgende Ausgabe sehen:

Hello, Linux World!

Um diese Ausgabe in eine Datei umzuleiten, anstatt sie auf dem Bildschirm anzuzeigen, verwenden Sie den >-Operator:

echo "Hello, Linux World!" > greeting.txt

Dieser Befehl erzeugt keine sichtbare Ausgabe, da der Text in die Datei umgeleitet wurde. Überprüfen wir, ob die Datei erstellt wurde und unseren Text enthält:

ls -l greeting.txt
cat greeting.txt

Sie sollten etwas wie Folgendes sehen:

-rw-r--r-- 1 labex labex 19 Oct 25 10:00 greeting.txt
Hello, Linux World!

Der >-Operator erstellt eine neue Datei, wenn sie nicht existiert, oder überschreibt die Datei vollständig, wenn sie bereits existiert. Demonstrieren wir dies, indem wir unsere Datei überschreiben:

echo "New content replaces old content completely." > greeting.txt
cat greeting.txt

Ausgabe:

New content replaces old content completely.

Wie Sie sehen können, ist der ursprüngliche Inhalt weg und durch den neuen Inhalt ersetzt.

Anhängen von Ausgabe an Dateien

Manchmal möchten Sie Inhalte an eine Datei hinzufügen, ohne den bereits vorhandenen Inhalt zu überschreiben. Zu diesem Zweck bietet Linux den >>-Operator, der die Ausgabe an das Ende einer Datei anhängt.

Fügen wir einige Textzeilen an unsere bereits vorhandene greeting.txt-Datei an:

echo "This line will be added to the end of the file." >> greeting.txt
cat greeting.txt

Ausgabe:

New content replaces old content completely.
This line will be added to the end of the file.

Wie Sie sehen können, wird der neue Inhalt an das Ende der Datei hinzugefügt, während der bestehende Inhalt erhalten bleibt.

Erstellen wir eine neue Datei namens log.txt und hängen wir mehrere Einträge an sie an, um eine Protokolldatei (Log-Datei) zu simulieren:

echo "Log entry 1: System started" > log.txt
echo "Log entry 2: User logged in" >> log.txt
echo "Log entry 3: Application launched" >> log.txt

Jetzt überprüfen wir den Inhalt unserer Protokolldatei:

cat log.txt

Ausgabe:

Log entry 1: System started
Log entry 2: User logged in
Log entry 3: Application launched

Sie können die Umleitung auch mit anderen Befehlen verwenden, nicht nur mit echo. Beispielsweise verwenden wir den ls-Befehl, um Dateien aufzulisten und die Ausgabe in eine Datei zu speichern:

ls -l > file_list.txt
cat file_list.txt

Die Ausgabe zeigt die detaillierte Liste der Dateien im aktuellen Verzeichnis, die in file_list.txt gespeichert wurde.

Denken Sie daran:

  • > erstellt eine neue Datei oder überschreibt eine bestehende Datei.
  • >> hängt an das Ende einer bestehenden Datei an oder erstellt eine neue Datei, wenn diese nicht existiert.

Umleitung von Fehlerausgaben

In Linux erzeugen Befehle zwei Arten von Ausgaben:

  1. Standardausgabe (stdout) – die normale Ausgabe eines Befehls
  2. Standardfehlerausgabe (stderr) – Fehlermeldungen, die von einem Befehl generiert werden

Bisher haben wir die Standardausgabe umgeleitet. Lassen Sie uns nun lernen, wie man die Standardfehlerausgabe umleitet.

Die Standardfehlerausgabe verwendet die Dateideskriptor-Nummer 2. Um sie umzuleiten, verwenden wir 2>. Versuchen wir, eine Datei aufzulisten, die nicht existiert, was einen Fehler generieren wird:

ls non_existent_file.txt

Sie werden eine Fehlermeldung sehen:

ls: cannot access 'non_existent_file.txt': No such file or directory

Jetzt leiten wir diese Fehlermeldung in eine Datei um:

ls non_existent_file.txt 2> error.log

Diesmal sehen Sie keine Fehlermeldung auf dem Bildschirm, da sie in die error.log-Datei umgeleitet wurde. Überprüfen wir den Inhalt dieser Datei:

cat error.log

Ausgabe:

ls: cannot access 'non_existent_file.txt': No such file or directory

Sie können auch sowohl die Standardausgabe als auch die Standardfehlerausgabe in verschiedene Dateien umleiten:

## Create a file we can successfully list
echo "This is a test file" > existing_file.txt

## Redirect stdout to one file and stderr to another
ls existing_file.txt non_existent_file.txt > output.log 2> error2.log

## Check both files
echo "Content of output.log:"
cat output.log
echo "Content of error2.log:"
cat error2.log

Ausgabe:

Content of output.log:
existing_file.txt
Content of error2.log:
ls: cannot access 'non_existent_file.txt': No such file or directory

Sie können sogar sowohl die Standardausgabe als auch die Standardfehlerausgabe in dieselbe Datei umleiten, indem Sie &> verwenden:

ls existing_file.txt non_existent_file.txt &> combined.log
cat combined.log

Dadurch werden sowohl die normale Ausgabe als auch alle Fehlermeldungen in der combined.log-Datei aufgezeichnet.

Zusammenfassung

In diesem Lab haben Sie die grundlegenden Konzepte der Ein- und Ausgabeumleitung (I/O Redirection) in Linux gelernt. Sie haben Folgendes geübt:

  1. Grundlegende Ausgabeumleitung mit dem >-Operator, um Dateien zu erstellen oder zu überschreiben
  2. Anhängen von Ausgabe an bestehende Dateien mit dem >>-Operator
  3. Umleitung der Standardfehlerausgabe mit dem 2>-Operator
  4. Umleitung sowohl der Standardausgabe als auch der Standardfehlerausgabe in verschiedene Dateien oder dieselbe Datei

Diese Umleitungstechniken sind essentielle Werkzeuge für Linux-Befehlszeilenoperationen. Sie ermöglichen es Ihnen:

  • Befehlsausgaben für die spätere Referenz zu speichern
  • Protokolldateien (Log-Dateien) für das Debugging zu erstellen
  • Fehlermeldungen bei Bedarf zu unterdrücken
  • Mehrere Ausgaben in einer einzigen Datei zusammenzufassen

Durch das Beherrschen der Ein- und Ausgabeumleitung haben Sie wertvolle Fähigkeiten zu Ihrem Linux-Werkzeugkasten hinzugefügt, die Ihnen helfen, effizienter und effektiver mit der Befehlszeile zu arbeiten.