# Filesystem Hierarchy Standard FHS Das **Filesystem Hierarchy Standard (FHS)** beschreibt die Verzeichnisstruktur und die Inhalte von Linux-Systemen. Es definiert, welche Verzeichnisse existieren sollten und welche Arten von Dateien dort zu finden sind. Hier ist eine Übersicht der wichtigsten Verzeichnisse: --- ### Root-Verzeichnis Das oberste Verzeichnis hat keinen richtigen Namen, sondern nur ein Symbol: `/`. Alle anderen Verzeichnisse und Dateien sind hierarchisch darunter organisiert. --- ### Hauptverzeichnisse | **Verzeichnis** | **Beschreibung** | **Beispiele für Inhalte** | |------------------|-----------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------| | **`/bin`** | Essenzielle ausführbare Programme für das System (Binaries), die von allen Benutzern benötigt werden. | `ls`, `cp`, `mv`, `rm`, `bash` | | **`/sbin`** | Systemadministrationstools für den Superuser (root). | `fsck`, `reboot`, `iptables` | | **`/boot`** | Dateien für den Bootloader und Kernel. | Kernel (`vmlinuz`), Initramfs (`initrd.img`), Bootloader-Konfiguration (`grub.cfg`) | | **`/dev`** | Geräte-Dateien (Device Files), die Hardware- und virtuelle Geräte repräsentieren. | `tty`, `sda`, `null`, `random` | | **`/etc`** | Systemweite Konfigurationsdateien und Skripte. | `passwd`, `hosts`, `fstab` | | **`/home`** | Benutzerverzeichnisse. Jeder Benutzer hat ein eigenes Unterverzeichnis. | `/home/alex`, `/home/julia` | | **`/lib`** | Gemeinsame Bibliotheken für grundlegende Programme im `/bin` und `/sbin`. | `libc.so.6`, `ld-linux.so.2` | | **`/media`** | Einhängepunkte (Mountpoints) für wechselbare Medien wie USB-Sticks und CDs. | `/media/usb`, `/media/cdrom` | | **`/mnt`** | Temporäre Einhängepunkte für Dateisysteme, oft bei manuellen Mounts. | `/mnt/external_drive` | | **`/opt`** | Zusätzliche Software, die nicht Teil der Standardpakete ist. | `/opt/virtualbox`, `/opt/google/chrome` | | **`/proc`** | Virtuelles Dateisystem mit Informationen über laufende Prozesse und Systeminformationen. | `/proc/cpuinfo`, `/proc/meminfo`, `/proc/1` | | **`/root`** | Home-Verzeichnis des Superusers (root). | Persönliche Dateien und Einstellungen des Root-Benutzers. | | **`/run`** | Laufzeitdaten von Prozessen und Diensten, die seit dem letzten Booten erstellt wurden. | PID-Dateien, Socket-Dateien | | **`/srv`** | Daten für Dienste, die vom System bereitgestellt werden (z. B. Webserver, FTP). | `/srv/http`, `/srv/ftp` | | **`/sys`** | Virtuelles Dateisystem mit Informationen über die Hardware und den Kernel. | `/sys/class`, `/sys/devices` | | **`/tmp`** | Temporäre Dateien. Wird oft beim Neustart gelöscht. | Temporäre Daten von Anwendungen und Skripten | | **`/usr`** | Sekundäre Programme und Dateien für Benutzer, die nicht kritisch für das System sind. | Siehe unten (detaillierte Unterverzeichnisse). | | **`/var`** | Variable Daten, die sich während des Betriebs ändern. | Logdateien, temporäre Datenbanken, Druckerspooler (`/var/log`, `/var/spool`, `/var/tmp`) | --- ### Details zu /usr | **Unterverzeichnis** | **Beschreibung** | |------------------------|---------------------------------------------------------------------------------| | **`/usr/bin`** | Nicht-essenzielle ausführbare Programme. | | **`/usr/sbin`** | Administrative Werkzeuge für den Superuser. | | **`/usr/lib`** | Bibliotheken für Programme in `/usr/bin` und `/usr/sbin`. | | **`/usr/local`** | Software, die lokal installiert wurde (nicht durch den Paketmanager). | | **`/usr/share`** | Architektur-unabhängige Dateien, z. B. Dokumentation und Icons. | | **`/usr/src`** | Quellen (Source Code), z. B. Kernel-Quellcode. | --- ### Zusammenfassung der Nutzung - **Systemkritische Verzeichnisse:** `/bin`, `/sbin`, `/lib`, `/etc`, `/dev`, `/proc` - **Benutzerdaten und Software:** `/home`, `/usr`, `/opt` - **Variable Daten:** `/var`, `/tmp`