Zeige den Inhalt einer Datei mit cat, head und tail an und fange dann eine Ausgabe in einer Datei ein.
Diese Lektion in Kodokon öffnenDu musst nicht jedes Mal einen Editor öffnen, nur um einen Blick in eine Datei zu werfen. Der Befehl cat gibt ihren Inhalt direkt im Terminal aus. Sein Name kommt von concatenate, "aneinanderhängen", denn er kann auch mehrere Dateien nacheinander anzeigen. Für kleine Dateien ist er das ideale Werkzeug: höchstens ein paar Dutzend Zeilen.
yoann@laptop:~/my-project$ cat shopping.txt
Bread
Cheese
Tomatoes
yoann@laptop:~/my-project$ cat shopping.txt notes.txt
Bread
Cheese
Tomatoes
Do not forget the Saturday marketBei einer Datei mit zehntausend Zeilen lässt cat den Bildschirm zehn Sekunden lang durchrasen und du bekommst nur das Ende zu sehen. Es gibt zwei genauere Befehle: head zeigt den Anfang einer Datei, tail zeigt das Ende. Beide zeigen standardmäßig 10 Zeilen, und mit der Option -n wählst du, wie viele es sein sollen. tail hat mit der Option -f (follow) eine Superkraft: Er bleibt offen und gibt neue Zeilen aus, sobald sie eintreffen. So verfolgt man das Log eines Servers live.
head server.log
head -n 5 server.log
tail -n 20 server.log
tail -f server.logStandardmäßig schreibt ein Befehl sein Ergebnis auf den Bildschirm. Du kannst dieses Ergebnis aber in eine Datei umleiten, so wie du Wasser aus einem Schlauch in einen Eimer umleiten würdest. Das ist die Umleitung, und sie wird mit einer spitzen Klammer geschrieben. Eine einfache spitze Klammer > schickt die Ausgabe in eine Datei und überschreibt dabei alles, was darin stand. Eine doppelte spitze Klammer >> hängt ans Ende an, ohne etwas zu löschen. Dieser Unterschied von einem einzigen Zeichen ändert alles. Um zu prüfen, was du gerade erzeugt hast, ohne alles auszugeben, zählt der Befehl wc (word count) mit der Option -l (lines) die Zeilen einer Datei.
yoann@laptop:~/my-project$ echo "My first line" > notes.txt
yoann@laptop:~/my-project$ echo "My second line" >> notes.txt
yoann@laptop:~/my-project$ cat notes.txt
My first line
My second line
yoann@laptop:~/my-project$ ls -l > inventory.txt
yoann@laptop:~/my-project$ wc -l inventory.txt
7 inventory.txtcat da?> und >>?> hängt ans Ende an, >> überschreibt die Datei> überschreibt die Datei, >> hängt ans Ende anserver.log an?