Eingabe-Ausgabe-Umleitung in Linux/Unix-Beispielen

Was ist Umleitung?

Die Umleitung ist eine Funktion in Linux, mit der Sie beim Ausführen eines Befehls die Standard-Eingabe-/Ausgabegeräte ändern können. Der grundlegende Arbeitsablauf von jedem Linux-Befehl ist, dass es eine Eingabe entgegennimmt und eine Ausgabe liefert.

  • Das Standardeingabegerät (stdin) ist die Tastatur.
  • Das Standardausgabegerät (stdout) ist der Bildschirm.

Mit der Umleitung kann die obige Standard-Ein-/Ausgabe geändert werden.

Klicken Sie hier wenn das Video nicht zugänglich ist

Ausgabeumleitung

Der '>' Symbol wird für die Umleitung der Ausgabe (STDOUT) verwendet.

Ausgabeumleitung

Beispiel:

ls -al > listings

Hier wird die Ausgabe des Befehls ls -al in die Datei „listings“ anstatt auf Ihren Bildschirm umgeleitet.

Ausgabeumleitung

NoteFehlerbeseitigung: Verwenden Sie den korrekten Dateinamen, während Sie die Befehlsausgabe in eine Datei umleiten. Wenn es eine vorhandene Datei mit demselben Namen gibt, löscht der umgeleitete Befehl den Inhalt dieser Datei und kann dann überschrieben werden.“

Wenn Sie nicht möchten, dass eine Datei überschrieben wird, sondern einer bestehenden Datei mehr Inhalt hinzufügen möchten, sollten Sie verwenden '>>' Operator.

Ausgabeumleitung

Sie können die Standardausgabe nicht nur auf Dateien, sondern auch auf Geräte umleiten!

$ cat music.mp3 > /dev/audio

Der cat-Befehl liest die Datei music.mp3 und sendet die Ausgabe an /dev/audio, das das Audiogerät ist. Wenn die Soundkonfigurationen in Ihrem PC korrekt sind, spielt dieser Befehl die Datei music.mp3 ab

Eingabeumleitung

Der 'Das Symbol „wird für die Eingabeumleitung (STDIN) verwendet

Eingabeumleitung

Beispiel: Der mail Das Programm unter Linux kann Ihnen beim Senden von E-Mails helfenmails vom Terminal.

Sie können den Inhalt des E-Mails eingebenmail über die Standardgerätetastatur. Wenn Sie jedoch eine Datei an e. anhängen möchtenmail Sie können im Folgenden den Eingabeumleitungsoperator verwendenwing Format.

Mail -s "Subject" to-address < Filename

Eingabeumleitung

Dies würde die Datei mit dem e anhängenmail, und es wird an den Empfänger gesendet.

Die obigen Beispiele waren einfach. Schauen wir uns einige fortgeschrittene Umleitungstechniken an, die Dateideskriptoren nutzen.

Dateideskriptoren (FD)

Unter Linux/Unix ist alles eine Datei. Normale Dateien, Verzeichnisse und sogar Geräte sind Dateien. Jeder Datei ist eine Nummer zugeordnet, die als Dateideskriptor (FD) bezeichnet wird.

Ihr Bildschirm verfügt auch über einen Dateideskriptor. Wenn ein Programm ausgeführt wird, wird die Ausgabe an den Dateideskriptor des Bildschirms gesendet und Sie sehen die Programmausgabe auf Ihrem Monitor. Wenn die Ausgabe an den Dateideskriptor des Druckers gesendet wird, wird die Programmausgabe gedruckt.

Fehlerumleitung

Immer wenn Sie ein Programm/einen Befehl am Terminal ausführen, sind immer 3 Dateien geöffnet, viz., Standardeingabe, Standardausgabe, Standardfehler.

Fehlerumleitung

Diese Dateien sind immer vorhanden, wenn ein Programm ausgeführt wird. Wie bereits erläutert, ist jeder dieser Dateien ein Dateideskriptor zugeordnet.

Reichen Sie das Dateideskriptor
Standardeingabe STDIN 0
Standardausgabe STDOUT 1
Standardfehler STDERR 2

Standardmäßig wird der Fehlerstrom auf dem Bildschirm angezeigt. Bei der Fehlerumleitung werden die Fehler in eine andere Datei als den Bildschirm weitergeleitet.

Warum Fehlerumleitung?

Die Fehlerumleitung ist eine der sehr beliebten Funktionen von Unix / Linux.

Häufige UNIX-Benutzer werden damit rechnen, dass viele Befehle eine Menge Fehler verursachen.

  • Zum Beispiel, während searching für Dateien, erhält man normalerweise Fehlermeldungen, dass die Berechtigung verweigert wurde. Diese Fehler helfen der Person normalerweise nicht weiterarching für eine bestimmte Datei.
  • Beim Ausführen von Shell-Skripten möchten Sie häufig NICHT, dass Fehlermeldungen die normale Programmausgabe überladen.

Die Lösung besteht darin, die Fehlermeldungen in eine Datei umzuleiten.

Beispiel 1

$ myprogram 2>errorsfile

Warum Fehlerumleitung

Oben führen wir ein Programm namens myprogram aus.

Der Dateideskriptor für Standardfehler ist 2.

Mit „2>“ leiten wir die Fehlerausgabe in eine Datei namens „errorfile“ um

Somit ist die Programmausgabe nicht mit Fehlern überladen.

Beispiel 2

Hier ist ein weiteres Beispiel, das die find-Anweisung verwendet –

find . -name 'my*' 2>error.log

Mit dem Befehl „find“ sind wir searching das „.“ aktuelles Verzeichnis für eine Datei, deren „Name“ mit „my“ beginnt

Warum Fehlerumleitung

Beispiel 3: Sehen wir uns mal ein weiteres Com anplex Beispiel

Serveradministratoren listen häufig Verzeichnisse auf und speichern sowohl Fehler- als auch Standardausgaben in einer Datei, die verarbeitet werden kann later. Hier ist der Befehl.

ls Documents ABC> dirlist 2>&1

Hier

  • die die Ausgabe einer Datei in die Eingabe einer anderen Datei schreibt. 2>&1 bedeutet, dass STDERR zum Ziel von STDOUT umleitet (das ist die Datei dirlist)
  • Wir leiten die Fehlerausgabe an die Standardausgabe um, die wiederum an die Datei dirlist umgeleitet wird. Daher wird sowohl die Ausgabe in die Datei dirlist geschrieben

Warum Fehlerumleitung

Zusammenfassung

  • Jeder Datei unter Linux ist ein entsprechender Dateideskriptor zugeordnet
  • Die Tastatur ist das Standardeingabegerät, während Ihr Bildschirm das Standardausgabegerät ist
  • „>“ ist der Ausgabeumleitungsoperator. „>>“ hängt die Ausgabe an eine vorhandene Datei an
  • „<“ ist der Eingabeumleitungsoperator
  • „>&“ leitet die Ausgabe einer Datei in eine andere um.
  • Sie können Fehler mithilfe des entsprechenden Dateideskriptors 2 umleiten.