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 Daten

Die 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-Cronjobs

Tipp: 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/          → Warteschlangen

Fü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/           → Bootloader

Vorsicht: 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_config

Logs 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.log

Pfade finden

which - Programm-Pfad

which nginx
# /usr/sbin/nginx

whereis - Alle Orte

whereis nginx
# nginx: /usr/sbin/nginx /etc/nginx /usr/share/nginx

locate - Datei suchen

apt install mlocate
updatedb
locate nginx.conf

Best 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.