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

So verwenden Sie die Befehlsumleitung unter Linux

Shell-Metazeichen

Shell-Metazeichen sind bestimmte Zeichen, im Allgemeinen Symbole, die innerhalb der Shell eine besondere Bedeutung haben. Die in Bash unterstützten Metazeichen sind wie folgt aufgelistet:

  • | :Sendet die Ausgabe des Befehls links als Eingabe an den Befehl rechts vom Symbol
  • & :Führt den Prozess im Hintergrund aus, sodass Sie auf der Befehlszeile weiterarbeiten können
  • ; :Ermöglicht es Ihnen, mehrere Befehle in einer einzigen Zeile aufzulisten, getrennt durch dieses Zeichen
  • () :Gruppiert Befehle und sendet ihre Ausgabe an dieselbe Stelle
  • < :Ruft die Eingabe für den Befehl links von der Datei ab, die rechts von diesem Symbol aufgelistet ist
  • > :Sendet die Ausgabe des links stehenden Befehls in die rechts von diesem Symbol benannte Datei
  • Leertaste
Achtung :Verwenden Sie diese Metazeichen nicht beim Erstellen von Datei- und Verzeichnisnamen. Diese Zeichen haben in der Shell eine besondere Bedeutung.

Umleitungs-Metazeichen

Die Befehlsumleitung wird durch die folgenden Shell-Metazeichen aktiviert:

  • Umleitung der Standardeingabe (<)
  • Umleitung der Standardausgabe (>)
  • Umleitung des Standardfehlers (2>)
  • Das Pipe-Zeichen (|)

Die Dateideskriptoren

Jeder Prozess arbeitet mit Dateideskriptoren. Dateideskriptoren bestimmen, woher die Eingabe für den Befehl stammt und wohin die Ausgabe und die Fehlermeldungen geleitet werden. Die Tabelle erklärt die Dateideskriptoren.

Dateideskriptornummer Dateideskriptor-Abkürzung Definition
0 stdin Standard-Befehlseingabe
1 stdout Standard-Befehlsausgabe
2 stderr Standardbefehlsfehler

Befehlsumleitung

Standardmäßig empfängt oder liest die Shell Eingaben von der Standardeingabe, der Tastatur, und zeigt die Ausgabe und Fehlermeldungen auf der Standardausgabe, dem Bildschirm, an. Die Eingabeumleitung zwingt einen Befehl, die Eingabe aus einer Datei statt von der Tastatur zu lesen. Die Ausgabeumleitung sendet die Ausgabe eines Befehls in eine Datei, anstatt die Ausgabe an den Bildschirm zu senden.

Standardeingabe umleiten

Je kleiner als (< ) metacharacter verarbeitet eine Datei als Standardeingabe, anstatt die Eingabe von der Tastatur zu lesen.

# command < filename

oder

# command 0< filename

Verwenden Sie beispielsweise die Datei data.txt als Eingabe für den Befehl mailx.

# mailx -s test [email protected] < data.txt

Standardausgabe umleiten

Das Größer-als (> ) Metazeichen leitet die Standardausgabe in eine Datei, anstatt die Ausgabe auf dem Bildschirm auszugeben.

# command > filename

oder

# command 1> filename

Wenn die Datei nicht existiert, wird sie vom System erstellt. Wenn Sie ein einzelnes Größer-als-Metazeichen (>) verwenden, überschreibt der Befehl den ursprünglichen Inhalt der Datei, falls die Datei bereits vorhanden ist. Wenn Sie zwei Größer-als-Zeichen (>>) verwenden, hängt der Befehl die Ausgabe an den ursprünglichen Inhalt der Datei an.

$ command >> filename

Standardfehler umleiten

Ein Befehl, der die Dateideskriptornummer (2) und das Größer-als-Zeichen (>) verwendet, leitet alle Standardfehlermeldungen in die Datei /dev/null um.

$ command 2> /dev/null

Das folgende Beispiel zeigt die Standardausgabe und den Standardfehler, der in die Datei data.txt umgeleitet wird.

$ ls /tmp 1> data.txt 2>&1
Hinweis :Die Syntax 2>&1 weist die Shell an, stderr (2) in dieselbe Datei umzuleiten, die stdout (1) empfängt.

Der Pfeifencharakter

Das Pipe-Zeichen leitet die Standardausgabe eines Befehls auf die Standardeingabe eines anderen Befehls um. Der erste Befehl schreibt die Ausgabe auf die Standardausgabe und der zweite Befehl liest die Standardausgabe des vorherigen Befehls als Standardeingabe.

$ command | command

Verwenden Sie beispielsweise die Standardausgabe des Befehls who als Standardeingabe für den Befehl wc -l.

 $ who | wc -l 
35

Geben Sie den folgenden Befehl ein, um eine Liste aller Unterverzeichnisse im Verzeichnis /etc anzuzeigen.

$ ls -F /etc | grep "/" X11/
acct/
apache/
apache2/

Verwenden Sie die Ausgabe des Head-Befehls als Eingabe für den 'xargs ls'-Befehl.

head -10 data.txt | xargs ls 


Linux
  1. So verwenden Sie den Linux-Grep-Befehl

  2. So verwenden Sie den Verlaufsbefehl unter Linux

  3. So verwenden Sie den Su-Befehl unter Linux

  4. So verwenden Sie den Linux-Bildschirmbefehl

  5. So verwenden Sie den tar-Befehl unter Linux

So verwenden Sie den Linux-nohup-Befehl

So verwenden Sie den Linux-Ping-Befehl

So verwenden Sie du Command unter Linux

So verwenden Sie den Befehl sysctl unter Linux

So verwenden Sie den Befehl zum Herunterfahren von Linux

So verwenden Sie grep unter Linux