Anzeigen, Umleiten und Ketten von Dateien mit cat

Red Hat Linux besitzt ein Dienstprogramm, das kurze Listen ordnet, diese Listen gruppiert und Ihnen gleichzeitig einen kleinen Einblick in die Fähigkeiten Ihres Systems bietet.

Die Abkürzung des Dienstprogramms cat steht für "anhängen", was bedeutet, dass das Programm die Dateien aneinanderreiht.

Mithilfe des Befehls cat wird auch der Inhalt einer Datei auf dem Bildschirm angezeigt (geben Sie hierzu zum Beispiel cat filename.txt ein). Dieser Befehl kann wertvoll sein, wenn die Datei relativ kurz ist. Ist sie eher lang, wird der Inhalt dagegen sehr schnell auf dem Bildschirm ablaufen, da der Befehl die gesamte Datei anzeigt.

cat führt Ihnen auch kurz zwei wichtige Begriffe vor: Standardeingabe und Standardausgabe.

Die Standardeingabe und die Standardausgabe leiten die Eingabe und die Ausgabe (oft auch als E/A bezeichnet). Wenn ein Programm von der Standardeingabe liest, dann handelt es sich standardmäßig um die Tastatur. Wenn ein Programm in der Standardausgabe schreibt, dann ist hiermit standardmäßig der Bildschirm gemeint.

Aktivieren Sie cat, um mehr hierüber zu erfahren. Geben Sie dazu folgendes am Shell Prompt ein:

cat

Der Cursor setzt sich auf eine leere Zeile. Geben Sie hier Folgendes ein:

stop by sneaker store

Drücken Sie die Eingabetaste. Auf dem Bildschirm erscheint etwa Folgendes:

[newuser@localhost newuser]$ cat
stop by sneaker store
stop by sneaker store

Abbildung 10-7 cat verdeutlicht die Standardeingabe und die Standardausgabe

Um cat zu beenden, setzen Sie den Cursor auf eine leere Zeile, indem Sie die Eingabetaste drücken. Drücken Sie anschließend die Tastenkombination Strg-D.

cat hat damit die Definition der Standardeingabe und der Standardausgabe gezeigt: Sie haben Wörter eingegeben (Standardeingabe), die dann auf dem Bildschirm erschienen sind (Standardausgabe).

Verwenden der Umleitung

Umleitung bedeutet, das zu ändern, was die Shell als Standardeingabe und Standardausgabe betrachtet.

Oben wurden die Konzepte von Standardeingabe und Standardausgabe erläutert. Verwenden Sie nun cat um zu sehen, wie die Standardausgabe umgeleitet werden kann.

Um dies zu tun, verwenden Sie das Symbol >. Wenn Sie > nach cat (oder nach jedem anderen Dienstprogramm, oder jeder Anwendung, die in der Standardausgabe schreibt) eingeben, wird die Standardausgabe in die nach diesem Symbol angegebene Datei umgeleitet.

Geben Sie am Shell Prompt Folgendes ein:

[newuser@localhost newuser]$ cat > sneakers.txt
buy some sneakers
then go to the coffee shop
then buy some coffee

Abbildung 10-8 Umleiten der Standardausgabe in eine Datei

Drücken Sie die Eingabetaste, um den Cursor auf eine leere Zeile zu setzen. Drücken Sie anschließend die Tastenkombination Strg-D, um cat zu beenden.

Sehen Sie den Unterschied (siehe Abbildung 10-8)? Es wurde nichts angezeigt, da die Standardausgabe von cat umgeleitet wurde, und zwar in eine neue, von Ihnen erstellte Datei mit dem Namen sneakers.txt.

Die Datei befindet sich im Verzeichnis, wo Sie sich befanden, als Sie cat (geben Sie ls ein, wenn Sie die Stelle anzeigen möchten) starteten.

Sie können den Befehl cat verwenden, um die Datei zu lesen. Geben Sie hierzu Folgendes am Prompt ein:

cat sneakers.txt

AchtungÜberschreiben Sie nicht versehentlich Dateien
 

Seien Sie vorsichtig, wenn Sie die Ausgabe zu einer Datei umleiten, denn es besteht die Gefahr, dass Sie eine bereits bestehende Datei überschreiben! Versichern Sie sich, dass der Name der Datei, die Sie gerade erstellen, nicht identisch ist mit dem Namen einer anderen Datei (es sei denn, Sie möchten die bereits bestehende Datei ersetzen).

Verwenden Sie nun die Umleitung der Standardausgabe für eine andere Datei mit dem Namen home.txt. Geben Sie Folgendes ein:

