Linux-Verzeichnisstruktur erklärt: Zweck der wichtigsten Verzeichnisse

Unter Linux liegen System- und Dienstkonfigurationen hauptsächlich in /etc, Protokolle und veränderliche Daten in /var, Programme und Bibliotheken in /usr und persönliche Dateien regulärer Benutzer meist unter /home. Virtuelle Dateisysteme wie /proc und /sys stellen dagegen Informationen des laufenden Kernels bereit.

In diesem Artikel erklären wir den Zweck der wichtigsten Linux-Verzeichnisse und, falls der Verzeichnisname eine Abkürzung ist, was er bedeutet. Für die dazugehörigen Bedingungen und Verfahren siehe Grundlagen des Dateisystems: Pfade und wichtige Verzeichnisse. Für die dazugehörigen Bedingungen und Verfahren siehe Verzeichnisse mit pwd, ls, cd und tree navigieren.

Überblick über die wichtigsten Linux-Verzeichnisse

Verzeichnis Bedeutung des Namens Hauptverwendung
/ Root Das oberste Verzeichnis des Linux-Dateisystems
/bin Binär Basis-Befehlsausführbare Dateien
/boot Boot Boot-bezogene Dateien wie der Kernel und der Bootloader
/dev Gerät Gerätedateien wie Festplatten und Terminals
/etc Traditionell abgeleitet von et cetera System- und Dienstkonfigurationsdateien
/home Zuhause Allgemeine Benutzer-Heimverzeichnisse
/lib Bibliothek Gemeinsame Bibliotheken
/lib64 64-Bit-Bibliothek Gemeinsame Bibliotheken für 64-Bit-Systeme
/media Medien Einbinden von austauschbaren Geräten wie USBs und CDs/DVDs
/mnt Einhängen Temporärer Einhängepunkt für das Dateisystem
/opt Optional Zusätzliche Installationsprogramme
/proc Prozess Virtuelles Dateisystem, das Prozess- und Kernelinformationen bereitstellt
/root Root Heimverzeichnis des Root-Benutzers
/run Ausführen Zur Laufzeit generierte Daten nach dem Start
/sbin System-Binärdatei Systemverwaltungsbefehle
/srv Dienst Dienstleistungsdaten, die vom Server bereitgestellt werden
/sys System Virtuelles Dateisystem, das Geräte- und Kernelinformationen bereitstellt
/tmp Temporär Temporärer Dateispeicher
/usr usr (Verzeichnisname) Programme, Befehle, Bibliotheken, gemeinsame Daten
/var Variable Daten, die sich ständig ändern, wie Protokolle und Cache

/ - Stammverzeichnis

/ ist das oberste Verzeichnis im Linux-Dateisystem.

Im Gegensatz zum Konzept der Laufwerke in Windows sind in Linux alle Verzeichnisse und Dateien unter / verbunden.

/
├── bin
├── boot
├── dev
├── etc
├── home
├── usr
└── var

/ wird als Stammverzeichnis bezeichnet und ist ein anderes Konzept als /root, das Heimverzeichnis des Root-Benutzerkontos.

/bin - Basisbefehle

bin steht für das englische Wort binary und bezeichnet hier ausführbare Programme.

Es speichert die ausführbaren Dateien der Basisbefehle, die benötigt werden, um das System zu verwenden. Typische Befehle sind ls, cp, mv, cat usw.

ls /bin

In vielen aktuellen Linux-Distributionen ist /bin kein tatsächliches Verzeichnis, sondern ein symbolischer Link, der auf /usr/bin zeigt.

ls -ld /bin

/boot - Bootbezogene Dateien

/boot speichert den Kernel und die bootloader-bezogenen Dateien, die zum Starten des Linux-Systems erforderlich sind.

Repräsentative Dateien und Verzeichnisse sind wie folgt.

/boot/vmlinuz-...
/boot/initramfs-...
/boot/grub2/

Es ist ein Verzeichnis, das hauptsächlich beim Aktualisieren des Kernels oder Ändern der GRUB-Bootloader-Einstellungen überprüft wird.

/dev - Gerätedateien

dev ist von device, dem englischen Wort für Gerät, abgeleitet.

In Linux werden Geräte wie Festplatten, SSDs und Terminals in Form von Dateien dargestellt.

/dev/sda
/dev/sdb
/dev/nvme0n1
/dev/tty
/dev/null

Zum Beispiel kann /dev/sda ein Festplattengerät darstellen, und /dev/null ist eine spezielle Gerätedatei, die alle Eingabedaten verwirft.

/etc - Systemkonfigurationsdateien

/etc ist eines der am häufigsten verwendeten Verzeichnisse bei der Verwaltung eines Linux-Servers.

