Da es sich bei Linux jedoch um ein flexibles System handelt, müssen diese Standardeinstellungen nicht unbedingt übernommen werden. Die Standardausgabe kann beispielsweise auf einem stark überwachten Server in einer großen Umgebung ein Drucker sein.
5.1.2. Die Umleitungsoperatoren
5.1.2.1. Ausgabeumleitung mit > und |
Manchmal möchten Sie die Ausgabe eines Befehls in einer Datei ablegen oder einen anderen Befehl für die Ausgabe eines Befehls ausgeben. Dies wird als Umleitung der Ausgabe bezeichnet. Die Umleitung erfolgt entweder mit dem „>“ (Größer-als-Symbol) oder mit dem „|“ (Pipe-)Operator, der die Standardausgabe eines Befehls als Standardeingabe an einen anderen Befehl sendet.
Wie wir zuvor gesehen haben, ist das Katze Der Befehl verkettet Dateien und fügt sie alle zur Standardausgabe zusammen. Durch die Umleitung dieser Ausgabe in eine Datei wird dieser Dateiname erstellt – oder überschrieben, falls er bereits existiert. Seien Sie also vorsichtig.
nancy:~> Katzentest1
einige Worte
nancy:~> Katzentest2
noch ein paar andere Worte
nancy:~> Katze Test1 Test2 > Test3
nancy:~> Katzentest3
einige Worte
nancy:~> Katzentest1
einige Worte
nancy:~> Katzentest2
noch ein paar andere Worte
nancy:~> Katze Test1 Test2 > Test3
nancy:~> Katzentest3
einige Worte
einige Sonstiges Worte
Nicht überschreiben!
Achten Sie darauf, beim Umleiten der Ausgabe keine vorhandenen (wichtigen) Dateien zu überschreiben. Viele Shells, einschließlich Bash, verfügen über eine integrierte Funktion, die Sie vor diesem Risiko schützt: noclobber. Weitere Informationen finden Sie auf den Infoseiten. In Bash möchten Sie das hinzufügen kompensieren -o noclobber Befehl an deine .bashrc Konfigurationsdatei, um ein versehentliches Überschreiben von Dateien zu verhindern.
Das Umleiten von „nichts“ in eine vorhandene Datei ist gleichbedeutend mit dem Leeren der Datei:
nancy:~> ls -l Liste -rw-rw-r-- 1 Nancy | Nancy | 117 2. April 18:09 Liste |
nancy:~> > Liste | ||
nancy:~> ls -l Liste -rw-rw-r-- 1 Nancy | Nancy | 0 4. April 12:01 Liste |
Dieser Prozess wird aufgerufen abschneiden.
Die gleiche Umleitung zu einer nicht vorhandenen Datei erstellt eine neue leere Datei mit dem angegebenen Namen:
nancy:~> ls -l neue Liste
ls: newlist: Keine solche Datei oder kein solches Verzeichnis
nancy:~> > Neue Liste
nancy:~> ls -l neue Liste
ls: newlist: Keine solche Datei oder kein solches Verzeichnis
nancy:~> > Neue Liste
nancy:~> ls -l neue Liste
-rw-rw-r-- 1 Nancy Nancy
0 4. April 12:05 Neue Liste
nancy:~> ls -l neue Liste
-rw-rw-r-- 1 Nancy Nancy
Kapitel 7 enthält weitere Beispiele für die Verwendung dieser Art der Umleitung. Einige Beispiele für die Weiterleitung von Befehlen:
Um ein Wort in einem Text zu finden, zeigen Sie alle Zeilen an, die mit „Muster1“ übereinstimmen, und schließen Sie Zeilen, die auch mit „Muster2“ übereinstimmen, von der Anzeige aus:
grep pattern1 Datei | grep -v pattern2
So zeigen Sie die Ausgabe eines Verzeichnisses an, das jeweils eine Seite auflistet:
ls -Der | weniger
So finden Sie eine Datei in einem Verzeichnis:
ls -l | grep Teil_des_Dateinamens
5.1.2.2. Eingabeumleitung
In einem anderen Fall möchten Sie möglicherweise, dass eine Datei als Eingabe für einen Befehl dient, der normalerweise keine Datei als Option akzeptiert. Diese Umleitung der Eingabe erfolgt mithilfe des Operators „<“ (Kleiner-als-Symbol).
Unten sehen Sie ein Beispiel für das Senden einer Datei an jemanden mithilfe der Eingabeumleitung.
andy:~> E-mail [E-Mail geschützt] < machen
Wenn der Benutzer Mikrofon Wenn eine Adresse im System vorhanden ist, müssen Sie nicht die vollständige Adresse eingeben. Wenn Sie jemanden im Internet erreichen möchten, geben Sie als Argument an die vollqualifizierte Adresse ein E-mail.
Das liest sich etwas schwieriger als die Einsteigerkatze Datei | Post jemand, aber es ist natürlich eine viel elegantere Art, die verfügbaren Tools zu nutzen.
5.1.2.3. Weiterleitungen kombinieren
Das folgende Beispiel kombiniert die Eingabe- und Ausgabeumleitung. Die Datei text.txt wird zunächst auf Rechtschreibfehler überprüft und die Ausgabe in eine Fehlerprotokolldatei umgeleitet:
Fluch text.txt > error.log
Der folgende Befehl listet alle Befehle auf, die Sie ausführen können, um bei der Verwendung eine andere Datei zu untersuchen weniger:
mike:~> less --help | grep -ich untersuche
:e [Datei] Untersuchen Sie eine neue Datei.
:n * Untersuchen Sie die (N-te) nächste Datei über die Befehlszeile.
:p * Untersuchen Sie die (N-te) vorherige Datei über die Befehlszeile.
:x * Untersuchen Sie die erste (oder N-te) Datei über die Befehlszeile.
mike:~> less --help | grep -ich untersuche
:e [Datei] Untersuchen Sie eine neue Datei.
:n * Untersuchen Sie die (N-te) nächste Datei über die Befehlszeile.
:p * Untersuchen Sie die (N-te) vorherige Datei über die Befehlszeile.
:x * Untersuchen Sie die erste (oder N-te) Datei über die Befehlszeile.
Das -i Die Option wird für Suchen verwendet, bei denen die Groß-/Kleinschreibung nicht beachtet wird. Beachten Sie, dass bei UNIX-Systemen die Groß-/Kleinschreibung sehr beachtet wird. Wenn Sie die Ausgabe dieses Befehls zur späteren Bezugnahme speichern möchten, leiten Sie die Ausgabe in eine Datei um:
mike:~> less --help | grep -i examine > examine-files-in-less
mike:~> Katze untersucht Dateien in weniger
:e [Datei] Untersuchen Sie eine neue Datei.
:n * Untersuchen Sie die (N-te) nächste Datei über die Befehlszeile.
:p * Untersuchen Sie die (N-te) vorherige Datei über die Befehlszeile.
:x * Untersuchen Sie die erste (oder N-te) Datei über die Befehlszeile.
mike:~> less --help | grep -i examine > examine-files-in-less
mike:~> Katze untersucht Dateien in weniger
:e [Datei] Untersuchen Sie eine neue Datei.
:n * Untersuchen Sie die (N-te) nächste Datei über die Befehlszeile.
:p * Untersuchen Sie die (N-te) vorherige Datei über die Befehlszeile.
:x * Untersuchen Sie die erste (oder N-te) Datei über die Befehlszeile.
Die Ausgabe eines Befehls kann praktisch beliebig oft an einen anderen Befehl weitergeleitet werden, solange diese Befehle normalerweise Eingaben von der Standardeingabe lesen und Ausgaben in die Standardausgabe schreiben würden.
Manchmal ist dies nicht der Fall, aber dann gibt es möglicherweise spezielle Optionen, die diese Befehle anweisen, sich gemäß den Standarddefinitionen zu verhalten; Lesen Sie daher die Dokumentation (Man- und Info-Seiten) der von Ihnen verwendeten Befehle, falls Fehler auftreten sollten.
Stellen Sie auch hier sicher, dass Sie keine Namen vorhandener Dateien verwenden, die Sie noch benötigen. Durch die Umleitung der Ausgabe auf vorhandene Dateien wird der Inhalt dieser Dateien ersetzt.
5.1.2.4. Der >>-Operator
Anstatt Dateidaten zu überschreiben, können Sie Text auch mit zwei aufeinanderfolgenden Größer-als-Zeichen an eine vorhandene Datei anhängen:
Beispiel:
mike:~> Wunschliste für Katzen
mehr Geld, weniger Arbeit
mike:~> Datum >> Wunschliste
mike:~> Wunschliste für Katzen
mehr Geld, weniger Arbeit
mike:~> Datum >> Wunschliste
mike:~> Wunschliste für Katzen
mehr Geld, weniger Arbeit
Do, 28. Februar 20:23:07 MEZ 2002
mike:~> Wunschliste für Katzen