Zu Befehl: head, tail, cat

Von Kopf bis Fuß

Kleine Tools wie head, tail und cat zeigen den Inhalt von Textdateien an. Sie erfüllen jedoch alle eine spezielle Funktion, die andere Unix-Kommandos nicht bieten.

Zu Befehl

Auch wenn sich viele Dinge bequem über grafische Oberflächen wie KDE oder GNOME regeln lassen – wer sein Linux-System richtig ausreizen möchte, kommt um die Kommandozeile nicht herum. Abgesehen davon gibt es auch sonst viele Situationen, in denen es gut ist, sich im Befehlszeilendschungel ein wenig auszukennen.

Zum Anzeigen von Textdateien stehen Ihnen unter Linux viele Programme zur Verfügung. Natürlich können Sie jederzeit einen Editor wie Vi oder Emacs oder einen Pager wie less oder more starten, um solche Files zu lesen. Es geht aber auch mit einfachen Tools wie cat, head und tail.

Multifunktional – cat

Das Programm cat verkettet (engl.: "to concatenate") nicht nur mehrere Dateien zu einer, es eignet sich auch dazu, einzelne Files auf der Standardausgabe anzuzeigen. Der einfache Aufruf cat datei.txt bringt den Inhalt der Datei auf den Bildschirm.

Manchmal ist es praktisch, eine Textdatei mit Zeilennummern zu versehen, um beispielsweise bei der Diskussion von Programmlistings auf eine bestimmte Zeile Bezug zu nehmen. Dafür bietet cat die Option -n und gibt damit zu Beginn jeder Zeile die Zeilennummer aus.

Vorsicht allerdings bei binären Formaten: gibt man aus Versehen eine Binärdatei mit cat aus, sind oft nur noch Sonderzeichen zu sehen und auch die Eingabe wird unleserlich (Abbildung 1). Abhilfe schafft hier das Programm reset: Tippen Sie (blind) reset am Prompt und drücken Sie [Return], um das Terminal zu reparieren. Falls auch das nicht hilft, probieren Sie es mit echo [Strg-v][Esc][c][Return].

Abbildung 1: "Binärmüll" auf der Kommandozeile – nicht immer hilft reset

Häufig wird cat dazu verwendet, Dateien durch eine Pipe an ein anderes Programm zu schicken. So lässt sich eine Liste mit cat ausgeben und direkt an das Kommando sort [1] weiterleiten:

$ cat liste.txt | sort
Arnie           42
Egbert          120
Hubert          30
Petronella      100

Die Ausgabe von cat lässt sich mit den für Unix typischen Mitteln umlenken: mit dem Operator > schreiben Sie den Output in die neue datei2:

cat datei1 > datei2

Das funktioniert auch mit mehreren Dateien. Dazu führen Sie die Dateinamen einfach nacheinander auf:

cat datei1 datei2 > datei3

Existiert datei3 noch nicht, wird sie angelegt. Ist sie allerdings schon vorhanden, überschreibt cat sie einfach. Mit einem anderen Operator bringen Sie cat dazu, an vorhandene Dateien anzuhängen:

cat datei1 datei2 >> datei3

Leiten Sie die Ausgabe wie in diesen Beispielen in eine Datei um, verarbeitet cat auch problemlos Binärdateien. So ist es möglich, große Dateien mit split in kleinere Pakete zu zerlegen und sie danach mit cat wieder zusammenzufügen. Anwendungen hierfür sind der Transport von Daten mit Disketten oder das Verschicken über E-Mail.

Einige Newsgruppen wie comp.unix.shell vergeben seit Jahren regelmäßig den "Useless Use of Cat Award"[2]. Der Preis geht an denjenigen, der den unsinnigsten Gebrauch des Kommandos cat vorschlägt – Begründung: "Mit cat sollte man Dateien verketten. Es ist reine Zeitverschwendung, ein einziges File mit nichts zu verknüpfen, und kostet einen Prozess". Unter diesem Gesichtspunkt mögen manche LeserInnen das eine oder andere Beispiel auch als "useless" ansehen. Jedenfalls entspricht auch eine redundante Anwendung von cat dem Unix-Prinzip, kleine Programme mit Hilfe von Pipes zu verketten. Bei moderner Hardware dürften die "Kosten" für einen zusätzlichen Prozess leicht zu verschmerzen sein.

