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.

ObjekttypErkennungsmerkmal in ls -lBeispielFunktion
Normale Datei-notizen.txtEnthält Daten wie Text, Bilder oder Programme.
Verzeichnisd/home/alexOrganisiert Dateien und weitere Verzeichnisse.
Symbolischer Linkl/binVerweist auf einen anderen Pfad.
Blockgerätb/dev/sdaSchnittstelle zu Geräten mit blockorientiertem Zugriff, etwa Datenträgern.
Zeichengerätc/dev/ttySchnittstelle zu Geräten oder Datenströmen mit zeichenweisem Zugriff.
SocketsUnix-Domain-SocketKommunikation zwischen Prozessen.
Named PipepBenannte PipeDatenstrom 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.
SituationAktuelles VerzeichnisAbsoluter PfadRelativer PfadBedeutung
Datei im eigenen Home-Verzeichnis/home/alex/home/alex/notizen.txtnotizen.txtBeide 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/projektprojektDer relative Pfad beginnt im aktuellen Verzeichnis.
Rückkehr zum Home-Verzeichnisbeliebig/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 /

VerzeichnisTypische InhalteZweckHinweise und moderne Varianten
/Alle UnterverzeichnisseOberster Punkt der Hierarchie.Kein Laufwerksbuchstabe, sondern der gemeinsame Dateibaum.
/binGrundlegende ProgrammeWichtige Befehle für Benutzer und Systembetrieb.Auf vielen modernen Systemen ein Verweis auf /usr/bin.
/bootKernel, Bootloader-Dateien, StartkonfigurationKomponenten für den Systemstart.Kann bei separater Boot-Partition auf einem eigenen Dateisystem liegen.
/devGerätedateienSchnittstellen zu Geräten und Gerätefunktionen.Typischerweise dynamisch durch Kernel und Gerätedienste erzeugt.
/etcSystemweite KonfigurationsdateienEinstellungen für Dienste, Benutzerverwaltung und Systemprogramme.Beispiele sind /etc/fstab und /etc/hostname.
/homePersönliche BenutzerverzeichnisseDaten und Einstellungen regulärer Benutzer.Ein Benutzer kann beispielsweise /home/alex besitzen.
/libBibliotheken, Kernelmodule, systemnahe KomponentenUnterstützt Programme und den Systemstart.Kann auf /usr/lib verweisen oder mit diesem Bereich zusammengelegt sein.
/mediaAutomatisch eingebundene USB-Sticks und DatenträgerÜblicher Mountpoint für Wechseldatenträger.Desktop-Umgebungen verwenden häufig Unterverzeichnisse pro Benutzer oder Gerät.
/mntManuell eingebundene DateisystemeTraditioneller, temporärer Mountpoint.Die konkrete Konvention kann je nach Administration variieren.
/optZusätzliche, eigenständige SoftwarepaketeInstallationsort für optionale Software außerhalb der normalen Paketstruktur.Nicht jedes Programm verwendet diesen Bereich.
/procProzess- und KernelinformationenVirtuelles Dateisystem mit Laufzeitinformationen.Einträge repräsentieren häufig Prozesse oder Kernelparameter und sind nicht gewöhnliche Dateien auf dem Datenträger.
/rootHome-Dateien des root-BenutzersPersönlicher Bereich des Administratorkontos.Nicht mit dem Root-Verzeichnis / verwechseln.
/runPID-Dateien, Sockets und StatusdatenFlüchtige Laufzeitdaten seit dem Systemstart.Der Inhalt wird häufig beim Neustart neu erzeugt.
/sbinAdministrative SystemprogrammeBefehle für Systemverwaltung und Reparatur.Kann in modernen Distributionen auf /usr/sbin verweisen.
/srvDaten von Netzwerk- oder ServerdienstenVon Diensten bereitgestellte Inhalte.Die konkrete Nutzung hängt vom jeweiligen Dienst ab.
/sysGeräte-, Treiber- und KernelinformationenVirtuelles Dateisystem für die Darstellung des Kernel-Gerätemodells.Viele Einträge spiegeln Hardware- und Treiberzustände wider.
/tmpTemporäre DateienKurzlebige Daten von Programmen und Benutzern.Kann beim Neustart oder durch Bereinigungsdienste geleert werden; keine dauerhaften Daten dort speichern.
/usrProgramme, Bibliotheken, Dokumentation und gemeinsam nutzbare DatenEnthält den Großteil der installierten Software.In einem usr-merge-Layout liegen klassische Bereiche wie /bin und /lib oft darunter.
/varLogs, Caches, Spools, Datenbanken und PaketdatenVerä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.

  • /proc zeigt unter anderem Prozesse, Speicherinformationen und Kernelparameter.
  • /sys bildet Geräte, Treiber und Kernelobjekte ab.
  • /run enthä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

  1. Zeige mit pwd dein aktuelles Verzeichnis.
  2. Liste mit ls -la / die erste Ebene auf.
  3. Ordne /etc, /home, /var, /usr, /tmp und /dev anhand ihrer typischen Aufgaben zu.
  4. Prüfe mit findmnt oder df -h, welche Dateisysteme eingehängt sind.
  5. Vergleiche mit lsblk -f die 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 findmnt oder lsblk -f, ob er eingehängt ist.
  • Verwende bei Unsicherheit einen vollständigen absoluten Pfad.

„Zugriff verweigert“

  • Untersuche Datei und Verzeichnisse mit ls -l und ls -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; sudo nicht 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; root ist ein Benutzerkonto.
  • Absolute Pfade beginnen mit /, relative Pfade beziehen sich auf pwd.
  • . bedeutet aktuelles Verzeichnis, .. übergeordnetes Verzeichnis und ~ das eigene Home-Verzeichnis.
  • /etc enthält systemweite Konfiguration, /home persönliche Daten, /usr installierte Software und /var veränderliche Daten.
  • /dev, /proc, /sys und /run enthalten ü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.