Lektion 2 von 6

Im Dateisystem bewegen

Wie das Dateisystem unter Linux aufgebaut ist, welche Ordner du kennen solltest und wie du mit pwd, cd, ls und tree sicher von Ordner zu Ordner kommst. Dazu der Unterschied zwischen absoluten und relativen Pfaden.

  • Etwa 30 Minuten
  • 3 Übungen und 1 Knobelaufgabe im Terminal, 4 Quizfragen
  • Terminal im Browser

Ein Baum mit einer Wurzel

Unter Windows hat jedes Laufwerk einen eigenen Buchstaben: C:, D: und so weiter. Linux kennt keine Laufwerksbuchstaben. Es gibt genau einen großen Baum aus Ordnern, und der beginnt ganz oben bei /, der Wurzel (englisch root directory). Alles hängt darunter, auch eine zweite Festplatte oder ein USB-Stick: Sie werden in einen Ordner eingehängt, zum Beispiel unter /media oder /mnt.

Der Weg durch diesen Baum heißt Pfad. Die Ordnernamen werden mit / getrennt: /home/azubi/notizen.txt ist die Datei notizen.txt im Ordner azubi, der im Ordner home liegt, der direkt unter der Wurzel liegt.

Wo du gerade bist, verrät dir pwd (print working directory, zeige den Arbeitsordner). Diesen Ordner nennt man den aktuellen Ordner. Auch der Prompt zeigt ihn an, allerdings verkürzt: Statt /home/azubi steht dort nur ~.

azubi@lernarena:~$ pwd
/home/azubi

Im freien Terminal kannst du dich umsehen. tree -L 1 / zeigt dir die oberste Ebene des Baums, also alles, was direkt unter der Wurzel liegt.

azubi@lernarena: ~
Willkommen im Übungs-Terminal von Lernarena. Probier: pwd, dann tree -L 1 /, dann cd /var/log und ls

Enter führt aus, Tab ergänzt Namen, Pfeil hoch holt frühere Befehle, Bild hoch blättert zurück. Esc und dann Tab verlässt das Terminal.

Die wichtigsten Ordner

Welcher Ordner wofür da ist, ist auf fast allen Linux-Systemen gleich geregelt (im Filesystem Hierarchy Standard). Wer diese Ordner kennt, findet sich auf jedem fremden Server zurecht:

OrdnerWas dort liegt
/Die Wurzel. Hier beginnt jeder absolute Pfad.
/homeDie Home-Ordner der Benutzer, etwa /home/azubi. Hier liegen eigene Dateien.
/rootDer Home-Ordner des Administrators root. Normale Benutzer dürfen nicht hinein.
/etcEinstellungen des Systems und der Dienste, fast alles als Textdateien.
/varDaten, die sich ständig ändern. Besonders wichtig: /var/log mit den Protokolldateien (log, englisch für Protokoll). Unter Ubuntu liegen in /var/www die Webseiten, sobald ein Webserver installiert ist.
/tmpAblage für temporäre Dateien. Jeder darf hier schreiben, beim Neustart wird oft aufgeräumt.
/usr/binDie meisten Programme, zum Beispiel ls und cp. Unter Ubuntu führt /bin an dieselbe Stelle.
/devGeräte wie Festplatten, dargestellt als Dateien. Dazu /dev/null, ein Abfluss, der alles schluckt, was man hineinschreibt.
/optZusätzliche Software, die nicht über die Paketverwaltung kommt.

Auf einem echten Server gibt es noch ein paar Ordner mehr, etwa /boot für den Systemstart oder /proc mit Angaben zu laufenden Programmen. Die Tabelle enthält die, mit denen du im Alltag arbeitest.

Mit cd den Ordner wechseln

cd steht für change directory, wechsle den Ordner. Hinter cd schreibst du, wohin du willst:

EingabeWohin es geht
cd projekteIn den Unterordner projekte des aktuellen Ordners.
cd ..Eine Ebene nach oben. Die zwei Punkte stehen immer für den übergeordneten Ordner.
cdOhne Ziel: zurück in deinen Home-Ordner, egal wo du gerade bist. cd ~ macht dasselbe.
cd -Zurück in den Ordner, in dem du vorher warst. Den Ordner zeigt cd dabei an. Praktisch, um zwischen zwei Ordnern hin und her zu springen.

