[Shell-Grundlagen 13] Eingabe und Ausgabe und Umleitung

1. Standardeingabe und Standardausgabe

Unter Linux gibt es drei Standardein- und -ausgaben, nämlich STDIN, STDOUT, STDERR, und die Dateideskriptoren sind 0, 1 bzw. 2.

Wenn der Befehl ausgeführt wird, öffnet der durch den Befehl gestartete Prozess automatisch die drei reservierten Dateideskriptoren.
Wie nachfolgend dargestellt
Fügen Sie hier eine Bildbeschreibung ein

Unter Linux ist alles eine Datei, einschließlich Ein- und Ausgabe, wobei:

  • 0 bedeutet Standardeingabe und der entsprechende Dateideskriptor ist /proc/self/fd/0.
  • 1 bedeutet Standardausgabe und der entsprechende Dateideskriptor ist /proc/self/fd/1.
  • 2 Standardfehler, der entsprechende Dateideskriptor ist /proc/self/fd/2.

Diese Dateideskriptoren können zur Steuerung der Ein- und Ausgabe von Befehlsprogrammen oder Skripten verwendet werden.

Die Bedeutung unserer häufig verwendeten Befehle 2>&1besteht darin, Standardfehler auf Standardausgabe umzuleiten, dh Standardausgabe und Standardfehler als denselben Ausgabepfad anzugeben.

 
 

2. Umleitung

1. Definition

Wenn die Shell einen Befehl ausführt, kann sie die Eingabequelle der Standardeingabe und den Zielspeicherort der Standardausgabe ändern. Diese Funktion wird als Umleitung bezeichnet.

Bei der Umleitung gibt die Syntax von n>file an, dass die Ausgabe des Dateideskriptors n in die Dateidatei umgeleitet wird. Wenn n weggelassen wird, ist der Dateideskriptor standardmäßig 1, sodass > die Standardausgabe umleitet.

Fügen Sie hier eine Bildbeschreibung ein
 

2. Ausgabeumleitung

Das Ziel für die Standardausgabe verweist normalerweise auf den Terminalbildschirm. Das Ziel der Standardausgabe kann mit dem Symbol > geändert werden .
 

Beispiel 1:
Im folgenden Beispiel wird beispielsweise die Ausgabe des ps-Befehls in die Datei result.txt umgeleitet.

$ ps > result.txt  ←----- 由于已经重定向到 result.txt 文件,所以屏幕上不会输出任何内容
$ cat result.txt
  PID TTY          TIME CMD
10745 pts/0    00:00:00 bash
10873 pts/0    00:00:00 ps

 
Beispiel 2:
Das Ausführungsergebnis des Echo-Befehls wird in die Datei hello.txt umgeleitet.

$ echo hello > hello.txt
$ cat hello.txt
hello

Notiz:

Eine Umleitung kann implementiert werden, solange der Befehl das Ausführungsergebnis auf der Standardausgabe ausgeben kann.

 

3. Umleitung der Standardfehlerausgabe

Um Fehlermeldungen vom Standardfehler umzuleiten, verwenden Sie das Symbol 2>.

Beispiel: Die Standardfehlerausgabe des Befehls ls wird in die Datei error.txt umgeleitet.

$ ls /xxx 2> error.txt
$ cat error.txt
ls: 无法访问'/xxx': 没有那个文件或目录

 

4. Eingabeumleitung

Die Standardeingabe kann ebenso wie die Standardausgabe umgeleitet werden.

Nehmen Sie als Beispiel den Befehl tr:
Der Befehl tr dient zum Ersetzen einer Zeichenfolge und hat die Syntax tr 待替换的字符串 被替换后的字符串.

tr b B

abc'
aBc'
my book

Nach der Eingabe einiger Inhalte über die Tastatur ersetzt der Befehl tr den eingegebenen Inhalt in Zeileneinheiten und gibt das ersetzte Ergebnis aus. Um den tr-Befehl zu beenden, verwenden Sie Strg + D, um den Eingabestatus zu beenden.

 

Ich denke du magst

Origin blog.csdn.net/hiliang521/article/details/130689520
Empfohlen
Rangfolge