Die nötigen Grundlagen der Kommandozeile
Zwischen Verzeichnissen wechseln
Bisher ist die Shell an einem Ort geblieben. cd wechselt ihren Standort.
cd data
pwd
/workspace/data
Die Shell befindet sich jetzt in data. Führe ls aus, und du siehst nur books.txt. Der Rest des Projekts ist nicht verschwunden; du schaust lediglich in ein anderes Verzeichnis.
Wieder eine Ebene nach oben
Für „das Verzeichnis über diesem“ gibt es einen Namen: zwei Punkte.
cd ..
pwd
/workspace
.. ist kein besonderer Befehl, sondern ein Name, den du in jedem Pfad verwenden kannst, genauso wie den tatsächlichen Namen eines Verzeichnisses. cd .. bedeutet, eine Ebene nach oben zu gehen. ls .. listet das übergeordnete Verzeichnis auf. cd ../.. geht zwei Ebenen nach oben.
Relativ und absolut
Alle Pfade, die du bisher geschrieben hast, waren relativ: Sie beginnen dort, wo du dich gerade befindest. data/books.txt bedeutet: „Gehe von hier nach data und nimm dort books.txt.“ Wenn du an einen anderen Ort wechselst, verweist derselbe Text auf etwas anderes oder auf gar nichts.
Ein absoluter Pfad beginnt ganz oben im Dateisystem und ist deshalb von überall aus gleich. Auf diesem Computer liegt der oberste Punkt bei /. Der absolute Pfad zur Leseliste lautet also:
cat /workspace/data/books.txt
Du kannst das von überall aus eingeben und erhältst dieselbe Datei. Das entscheidende Merkmal ist das / am Anfang.
Dein eigener Computer funktioniert genauso wie das Terminal hier. Absolute Pfade beginnen mit /, und deine Dateien liegen irgendwo unter /Users/ und deinem Benutzernamen.
Führe auf deinem eigenen Computer cd / und anschließend ls aus, um die oberste Ebene des Dateisystems zu sehen, von der die Pfade dieses Kurses ausgehen.
Windows schreibt absolute Pfade anders: Sie beginnen mit einem Laufwerksbuchstaben, etwa C:\Users\you\projects, und verwenden Backslashes zwischen den Schritten.
PowerShell akzeptiert auch normale Schrägstriche. Deshalb funktioniert dort ebenfalls cd data/notes. Die Idee ist dieselbe: ein Pfad vom obersten Punkt des Laufwerks statt von deinem aktuellen Standort aus.
Dein eigener Computer funktioniert genauso wie das Terminal hier. Absolute Pfade beginnen mit /, und deine Dateien liegen irgendwo unter /home/ und deinem Benutzernamen.
Führe auf deinem eigenen Computer cd / und anschließend ls aus, um die oberste Ebene des Dateisystems zu sehen, von der die Pfade dieses Kurses ausgehen.
Beide Arten sind nützlich, und keine ist richtiger. Relative Pfade sind kurz und bleiben gültig, wenn die zusammengehörigen Dateien gemeinsam verschoben werden. Absolute Pfade sind eindeutig und funktionieren unabhängig davon, wo die Shell gerade steht. Wenn ein Befehl eine Datei nicht findet, zeigt ein absoluter Pfad am schnellsten, ob die Datei fehlt oder du nur woanders bist.
Computer Fundamentals behandelt dasselbe Thema mit weiteren Beispielen, darunter die Abkürzung ~ für dein Benutzerverzeichnis und Laufwerksbuchstaben unter Windows:
Warum gerade das Schwierigkeiten macht
Fast jedes Problem der Art „Bei dir funktioniert es, bei mir nicht“, auf das Anfänger im Terminal stoßen, hängt mit dem Arbeitsverzeichnis zusammen. Die Datei ist da. Der Befehl stimmt. Die Shell steht woanders.
pwd und ls, in dieser Reihenfolge, klären das fast immer.
Du bist in /workspace, und cat data/books.txt funktioniert. Dann führst du cd data aus. Was passiert, wenn du erneut cat data/books.txt ausführst?
Als Nächstes: etwas Eigenes im Terminal erstellen.