Es speichert hauptsächlich Konfigurationsdateien für das Betriebssystem und verschiedene Dienste.

/etc/passwd
/etc/fstab
/etc/hosts
/etc/ssh/sshd_config

Beim Ändern verschiedener Einstellungen wie SSH, Apache, Nginx, Netzwerk und Benutzerkonten werden Dateien unter /etc geändert.

/home - Allgemeines Benutzer-Home-Verzeichnis

/home ist ein Verzeichnis, das persönliche Dateien und Einstellungen regulärer Benutzer speichert.

Wenn Sie beispielsweise einen Benutzer namens john erstellen, wird in der Regel das folgende Home-Verzeichnis erstellt.

/home/john

Wenn sich ein Benutzer anmeldet, wird der Standard-Arbeitsort ebenfalls zu seinem eigenen Home-Verzeichnis.

/lib, /lib64 - Gemeinsame Bibliotheken

lib ist eine Abkürzung für Library.

Hier werden gemeinsam genutzte Bibliotheken gespeichert, die zur Ausführung der grundlegenden Programme und Befehle von Linux erforderlich sind.

Auf 64-Bit-Systemen kann das Verzeichnis /lib64 gefunden werden.

In den aktuellen Linux-Distributionen sind /lib und /lib64 oft symbolische Links, die auf /usr/lib bzw. /usr/lib64 verweisen.

/media - Einhängen von Wechseldatenträgern

/media ist der Ort, der zum Einhängen von Wechselspeichergeräten wie USB-Speichern, CDs und DVDs verwendet wird.

Auf Desktop-Linux-Systemen wird ein USB-Gerät beim Anschließen oft automatisch unter /media oder /run/media eingehängt.

/mnt - Temporäres Einhängen

/mnt ist ein Name, der von Mount abgeleitet ist.

Es wird hauptsächlich verwendet, wenn ein Administrator vorübergehend ein Laufwerk oder Dateisystem im Netzwerk einhängt.

mount /dev/sdb1 /mnt

Wenn /media häufig für das automatische Einhängen von Wechseldatenträgern wie USBs verwendet wird, wird /mnt oft für temporäre Einhängepunkte verwendet, die manuell vom Administrator vorgenommen werden.

/opt - Zusätzlich installierte Programme

opt steht für Optional.

Abgesehen von der Standard-Paketstruktur einer Linux-Distribution befinden sich kommerzielle Programme oder von Dritten installierte Anwendungen, die separat installiert werden, hauptsächlich hier.

/opt/application/
/opt/company/product/

/proc - Prozess- und Kernelinformationen

proc ist von process, dem englischen Wort für Prozess, abgeleitet.

/proc ist kein gewöhnliches Verzeichnis, das Daten auf der tatsächlichen Festplatte speichert, sondern ein virtuelles Dateisystem, das vom Linux-Kernel bereitgestellt wird und Systeminformationen in Form von Dateien anbietet.

CPU-Informationen können mit folgendem Befehl überprüft werden.

cat /proc/cpuinfo

Speicherinformationen können wie folgt überprüft werden.

cat /proc/meminfo

Wenn die Prozess-ID 1234 lautet, können Sie verschiedene Informationen über diesen Prozess im /proc/1234-Verzeichnis finden.

/root - Heimatverzeichnis des Benutzers root

/root ist das Heimatverzeichnis des Benutzers root, das Konto des Systemadministrators.

Normaler Benutzer → /home/user
Benutzer root → /root

Das Stammverzeichnis / und das Home-Verzeichnis des Root-Benutzers /root haben unterschiedliche Bedeutungen.

/run - Laufzeitdaten

/run speichert temporäre Laufzeitinformationen, die von Diensten und Prozessen nach dem Systemstart verwendet werden.

Typische Beispiele sind PID-Dateien, Sockets und Dienststatusinformationen.

/run/
/run/user/
/run/systemd/

Im Allgemeinen werden die Daten in /run im Speicher gespeichert und beim Neustart des Systems initialisiert.

/sbin - Systemverwaltungsbefehle

sbin steht allgemein für System-Binärdateien.

Es enthält Befehle, die für die Systemadministration erforderlich sind.

/sbin/reboot
/sbin/fsck

In aktuellen Linux-Distributionen wird /sbin häufig als symbolischer Link eingerichtet, der auf /usr/sbin zeigt.

/srv - Servicedaten

srv steht für Service.

Es ist ein Verzeichnis zum Speichern von Servicedaten, die vom System nach außen bereitgestellt werden, z. B. für Webserver oder FTP-Server.

/srv/www/
/srv/ftp/

Der tatsächliche Speicherort der Servicedaten kann jedoch je nach Distribution oder Administrator-Einstellungen variieren, und für Webserver wird häufig /var/www verwendet.

