Linux-Einsteiger fragen oft: Was bedeuten all diese Verzeichnisse wie /etc, /var, /usr? Die Struktur folgt dem Filesystem Hierarchy Standard (FHS) und ist logisch aufgebaut.
Übersicht der wichtigsten Verzeichnisse
/
├── bin → Wichtige Systemprogramme
├── boot → Bootloader, Kernel
├── dev → Gerätedateien
├── etc → Konfigurationsdateien
├── home → Benutzerverzeichnisse
├── lib → Systembibliotheken
├── media → Wechselmedien
├── mnt → Temporäre Mounts
├── opt → Optionale Software
├── proc → Prozess-Informationen
├── root → Home des Root-Benutzers
├── run → Laufzeit-Daten
├── sbin → System-Admin-Programme
├── srv → Service-Daten
├── sys → System-Informationen
├── tmp → Temporäre Dateien
├── usr → Benutzerprogramme
└── var → Variable DatenDie wichtigsten Verzeichnisse im Detail
/ (Root)
Das Wurzelverzeichnis, von dem alle anderen Verzeichnisse abzweigen. Nicht zu verwechseln mit /root (Home des Root-Benutzers).
/etc - Konfiguration
Hier liegen alle Konfigurationsdateien:
/etc/
├── nginx/ → Nginx-Konfiguration
├── ssh/ → SSH-Konfiguration
├── mysql/ → MySQL/MariaDB-Konfiguration
├── passwd → Benutzerliste
├── shadow → Passwort-Hashes
├── hosts → Lokale DNS
├── fstab → Festplatten-Mounts
└── crontab → System-CronjobsTipp: Nach Änderungen hier meist Dienst neustarten: systemctl restart dienst
/var - Variable Daten
Daten, die sich häufig ändern:
/var/
├── log/ → Log-Dateien
├── www/ → Webserver-Daten (oft)
├── lib/mysql/ → MySQL-Datenbanken
├── mail/ → E-Mails
├── cache/ → Cache-Dateien
└── spool/ → WarteschlangenFür Server wichtig: Hier wachsen Logs - Plattenplatz überwachen!
/home - Benutzerverzeichnisse
Jeder Benutzer hat hier sein Verzeichnis:
/home/
├── marcel/ → Benutzer marcel
│ ├── .bashrc → Shell-Konfiguration
│ ├── .ssh/ → SSH-Keys
│ └── Dokumente/ → Eigene Dateien
└── anna/ → Benutzer anna/root - Root's Home
Das Home-Verzeichnis des Root-Benutzers. Liegt nicht unter /home, damit es auch ohne gemountete /home-Partition verfügbar ist.
/usr - Benutzerprogramme
Programme und Daten für alle Benutzer:
/usr/
├── bin/ → Ausführbare Programme
├── sbin/ → Admin-Programme
├── lib/ → Bibliotheken
├── local/ → Lokal installierte Software
├── share/ → Architektur-unabhängige Daten
└── src/ → Quellcode (optional)/bin und /sbin - Systemprogramme
Grundlegende Befehle, die auch ohne /usr verfügbar sein müssen:
/bin: ls, cp, mv, cat, bash.../sbin: mount, fdisk, ifconfig... (für Admins)
Hinweis: In modernen Systemen oft Symlinks zu /usr/bin und /usr/sbin.
/tmp - Temporäre Dateien
Temporäre Dateien, die beim Neustart gelöscht werden:
# Sicher, da regelmäßig geleert
mktemp /tmp/meinscript.XXXXXX/opt - Optionale Software
Drittanbieter-Software, die nicht aus den Repositories kommt:
/opt/
├── lampp/ → XAMPP
├── google/ → Google-Software
└── meinprogramm/ → Eigene Installation/dev - Gerätedateien
Repräsentiert Hardware als Dateien:
/dev/
├── sda → Erste Festplatte
├── sda1 → Erste Partition
├── null → "Schwarzes Loch"
├── random → Zufallszahlen
├── tty → Terminal
└── zero → Null-Bytes/proc und /sys - Virtuelle Dateisysteme
Keine echten Dateien, sondern Kernel-Informationen:
cat /proc/cpuinfo # CPU-Informationen
cat /proc/meminfo # Speicher-Informationen
cat /sys/class/net/eth0/address # MAC-Adresse/boot - Boot-Dateien
Linux-Kernel und Bootloader:
/boot/
├── vmlinuz-* → Linux-Kernel
├── initrd.img-* → Initial Ramdisk
└── grub/ → BootloaderVorsicht: Nicht löschen!
Für Server besonders wichtig
Webserver-Daten
Typisch:
/var/www/- Webroot (Debian/Ubuntu)/var/www/html/- Standard-Webroot
Konfiguration bearbeiten
# Nginx
/etc/nginx/nginx.conf
/etc/nginx/sites-available/
# Apache
/etc/apache2/apache2.conf
/etc/apache2/sites-available/
# MySQL/MariaDB
/etc/mysql/my.cnf
/etc/mysql/mariadb.conf.d/
# PHP
/etc/php/8.1/fpm/php.ini
# SSH
/etc/ssh/sshd_configLogs lesen
# System-Log
/var/log/syslog # Debian/Ubuntu
/var/log/messages # CentOS/RHEL
# Nginx
/var/log/nginx/access.log
/var/log/nginx/error.log
# Apache
/var/log/apache2/access.log
/var/log/apache2/error.log
# MySQL
/var/log/mysql/error.log
# SSH-Logins
/var/log/auth.logPfade finden
which - Programm-Pfad
which nginx
# /usr/sbin/nginxwhereis - Alle Orte
whereis nginx
# nginx: /usr/sbin/nginx /etc/nginx /usr/share/nginxlocate - Datei suchen
apt install mlocate
updatedb
locate nginx.confBest Practices
1. Konfiguration: Immer in /etc editieren 2. Webdaten: /var/www/ für Websites 3. Eigene Software: /opt/ oder /usr/local/ 4. Logs überwachen: /var/log/ regelmäßig prüfen 5. Backups: /etc/, /var/, /home/ sichern 6. Nicht anfassen: /boot/, /bin/, /sbin/, /lib/
Fazit
Die Linux-Verzeichnisstruktur ist logisch: /etc für Konfiguration, /var für Daten, /home für Benutzer, /var/log für Logs. Nach kurzer Eingewöhnung navigieren Sie schnell zum richtigen Ort. Für Server-Admins sind /etc und /var die wichtigsten Verzeichnisse.