Linux-Tutorial / Grundlagen des Dateisystems: Pfade und wichtige Verzeichnisse

Das Linux-Dateisystem kann als ein einzelner Verzeichnisbaum verstanden werden, der bei / beginnt. Ein Pfad identifiziert einen Ort in diesem Baum. Es hilft, einen absoluten Pfad, der bei / beginnt, von einem relativen Pfad, der im aktuellen Arbeitsverzeichnis beginnt, zu unterscheiden, um vorherzusagen, auf welche Datei ein Befehl wirken wird. Diese Lektion erklärt, wie man Pfade liest und wofür allgemeine Verzeichnisse normalerweise verwendet werden.

Üben Sie das Lesen von Pfaden, während Sie den Standort ändern in der pwd-, cd- und ls-Navigationslektion.

Ein zusammenhängender Verzeichnisbaum

Anders als das Laufwerksbuchstaben-Layout, das von Windows bekannt ist, präsentiert Linux Dateien und Verzeichnisse unter einem obersten Verzeichnis, das Root-Verzeichnis genannt wird, geschrieben /. Ein weiteres Laufwerk oder Dateisystem wird normalerweise in einem Verzeichnis innerhalb dieses Baums eingebunden. Diese Verbindung wird Mount genannt. Sie können nicht allein anhand der Form seines Pfades erkennen, auf welcher physischen Festplatte sich eine Datei befindet.

/ und /root sind unterschiedlich. Erstere ist der Ausgangspunkt des gesamten Baums; letzteres ist üblicherweise das Home-Verzeichnis des Root-Administratorkontos. Normale Benutzer-Home-Verzeichnisse befinden sich oft unter /home/username, aber die Kontokonfiguration kann sie an anderer Stelle platzieren.

Absolute und relative Pfade

Ein absoluter Pfad beginnt mit /. Zum Beispiel verweist /etc/hosts auf denselben Ort, unabhängig von Ihrem aktuellen Verzeichnis. Ein relativer Pfad wird vom aktuellen Arbeitsverzeichnis aus interpretiert. Wenn dieses Verzeichnis /home/learner ist, dann verweist notes/todo.txt auf /home/learner/notes/todo.txt.

Notation Bedeutung Beispiel
/ Anfang des Datei-Systems-Baums /etc/hosts
. Aktuelles Verzeichnis ./script.sh
.. Übergeordnetes Verzeichnis ../notes
~ Vom Shell auf das Home-Verzeichnis des aktuellen Benutzers erweitert ~/notes

. und .. sind Verzeichniseinträge, die in relativen Pfaden verwendet werden. ~ ist anders: Es ist Shell-Syntax, die vor der Ausführung eines Befehls erweitert wird, anstatt ein wörtlicher Dateisystemeintrag zu sein. In Bash verhindert das Einrahmen von '~/notes' mit einfachen Anführungszeichen, dass die Tilde auf Ihr Home-Verzeichnis erweitert wird.

Pfadnamen verwenden / als Trennzeichen und unterscheiden im Allgemeinen Groß- von Kleinbuchstaben, sodass Notes und notes unterschiedliche Namen sein können. Setzen Sie Anführungszeichen um einen Pfad, der Leerzeichen enthält, wie bei 'project notes', oder maskieren Sie die Leerzeichen, damit die Shell ihn als ein Argument weitergibt.

Wofür übliche Verzeichnisse sind

Die Tabelle gibt die üblichen Zwecke der Orte an, auf die Sie stoßen werden. Abhängig von der Distribution und Installation kann ein Verzeichnis fehlen oder mit einem anderen Ort verknüpft sein. Es bedeutet nicht, dass jede Datei immer genau dem Muster folgt.

Pfad Typischer Zweck
/home Heimverzeichnisse für gewöhnliche Benutzer
/etc System- und Dienstkonfiguration
/usr Programme im Benutzerbereich und gemeinsam genutzte Daten
/var Daten, die sich während des Betriebs ändern, einschließlich Protokollen und Caches
/tmp Temporäre Dateien
/dev Dateien, die Geräte darstellen
/proc, /sys Virtuelle Dateisysteme, die Kernel- und Systeminformationen bereitstellen
/boot Für das Booten benötigte Dateien
/mnt, /media Orte, die häufig verwendet werden, um zusätzlichen Speicher einzubinden

Bearbeiten oder löschen Sie Einträge unter /proc oder /sys nicht beiläufig, als wären sie gewöhnliche Dokumente. Vermeiden Sie es, wichtige Daten langfristig in /tmp zu speichern, da die Systemrichtlinie temporäre Dateien möglicherweise entfernt. Bevor Sie die Konfiguration unter /etc ändern, verstehen Sie den Zweck der Datei und erstellen Sie eine Sicherung.

Üben Sie das Lesen eines Pfads

Lesen Sie /home/learner/projects/report.txt von links nach rechts. Der anfängliche / ist der Ausgangspunkt; home, learner und projects sind Verzeichnisse auf dem Weg; und report.txt ist die letzte Komponente. Ein Punkt im Namen beweist nicht das Format der Datei oder dass sie überhaupt existiert.

Wenn Ihr aktuelles Verzeichnis /home/learner/projects ist, bezieht sich der relative Pfad ../notes.txt auf /home/learner/notes.txt im übergeordneten Verzeichnis. Sie müssen trotzdem überprüfen, ob diese Datei existiert. Einen Pfad zu interpretieren und seine Existenz zu bestätigen sind separate Aufgaben.

Bevor Sie einen Befehl ausführen, fragen Sie, wo Sie sich befinden und ob der von Ihnen eingegebene Pfad absolut oder relativ ist. Dies ist besonders wichtig beim Verschieben oder Löschen von Dateien: Ein falscher relativer Pfad kann das falsche Ziel beeinflussen. Für eine Auffrischung zum Lesen von Befehlen siehe die Lektion zu Terminal- und Shell-Grundlagen.

Offizielle Referenz

Der Filesystem Hierarchy Standard 3.0 beschreibt allgemeine Konventionen für das Verzeichnislayout. Überprüfen Sie Ihre Distribution und Systemkonfiguration, um das tatsächlich verwendete Layout zu sehen.