/sys - System- und Geräteinformationen

sys steht für System.

/sys, wie /proc, ist ein virtuelles Dateisystem, das vom Kernel bereitgestellt wird, und kein tatsächliches Festplattenverzeichnis.

Es wird hauptsächlich verwendet, um Informationen über Geräte, Treiber, Kernelobjekte usw. zu überprüfen.

ls /sys/class

Es wird verwendet, um Informationen über die CPU, Netzwerkschnittstellen, Speichergeräte zu überprüfen oder bestimmte Kernelattribute zu steuern.

/tmp - Temporäre Dateien

tmp ist eine Abkürzung für Temporary.

Es ist ein Bereich zum vorübergehenden Speichern von Dateien, die von Programmen oder Benutzern benötigt werden.

/tmp

Je nach Systemrichtlinien können Dateien nach einem Neustart oder nach einer bestimmten Zeit gelöscht werden, daher sollte es nicht zum Speichern wichtiger Daten verwendet werden.

/usr - Programme und Systemressourcen

/usr ist ein Verzeichnis, das in Linux einen sehr großen Teil einnimmt.

/usr enthält ausführbare Programme, Bibliotheken, Dokumentation und gemeinsam nutzbare Daten. Die Verzeichnisse darunter sind nach der Art dieser Dateien gegliedert.

Verzeichnis Zweck
/usr/bin Allgemeine Befehle und Programme
/usr/sbin Systemverwaltungsprogramme
/usr/lib Gemeinsame Bibliotheken
/usr/lib64 64-Bit-Shared-Bibliotheken
/usr/share Architekturunabhängige gemeinsame Daten wie Dokumente und Symbole
/usr/local Direkt vom Administrator installierte Programme

Insbesondere ist /usr/local nützlich, um zwischen von Paketmanagern installierten Programmen und direkt vom Administrator installierten Programmen zu unterscheiden.

/var - ständig wechselnde Daten

var steht für Variable.

Es speichert Daten, die kontinuierlich generiert werden oder sich in der Größe ändern, während das System läuft.

/var/log
/var/cache
/var/lib
/var/spool

/var/log

Hier werden Protokolldateien des Systems und der Dienste gespeichert.

ls /var/log

/var/cache

Es speichert Cache-Daten, die von Programmen zur Verbesserung der Leistung verwendet werden.

/var/lib

Hier werden Statusdaten gespeichert, die von Diensten und Anwendungen kontinuierlich genutzt werden.

/var/spool

Es wird verwendet, um Daten zu speichern, die noch verarbeitet werden müssen, wie E-Mails, Druckaufträge und geplante Aufgaben.

Auf dem Server können insbesondere die Protokolldateien in /var/log weiterhin wachsen und viel Speicherplatz beanspruchen, daher ist es eine gute Idee, ihre Nutzung regelmäßig zu überprüfen.

Wie man sich Linux-Verzeichnisse einfach merkt

Man muss den Zweck aller Verzeichnisse nicht von Anfang an auswendig lernen. Es ist praktisch, sich zunächst die Verzeichnisse zu merken, die häufig in der Serververwaltung verwendet werden, wie folgt.

/etc → Konfigurationsdateien
/var → Protokolle und veränderliche Daten
/home → Daten regulärer Benutzer
/root → Home-Verzeichnis von root
/usr → Programme und Bibliotheken
/tmp → Temporäre Dateien
/dev → Geräte
/proc → Prozess- und Kernelinformationen
/sys → System- und Geräteinformationen
/boot → Dateien für den Systemstart
/mnt → Temporäre Einhängepunkte
/opt → Zusätzlich installierte Programme

Insbesondere ist es zu Beginn hilfreich, wenn man sich die vier Verzeichnisse /etc für Konfiguration, /var für Protokolle, /usr für Programme und /home für Benutzerdaten merkt, da dies bei der tatsächlichen Linux-Verwaltung unterstützt.

Zusammenfassung der Linux-Verzeichnisstruktur

Linux-Verzeichnisse haben jeweils eine relativ klare Rolle. Systemeinstellungen werden hauptsächlich in /etc gespeichert, Protokolle und variable Daten in /var, Programme und Bibliotheken in /usr und Benutzerdateien in /home.

Es ist auch nützlich zu wissen, dass /proc und /sys keine regulären Festplattenverzeichnisse, sondern virtuelle Dateisysteme sind, die Kernelinformationen bereitstellen.

Beim Verwalten eines Linux-Servers werden Sie diesen Verzeichnissen ständig begegnen. Es ist daher effektiver, zu verstehen, welche Art von Daten jedes Verzeichnis speichert, anstatt nur die Pfade auswendig zu lernen.