VMware ESXi and vSphere Cluster Management
Linux-Verzeichnisstruktur verstehen: Root, Pfade, wichtige Verzeichnisse und FHS
Lerne die Linux-Verzeichnisstruktur kennen: Root-Verzeichnis, Pfade, Home, /etc, /usr, /var, /dev, Mountpoints, FHS und Dateirechte.
Die Linux-Verzeichnisstruktur organisiert Dateien, Programme, Konfigurationen und Systeminformationen in einem gemeinsamen Verzeichnisbaum. Wer diesen Aufbau versteht, kann sich sicherer in der Shell bewegen, Fehlermeldungen besser einordnen und Dateien am richtigen Ort finden.
Der eine Verzeichnisbaum und das Root-Verzeichnis
Linux verwendet einen einzigen hierarchischen Verzeichnisbaum. Sein oberster Einstiegspunkt heißt Root-Verzeichnis und wird mit einem einzelnen Schrägstrich dargestellt: /.
Unterhalb von / liegen weitere Verzeichnisse wie /home, /etc oder /usr. Auch zusätzliche Festplatten, Partitionen und viele Informationen des Kernels erscheinen nach dem Einhängen innerhalb dieses Baums.
Das Unix-Prinzip „Alles ist eine Datei“
„Alles ist eine Datei“ ist ein vereinfachendes Modell aus der Unix-Welt. Es bedeutet, dass viele unterschiedliche Ressourcen über dateiähnliche Schnittstellen angesprochen werden können. Dadurch können Programme häufig dieselben grundlegenden Operationen verwenden, etwa Öffnen, Lesen oder Schreiben.
| Objekttyp | Erkennungsmerkmal in ls -l | Beispiel | Funktion |
|---|---|---|---|
| Normale Datei | - | notizen.txt | Enthält Daten wie Text, Bilder oder Programme. |
| Verzeichnis | d | /home/alex | Organisiert Dateien und weitere Verzeichnisse. |
| Symbolischer Link | l | /bin | Verweist auf einen anderen Pfad. |
| Blockgerät | b | /dev/sda | Schnittstelle zu Geräten mit blockorientiertem Zugriff, etwa Datenträgern. |
| Zeichengerät | c | /dev/tty | Schnittstelle zu Geräten oder Datenströmen mit zeichenweisem Zugriff. |
| Socket | s | Unix-Domain-Socket | Kommunikation zwischen Prozessen. |
| Named Pipe | p | Benannte Pipe | Datenstrom zwischen Prozessen. |
Hardware wird dabei nicht einfach als gewöhnliche Datei im Dateisystem gespeichert. Stattdessen stellen Treiber spezielle Gerätedateien bereit, über die Programme mit der Hardware oder einer Gerätefunktion kommunizieren können.
Absolute und relative Pfade
Ein absoluter Pfad beginnt mit /. Er beschreibt den vollständigen Weg vom Root-Verzeichnis und funktioniert unabhängig vom aktuellen Arbeitsverzeichnis.
Ein relativer Pfad beginnt nicht mit /. Die Shell interpretiert ihn ausgehend vom aktuellen Arbeitsverzeichnis.
.bezeichnet das aktuelle Verzeichnis...bezeichnet das übergeordnete Verzeichnis.~steht für das Home-Verzeichnis des aktuellen Benutzers.
| Situation | Aktuelles Verzeichnis | Absoluter Pfad | Relativer Pfad | Bedeutung |
|---|---|---|---|---|
| Datei im eigenen Home-Verzeichnis | /home/alex | /home/alex/notizen.txt | notizen.txt | Beide Pfade sprechen dieselbe Datei an. |
| Datei im übergeordneten Verzeichnis | /home/alex/projekt | /home/alex/README | ../README | .. führt nach /home/alex. |
| Wechsel in ein Unterverzeichnis | /home/alex | /home/alex/projekt | projekt | Der relative Pfad beginnt im aktuellen Verzeichnis. |
| Rückkehr zum Home-Verzeichnis | beliebig | /home/alex | ~ | Die Tilde wird zum Home-Pfad des Benutzers aufgelöst. |
pwd # aktuelles Arbeitsverzeichnis anzeigen
cd /home # absolut nach /home wechseln
cd .. # eine Ebene nach oben
cd ~ # ins eigene Home-Verzeichnis
ls # Inhalte anzeigen
ls -la # einschließlich versteckter Einträge anzeigen
cat /home/alex/notizen.txt # Datei mit absolutem Pfad lesen
cat notizen.txt # dieselbe Datei relativ lesen, falls pwd /home/alex ist
Versteckte Einträge beginnen in Linux mit einem Punkt, zum Beispiel .config. Sie sind nicht automatisch geheim; sie werden von ls ohne passende Option lediglich nicht angezeigt.
Navigation und das aktuelle Arbeitsverzeichnis
Das aktuelle Arbeitsverzeichnis ist der Bezugspunkt für relative Pfade. Mit pwd (print working directory) lässt es sich anzeigen.
$ pwd
/home/alex
$ cd projekt
$ pwd
/home/alex/projekt
$ cd ..
$ pwd
/home/alex
$ cd
$ pwd
/home/alex
cd ohne Argument wechselt ebenfalls in das Home-Verzeichnis. Mit ls -la / kann die erste Ebene des gesamten Verzeichnisbaums einschließlich versteckter Einträge untersucht werden.
Wichtige Verzeichnisse direkt unter /
| Verzeichnis | Typische Inhalte | Zweck | Hinweise und moderne Varianten |
|---|---|---|---|
/ | Alle Unterverzeichnisse | Oberster Punkt der Hierarchie. | Kein Laufwerksbuchstabe, sondern der gemeinsame Dateibaum. |
/bin | Grundlegende Programme | Wichtige Befehle für Benutzer und Systembetrieb. | Auf vielen modernen Systemen ein Verweis auf /usr/bin. |
/boot | Kernel, Bootloader-Dateien, Startkonfiguration | Komponenten für den Systemstart. | Kann bei separater Boot-Partition auf einem eigenen Dateisystem liegen. |
/dev | Gerätedateien | Schnittstellen zu Geräten und Gerätefunktionen. | Typischerweise dynamisch durch Kernel und Gerätedienste erzeugt. |
/etc | Systemweite Konfigurationsdateien | Einstellungen für Dienste, Benutzerverwaltung und Systemprogramme. | Beispiele sind /etc/fstab und /etc/hostname. |
/home | Persönliche Benutzerverzeichnisse | Daten und Einstellungen regulärer Benutzer. | Ein Benutzer kann beispielsweise /home/alex besitzen. |
/lib | Bibliotheken, Kernelmodule, systemnahe Komponenten | Unterstützt Programme und den Systemstart. | Kann auf /usr/lib verweisen oder mit diesem Bereich zusammengelegt sein. |
/media | Automatisch eingebundene USB-Sticks und Datenträger | Üblicher Mountpoint für Wechseldatenträger. | Desktop-Umgebungen verwenden häufig Unterverzeichnisse pro Benutzer oder Gerät. |
/mnt | Manuell eingebundene Dateisysteme | Traditioneller, temporärer Mountpoint. | Die konkrete Konvention kann je nach Administration variieren. |
/opt | Zusätzliche, eigenständige Softwarepakete | Installationsort für optionale Software außerhalb der normalen Paketstruktur. | Nicht jedes Programm verwendet diesen Bereich. |
/proc | Prozess- und Kernelinformationen | Virtuelles Dateisystem mit Laufzeitinformationen. | Einträge repräsentieren häufig Prozesse oder Kernelparameter und sind nicht gewöhnliche Dateien auf dem Datenträger. |
/root | Home-Dateien des root-Benutzers | Persönlicher Bereich des Administratorkontos. | Nicht mit dem Root-Verzeichnis / verwechseln. |
/run | PID-Dateien, Sockets und Statusdaten | Flüchtige Laufzeitdaten seit dem Systemstart. | Der Inhalt wird häufig beim Neustart neu erzeugt. |
/sbin | Administrative Systemprogramme | Befehle für Systemverwaltung und Reparatur. | Kann in modernen Distributionen auf /usr/sbin verweisen. |
/srv | Daten von Netzwerk- oder Serverdiensten | Von Diensten bereitgestellte Inhalte. | Die konkrete Nutzung hängt vom jeweiligen Dienst ab. |
/sys | Geräte-, Treiber- und Kernelinformationen | Virtuelles Dateisystem für die Darstellung des Kernel-Gerätemodells. | Viele Einträge spiegeln Hardware- und Treiberzustände wider. |
/tmp | Temporäre Dateien | Kurzlebige Daten von Programmen und Benutzern. | Kann beim Neustart oder durch Bereinigungsdienste geleert werden; keine dauerhaften Daten dort speichern. |
/usr | Programme, Bibliotheken, Dokumentation und gemeinsam nutzbare Daten | Enthält den Großteil der installierten Software. | In einem usr-merge-Layout liegen klassische Bereiche wie /bin und /lib oft darunter. |
/var | Logs, Caches, Spools, Datenbanken und Paketdaten | Veränderliche Daten, die im laufenden Betrieb wachsen oder sich ändern. | Beispiele sind /var/log und /var/cache. |
Zusätzlich kann /lost+found vorhanden sein. Es ist ein dateisystemspezifisches Wiederherstellungsverzeichnis, das beispielsweise nach einer Dateisystemprüfung verwendet werden kann.
Programme, Bibliotheken und usr-merge
Traditionell wurden grundlegende Programme in /bin und administrative Programme in /sbin erwartet. Allgemeine Programme lagen häufig unter /usr/bin, administrative Varianten unter /usr/sbin. Bibliotheken wurden unter /lib beziehungsweise /usr/lib abgelegt.
Viele aktuelle Distributionen verwenden usr-merge. Dabei sind /bin, /sbin und teilweise /lib symbolische Verweise auf entsprechende Verzeichnisse unter /usr. Das ist kein Fehler, sondern eine andere Umsetzung derselben grundlegenden Organisation.
ls -ld /bin
readlink -f /bin
readlink -f /lib
Gerätedateien in /dev
Das Verzeichnis /dev enthält spezielle Gerätedateien. Blockgeräte übertragen Daten in Blöcken und repräsentieren oft Datenträger oder Partitionen. Zeichengeräte übertragen Daten als fortlaufenden Strom, etwa bei Terminals.
/dev/sda: möglicher Name eines SCSI-, SATA- oder USB-Blockgeräts./dev/nvme0n1: möglicher Name eines NVMe-Datenträgers./dev/tty: Terminal des aktuellen Prozesses./dev/null: spezielles Ziel, das geschriebene Daten verwirft.
Gerätenamen hängen von Hardware, Treibern und Erkennungsreihenfolge ab. Ein Beispielname ist deshalb nicht auf jedem Rechner vorhanden oder identisch.
lsblk -f
stat /dev/sda
Der zweite Befehl funktioniert nur, wenn /dev/sda auf dem System tatsächlich existiert. Beide Beispiele untersuchen Informationen; sie schreiben nicht auf das Gerät.
Dateisysteme einhängen: Mountpoints
Beim Einhängen (Mounten) wird ein Dateisystem an ein vorhandenes Verzeichnis, den Mountpoint, in den bestehenden Verzeichnisbaum eingebunden. Danach erscheinen seine Inhalte unter diesem Pfad.
Angenommen, /home liegt auf einer separaten Partition. Für Programme bleibt der Zugriff trotzdem einfach: Sie verwenden weiterhin Pfade wie /home/alex. Die separate Partition wird nicht als unabhängiger zweiter Baum mit eigenem Laufwerksbuchstaben dargestellt.
Ein USB-Datenträger kann beispielsweise unter /media/alex/USB eingehängt werden. Der Mountpoint muss als Verzeichnis existieren; die dort zuvor sichtbaren Inhalte werden während des Mountens verdeckt und nach dem Aushängen wieder sichtbar.
findmnt # Dateisysteme und Mountpoints anzeigen
df -h # Speicherbelegung eingehängter Dateisysteme anzeigen
lsblk -f # Blockgeräte, Dateisysteme und Mountpoints anzeigen
cat /etc/fstab
/etc/fstab enthält Konfigurationen für Dateisysteme, die beim Systemstart oder gezielt dauerhaft eingebunden werden sollen. Die Datei sollte nur mit einem klaren Verständnis der Optionen geändert werden; ein Fehler kann den Systemstart oder den Zugriff auf Daten beeinträchtigen.
Virtuelle Dateisysteme: /proc, /sys und /run
Ein virtuelles Dateisystem stellt Informationen bereit, ohne dass dort gewöhnliche dauerhafte Dateien auf einem Datenträger liegen.
/proczeigt unter anderem Prozesse, Speicherinformationen und Kernelparameter./sysbildet Geräte, Treiber und Kernelobjekte ab./runenthält flüchtige Statusdaten und Kommunikationsdateien laufender Dienste.
Diese Verzeichnisse können sich während des Betriebs verändern. Ihre Einträge sind daher eher Ansichten auf den aktuellen Systemzustand als normale gespeicherte Dokumente.
Filesystem Hierarchy Standard (FHS)
Der Filesystem Hierarchy Standard (FHS) beschreibt Konventionen dafür, welche Arten von Dateien und Daten in Verzeichnissen wie /etc, /usr oder /var erwartet werden. Das erleichtert Administration, Softwareentwicklung und Fehlersuche.
Der FHS ist eine Orientierung, keine Garantie für eine auf jeder Distribution identische Umsetzung. Distributionen treffen eigene Entscheidungen. Container können ein reduziertes Dateisystem besitzen, Anwendungen können ihre Daten bündeln, und usr-merge verändert die tatsächlichen Pfadbeziehungen. Deshalb sollte immer auch das konkrete System untersucht werden.
Berechtigungen und Eigentümerschaft
Ein korrekter Pfad garantiert nicht, dass ein Zugriff erlaubt ist. Linux prüft für Dateien und Verzeichnisse grundsätzlich Rechte für Benutzer, Gruppe und andere Benutzer. Die wichtigsten Rechte sind:
- Lesen (
r): Dateiinhalt lesen oder Verzeichnisnamen auflisten. - Schreiben (
w): Datei verändern oder Verzeichniseinträge anlegen und entfernen. - Ausführen (
x): Datei als Programm ausführen; bei einem Verzeichnis bedeutet es, es betreten beziehungsweise darin auf einen bekannten Eintrag zugreifen zu dürfen.
ls -l datei.txt
ls -ld /home/alex /home/alex/projekt
ls -ld /etc /home /var /tmp
Bei einem Verzeichnis müssen alle übergeordneten Verzeichnisse im Pfad durchsuchbar sein. Fehlt dort das x-Recht, kann ein Zugriff trotz korrektem Dateinamen mit „Zugriff verweigert“ scheitern.
sudo führt einen einzelnen Befehl mit administrativen Rechten aus, sofern der Benutzer dazu berechtigt ist. Es ist kein allgemeiner Reparaturmechanismus: Ein falscher Pfad oder ein riskanter Befehl wird durch sudo nicht sicherer.
Praktische Erkundung des Dateisystems
- Zeige mit
pwddein aktuelles Verzeichnis. - Liste mit
ls -la /die erste Ebene auf. - Ordne
/etc,/home,/var,/usr,/tmpund/devanhand ihrer typischen Aufgaben zu. - Prüfe mit
findmntoderdf -h, welche Dateisysteme eingehängt sind. - Vergleiche mit
lsblk -fdie erkannten Blockgeräte mit ihren Dateisystemen und Mountpoints.
Die Ausgabe kann je nach Distribution, installierter Software und Hardware deutlich abweichen. Das ist normal.
Häufige Probleme und ihre Diagnose
„cd: Datei oder Verzeichnis nicht gefunden“
- Prüfe mit
pwd, von welchem Verzeichnis der relative Pfad ausgeht. - Kontrolliere die Schreibweise mit
ls; Linux unterscheidet Groß- und Kleinschreibung. - Falls ein Datenträger erwartet wird, prüfe mit
findmntoderlsblk -f, ob er eingehängt ist. - Verwende bei Unsicherheit einen vollständigen absoluten Pfad.
„Zugriff verweigert“
- Untersuche Datei und Verzeichnisse mit
ls -lundls -ld. - Prüfe Eigentümer, Gruppe und die Rechte jedes Verzeichnisses im Pfad.
- Berücksichtige, dass zusätzliche Sicherheitsmechanismen einer Distribution Zugriffe weiter begrenzen können.
- Ändere Rechte oder Eigentümerschaft nur mit Verständnis der Folgen;
sudonicht pauschal verwenden.
„/bin“ sieht ungewöhnlich aus
Die Distribution verwendet wahrscheinlich usr-merge. Mit ls -ld /bin und readlink -f /bin lässt sich das Ziel prüfen. Verwende den tatsächlichen Zielpfad und behandle die Abweichung als distributionsabhängige Layout-Variante.
USB-Laufwerk erscheint nicht am erwarteten Ort
Das Gerät wurde möglicherweise nicht automatisch eingehängt, die Desktop-Umgebung verwendet einen anderen Mountpoint oder das Dateisystem wurde nicht erkannt. Untersuche mit lsblk -f und findmnt den tatsächlichen Zustand, statt blind auf einen vermuteten Pfad zuzugreifen.
Temporäre Datei ist verschwunden
Dateien unter /tmp können beim Neustart oder durch Bereinigungsdienste gelöscht werden. Für dauerhafte Daten eignen sich das Home-Verzeichnis oder ein passendes Projektverzeichnis.
Prüfungsrelevante Merksätze
/ist das Root-Verzeichnis;rootist ein Benutzerkonto.- Absolute Pfade beginnen mit
/, relative Pfade beziehen sich aufpwd. .bedeutet aktuelles Verzeichnis,..übergeordnetes Verzeichnis und~das eigene Home-Verzeichnis./etcenthält systemweite Konfiguration,/homepersönliche Daten,/usrinstallierte Software und/varveränderliche Daten./dev,/proc,/sysund/runenthalten überwiegend spezielle oder virtuelle Systemobjekte.- Ein Mountpoint verbindet ein weiteres Dateisystem mit dem bestehenden Baum.
- Der FHS beschreibt Konventionen, aber jede Distribution kann Details anders umsetzen.
- Ein Pfadfehler und ein Berechtigungsfehler sind unterschiedliche Ursachen.
Als nächster Schritt eignet sich die Lektion zur Linux-Verzeichnisstruktur, um Pfade und Verzeichnisse weiter praktisch zu üben.