Wenn alles klappt, antwortet cd meist gar nicht. Wie unter Linux üblich bedeutet keine Ausgabe: erledigt. Den Wechsel siehst du am Prompt, der jetzt den neuen Ordner zeigt:

azubi@lernarena:~$ cd projekte
azubi@lernarena:~/projekte$ pwd
/home/azubi/projekte
azubi@lernarena:~/projekte$ cd ..
azubi@lernarena:~$
Übung 2.1

Prüfe mit pwd, wo du bist. Wechsle mit cd in den Ordner projekte und von dort in webshop. Geh mit cd .. eine Ebene nach oben und kehre zum Schluss mit cd ohne Ziel in deinen Home-Ordner zurück. Achte dabei auf den Prompt.

azubi@lernarena: ~

Enter führt aus, Tab ergänzt Namen, Pfeil hoch holt frühere Befehle, Bild hoch blättert zurück. Esc und dann Tab verlässt das Terminal.

Ziele

  • Zeige mit pwd an, in welchem Ordner du gerade bist (offen)
  • Wechsle in den Ordner projekte und von dort in webshop (offen)
  • Geh von webshop aus eine Ebene nach oben (offen)
  • Kehre in deinen Home-Ordner zurück (offen)

Musterlösung anzeigen
pwd
cd projekte
cd webshop
cd ..
cd

Ein möglicher Weg. Andere Wege sind genauso richtig, geprüft wird nur das Ergebnis. Statt zweimal cd geht auch cd projekte/webshop auf einmal. Der Prompt zeigt nacheinander ~, ~/projekte, ~/projekte/webshop, wieder ~/projekte und zum Schluss ~.

Absolute und relative Pfade

Einen Ordner kannst du auf zwei Arten angeben:

  • Absoluter Pfad: Er beginnt mit / und beschreibt den ganzen Weg von der Wurzel aus, zum Beispiel /var/log. Er führt immer an dieselbe Stelle, egal wo du gerade bist. Wie eine vollständige Postanschrift.
  • Relativer Pfad: Er beginnt nicht mit / und gilt ab dem aktuellen Ordner, zum Beispiel projekte/webshop. Wie die Beschreibung „zweite Tür links“: Sie stimmt nur, wenn du am richtigen Ort startest.

In relativen Pfaden helfen zwei Kurzzeichen: .. ist der übergeordnete Ordner, . der aktuelle Ordner selbst. Beide hast du in Lektion 1 schon in der Ausgabe von ls -a gesehen. Die Tilde ~ ersetzt die Shell durch deinen Home-Ordner, ~/downloads ist also eigentlich der absolute Pfad /home/azubi/downloads.

So wirken verschiedene Ziele hinter cd, wenn du gerade in /home/azubi/projekte bist. Die ersten drei Pfade sind relativ, die letzten zwei absolut:

EingabeDu landest in
cd webshop/home/azubi/projekte/webshop
cd ../downloads/home/azubi/downloads
cd ../../home
cd /var/log/var/log
cd ~/downloads/home/azubi/downloads

Bei ../downloads geht es erst eine Ebene nach oben in den Home-Ordner und von dort hinein in downloads. Relative Pfade sind kürzer, absolute eindeutig. In Anleitungen und Skripten stehen deshalb meist absolute Pfade, beim Tippen nimmt man oft den kürzeren Weg.

Übung 2.2

Wechsle mit einem absoluten Pfad nach /var/log und lass dir mit ls anzeigen, was dort liegt. Wechsle danach mit einem relativen Pfad nach /var/www/html: Von /var/log aus führt .. zuerst nach /var, von dort geht es weiter nach www/html.

azubi@lernarena: ~

Enter führt aus, Tab ergänzt Namen, Pfeil hoch holt frühere Befehle, Bild hoch blättert zurück. Esc und dann Tab verlässt das Terminal.