Aller Anfang ist head

Der Name ist Programm: Mit head (engl.: "Kopf") geben Sie die ersten Zeilen einer Datei am Bildschirm aus. Standardmäßig schreibt der Aufruf head datei.txt die ersten zehn Zeilen auf den Bildschirm. Die Option -n nummer verändert diese Vorgabe. Die Konfigurationsdateien im Verzeichnis /etc enthalten in den ersten Zeilen häufig den Namen und Verwendungszweck der Datei. Um von sämtlichen dort liegenden Files die ersten drei Zeilen auszugeben, verwenden Sie den Aufruf head -n 3 *.conf.

Praktisch: Lassen Sie head auf mehr als eine Datei los, fügt das Tool eine optische Trennung ein (Listing 1). Wer auf dieses Feature verzichten möchte, verwendet den Parameter -q (für --quiet).

Listing 1

head

mit mehreren Files gibt Trenner aus

huhn@asteroid:/etc$ head -n 3 *.conf
==> aatv.conf <==
# aatv configuration file.
# Video mode. Choose between PAL, SECAM and NTSC.
==> abcde.conf <==
# System defaults for abcde.
# Nothing in this file is uncommented by default.
#
==> adduser.conf <==
…

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Mit Cat, More, Less, Head und Tail Textdateien betrachten
    Mit praktischen Tools wie Cat, Less oder Head durchforsten Sie nicht nur auf komfortablem Weg den Inhalt von Textdateien, sondern können auch Inhalte kombinieren, Dateiänderungen mitverfolgen oder Logfiles auswerten.
  • Zu Befehl
    Auch wenn sich viele Dinge bequem über grafische Oberflächen wie KDE oder GNOME regeln lassen – wer sein Linux-System richtig ausreizen möchte, kommt um die Kommandozeile nicht herum. Abgesehen davon gibt es auch sonst viele Situationen, wo es gut ist, sich im Befehlszeilendschungel ein wenig auszukennen.
  • Datenbaustelle
    Die Linux-Kommandozeile zeigt ihre Stärken gerade beim Kombinieren vieler kleiner Tools – hier gilt der klassische Satz: Das Ganze ist mehr als die Summe seiner Teile. Umleitungen und Pipes sind oft mit am Werk, wenn Kommandos zusammenwirken.
  • Sauber verzahnt
    Verbinden, trennen, umformatieren: Unter Linux gibt es zahlreiche kleine Helfer, die die Arbeit mit Textdateien perfekt beherrschen – und die dazu noch perfekt zusammenarbeiten.
  • Zu Befehl: Kanäle, Pipes und Tee
    Mit wenigen Handgriffen leiten Sie auf der Kommandozeile Ein- und Ausgaben von Befehlen um und kombinieren Kommandos. Wir stellen die benötigten Bash-Operatoren vor und zeigen, wie Sie mit dem Programm tee noch einen Zwischenschritt einlegen.
Kommentare

Infos zur Publikation

LU 09/2016: Ciao, Windows!

Digitale Ausgabe: Preis € 5,99
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Aktuelle Fragen

Scannen nicht möglich
Werner Hahn, 19.08.2016 22:33, 3 Antworten
Laptop DELL Latitude E6510 mit Ubuntu 16,04, Canon Pixma MG5450. Das Drucken funktioniert, Scann...
Wie kann man das berichtigen
Udo Muelle, 17.07.2016 20:39, 1 Antworten
Fehlschlag beim Holen von http://extra.linuxmint.com/dists/rosa/main/binary-i386/Packages Hash-S...
Installation Genimotion
Horst Müller, 15.07.2016 17:00, 1 Antworten
Hallo, ich kann Genimotion nicht installieren. Folgende Fehlermeldung habe ich beim Aufruf erh...
Probleme beim Hochfahren der Terastaion 5400 mit Unix-Distrib
Sheldon Cooper, 10.07.2016 09:32, 0 Antworten
Hallo ihr lieben, habe seit zwei Tagen das Problem, das das NAS (Raid5) nicht mehr sauber hoch...
Mit Firewire Videos improtieren?
Werner Hahn, 09.06.2016 11:06, 5 Antworten
Ich besitze den Camcorder Panasonic NV-GS330, bei dem die Videos in guter Qualität nur über den 4...