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/azubiIm freien Terminal kannst du dich umsehen. tree -L 1 / zeigt dir die oberste Ebene des Baums, also alles, was direkt unter der Wurzel liegt.
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:
| Ordner | Was dort liegt |
|---|---|
| / | Die Wurzel. Hier beginnt jeder absolute Pfad. |
| /home | Die Home-Ordner der Benutzer, etwa /home/azubi. Hier liegen eigene Dateien. |
| /root | Der Home-Ordner des Administrators root. Normale Benutzer dürfen nicht hinein. |
| /etc | Einstellungen des Systems und der Dienste, fast alles als Textdateien. |
| /var | Daten, 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. |
| /tmp | Ablage für temporäre Dateien. Jeder darf hier schreiben, beim Neustart wird oft aufgeräumt. |
| /usr/bin | Die meisten Programme, zum Beispiel ls und cp. Unter Ubuntu führt /bin an dieselbe Stelle. |
| /dev | Geräte wie Festplatten, dargestellt als Dateien. Dazu /dev/null, ein Abfluss, der alles schluckt, was man hineinschreibt. |
| /opt | Zusä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:
| Eingabe | Wohin es geht |
|---|---|
| cd projekte | In den Unterordner projekte des aktuellen Ordners. |
| cd .. | Eine Ebene nach oben. Die zwei Punkte stehen immer für den übergeordneten Ordner. |
| cd | Ohne 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:~$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.
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 ..
cdEin 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 Beispielprojekte/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:
| Eingabe | Du landest in |
|---|---|
| cd webshop | / |
| cd ../downloads | / |
| cd ../.. | / |
| cd /var/log | / |
| cd ~/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.
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.
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/htmlEin 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:
| Eingabe | Was du siehst |
|---|---|
| ls -lh | Die 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 -R | Alle Unterordner nacheinander (rekursiv), jeweils mit dem Pfad als Überschrift. |
| tree | Ordner und Dateien als Baum, mit allen Unterordnern. |
| tree -L 2 | Nur die ersten zwei Ebenen. Hilfreich bei großen Ordnern. |
| tree -d | Nur 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.
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.
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 projekteEin 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.
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.
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/netzwerkEin 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.
Welcher dieser Pfade ist absolut?
Du bist in /home/azubi/projekte und tippst cd ../.. Wo landest du?
Was macht cd ohne Ziel unter Linux?
Ein Dienst startet nicht und du suchst seine Protokolldateien. Wo schaust du zuerst nach?