Ziele

  • Wechsle mit einem absoluten Pfad nach /var/log (offen)
  • Lass dir anzeigen, was in /var/log liegt (offen)
  • Wechsle von dort mit einem relativen Pfad nach /var/www/html (offen)

Musterlösung anzeigen
cd /var/log
ls
cd ../www/html

Ein möglicher Weg. Geprüft wird hier auch, dass du einmal einen absoluten und einmal einen relativen Pfad benutzt. Mit cd /var/www/html wärst du zwar auch angekommen, aber das ist ein absoluter Pfad. In zwei Schritten geht es ebenfalls: cd .. und dann cd www/html.

Mehr sehen mit ls und tree

Zwei weitere Optionen von ls und der Befehl tree verschaffen dir schnell einen Überblick:

EingabeWas du siehst
ls -lhDie lange Form mit lesbaren Größen (human-readable): 69K statt einer langen Zahl in Byte. K steht für Kilobyte, M für Megabyte, G für Gigabyte, eine Zahl ohne Buchstaben sind Byte.
ls -RAlle Unterordner nacheinander (rekursiv), jeweils mit dem Pfad als Überschrift.
treeOrdner und Dateien als Baum, mit allen Unterordnern.
tree -L 2Nur die ersten zwei Ebenen. Hilfreich bei großen Ordnern.
tree -dNur die Ordner, ohne Dateien.

Wie bei cd kannst du hinter ls und tree einen Ordner angeben, zum Beispiel ls -lh /var/log oder tree projekte. Ohne Ordner nehmen beide den aktuellen.

Übung 2.3

Zeige den Ordner /var/log in der langen Form mit lesbaren Größen an. Welche Datei ist die größte? Lass dir danach deinen Ordner projekte mit allen Unterordnern als Baum anzeigen.

azubi@lernarena: ~

Enter führt aus, Tab ergänzt Namen, Pfeil hoch holt frühere Befehle, Bild hoch blättert zurück. Esc und dann Tab verlässt das Terminal.

Ziele

  • Zeige /var/log in der langen Form mit lesbaren Größen (offen)
  • Zeige den Ordner projekte mit allen Unterordnern (offen)

Musterlösung anzeigen
ls -lh /var/log
tree projekte

Ein möglicher Weg. Andere Wege sind genauso richtig, geprüft wird nur das Ergebnis. Die größte Datei ist syslog, das allgemeine Protokoll des Systems. Statt tree projekte geht auch ls -R projekte.

Zum Knobeln 2.4

Diese Aufgabe ist freiwillig, hier steht nicht genau, wie es geht. Irgendwo in deinem Ordner projekte liegt die Datei serverliste.txt. Finde heraus, in welchem Ordner sie liegt, ohne jeden Ordner einzeln zu öffnen. Wechsle dann mit einem einzigen cd direkt dorthin.

azubi@lernarena: ~

Enter führt aus, Tab ergänzt Namen, Pfeil hoch holt frühere Befehle, Bild hoch blättert zurück. Esc und dann Tab verlässt das Terminal.

Ziele

  • Finde heraus, in welchem Ordner serverliste.txt liegt (offen)
  • Wechsle mit einem einzigen cd direkt in diesen Ordner (offen)

Musterlösung anzeigen
tree projekte
cd projekte/intranet/doku/netzwerk

Ein möglicher Weg. Andere Wege sind genauso richtig, geprüft wird nur das Ergebnis. Im Baum liest du den Weg von oben nach unten ab: projekte, intranet, doku, netzwerk. Mit cd ~/projekte/intranet/doku/netzwerk klappt es von jedem Ordner aus.

Unter Windows

Jetzt selbst testen

Vier Fragen zum Abschluss. Du hast so viele Versuche, wie du willst.

1 / 4

Welcher dieser Pfade ist absolut?

2 / 4

Du bist in /home/azubi/projekte und tippst cd ../.. Wo landest du?

3 / 4

Was macht cd ohne Ziel unter Linux?

4 / 4

Ein Dienst startet nicht und du suchst seine Protokolldateien. Wo schaust du zuerst nach?