[newuser@localhost newuser]$ cat > home.txt
bring the coffee home
take off shoes
put on sneakers
make some coffee
relax!

Setzen Sie den Cursor auf eine leere Zeile und verwenden Sie die Tastenkombination Strg-D, um cat zu beenden.

Zeigen Sie die Datei erneut an, indem Sie Folgendes eingeben:

cat home.txt

Verwenden Sie cat erneut, um home.txt mit sneakers.txt zu verbinden und die Ausgabe beider Dateien in eine neue Datei mit dem Namen saturday umzuleiten (ein Beispiel hierfür finden Sie unter Abbildung 10-9). Geben Sie Folgendes ein:

[newuser@localhost newuser]$ cat sneakers.txt home.txt > saturday

Abbildung 10-9 Verknüpfen von Dateien und Umleiten der Ausgabe

Überprüfen Sie nun das, was Sie gerade getan haben. Geben Sie Folgendes ein:

[newuser@localhost newuser]$ cat saturday

Etwa Folgendes sollte nun angezeigt werden:

[newuser @localhost newuser]$ cat saturday
buy some sneakers
then go to the coffeeshop
then buy some coffee
bring the coffee home
take off the shoes
put on sneakers
make some coffee
relax!
[newuser @localhost newuser]$

Wie Sie sehen, hat cat die Datei home.txt am Ende von sneakers.txt hinzugefügt.

TipVerbinden von Dateien mit cat
 

Die Erstellung und Kombination von kurzen Dateien mithilfe von cat kann eine ideale Alternative zu Texteditoren wie Pico darstellen.

Anhängen der Standardausgabe

Sie können die Umleitung der Ausgabe verwenden, um neue Informationen ans Ende einer bereits bestehenden Datei hinzuzufügen. Ähnlich wie im Falle des Symbols > weisen Sie auf diese Weise Ihre Shell an, die Informationen nicht an die Standardausgabe zu senden.

Wenn Sie >> verwenden, beachten Sie, dass Sie Informationen hinzufügen und nicht ersetzen.

Zur Erläuterung im Folgenden ein konkretes Beispiel: nehmen Sie zwei bereits existierende Dateien — sneakers.txt und home.txt — und verbinden Sie sie mithilfe des Symbols zum Anhängen der Ausgabe. Fügen Sie nun die Informationen in home.txt zu den Informationen in sneakers.txt. Geben Sie hierzu Folgendes ein:

cat home.txt >> sneakers.txt

Zeigen Sie die Datei an, indem Sie Folgendes eingeben:

cat sneakers.txt

Es erscheint die Datei mit dem Inhalt von home.txt am Ende.

Der von Ihnen eingegebene Befehl hat das System angewiesen, "die Ausgabe von home.txt an die Datei sneakers.txt anzuhängen".

Durch das Anhängen ersparen Sie sich einen oder zwei Schritte (sowie ein wenig Speicherplatz auf der Festplatte), indem bestehende Dateien verwendet statt neue erstellt werden.

Vergleichen Sie nun die Ergebnisse der Dateien sneakers.txt und saturday. Sie werden sehen, sie sind identisch. Geben Sie hierzu Folgendes ein:

cat sneakers.txt; cat saturday

Der Inhalt beider Dateien wird angezeigt — zuerst sneakers.txt und anschließend saturday (wie unter Abbildung 10-10 erläutert).

AchtungVerwenden Sie nicht versehentlich die Funktion zum Ersetzen (statt zum Anhängen)
 

Beachten Sie, dass Sie zwei Größerzeichen (>>) einfügen müssen, wenn Sie Ausgaben aneinander anhängen. Andernfalls ersetzen Sie die Datei, in die Sie Informationen hinzufügen wollten!

Abbildung 10-10 Verknüpfen von Befehlen und Vergleichen von Dateien

Umleiten der Standardeingabe

Sie können nicht nur die Standardausgabe umleiten, sondern auch die Standardeingabe.

Immer wenn Sie das Symbol < für das Umleiten der Standardeingabe verwenden, teilen Sie der Shell mit, dass der Inhalt einer Datei als Eingabe für einen Befehl verwendet werden soll.

Um dies zu verdeutlichen, soll nun eine bereits erstellte Datei verwendet werden. Hierzu müssen Sie lediglich folgenden Befehl eingeben:

cat < sneakers.txt

Da Sie das Kleinerzeichen (<) für die Trennung des Befehls cat von der Datei verwendet haben, wurde die Ausgabe von sneakers.txt von cat eingelesen.