Linux-Verzeichnisstruktur nach FHS erklärt

Linux-Verzeichnisstruktur nach dem Filesystem Hierarchy Standard: wofür /etc, /usr, /var, /opt, /proc und /home da sind, wo Logs und Konfiguration liegen und welche Dateien wichtig sind. Durchsuchbar.

69 Einträge

Hauptverzeichnisse

/Wurzelverzeichnis, Ausgangspunkt aller Pfade
/binGrundlegende Befehle wie ls, cp, cat; auf vielen aktuellen Distributionen ein Link auf /usr/bin
/sbinBefehle zur Systemverwaltung wie fdisk, ip; oft ein Link auf /usr/sbin
/bootKernel, initramfs und Dateien des Bootloaders (etwa GRUB)
/devGerätedateien für Festplatten, Terminals und Pseudogeräte
/etcSystemweite Konfigurationsdateien, reiner Text
/homePersönliche Verzeichnisse der Benutzer, etwa /home/anna
/rootHome-Verzeichnis des Administrators root
/libBibliotheken für /bin und /sbin sowie Kernelmodule unter /lib/modules
/lib6464-Bit-Bibliotheken auf Systemen, die sie getrennt ablegen
/mediaEinhängepunkte für Wechseldatenträger wie USB-Sticks, oft /media/benutzer/name
/mntFür vorübergehend eingehängte Dateisysteme
/optZusätzliche Software-Pakete, die nicht vom Paketmanager der Distribution stammen
/srvDaten für Dienste dieses Systems, etwa Web- oder FTP-Inhalte
/tmpTemporäre Dateien, werden meist beim Neustart gelöscht
/procVirtuelles Dateisystem mit Informationen zu Prozessen und Kernel
/sysVirtuelles Dateisystem (sysfs) mit Geräten und Treibern
/runLaufzeitdaten seit dem letzten Start, etwa PID-Dateien und Sockets; liegt im Arbeitsspeicher

/usr und /var

/usrProgramme und Daten, die nur gelesen werden; der größte Teil des Systems
/usr/binDie meisten Benutzerprogramme
/usr/sbinProgramme für die Systemverwaltung
/usr/libBibliotheken der Programme in /usr/bin und /usr/sbin
/usr/localSelbst kompilierte oder lokal installierte Software, wird vom Paketmanager nicht angefasst
/usr/local/binProgramme der lokalen Installation, steht meist vor /usr/bin im PATH
/usr/shareArchitekturunabhängige Daten wie Symbole, Schriften, Dokumentation
/usr/share/manHandbuchseiten für den Befehl man
/usr/includeHeader-Dateien für C und C++
/usr/srcQuellcode, etwa Kernel-Header
/varVeränderliche Daten: Logs, Caches, Warteschlangen, Datenbanken
/var/logProtokolldateien des Systems und der Dienste
/var/log/syslogAllgemeines Systemprotokoll auf Debian und Ubuntu (Red Hat, Fedora: /var/log/messages)
/var/log/auth.logAnmeldungen und sudo auf Debian und Ubuntu (Red Hat, Fedora: /var/log/secure)
/var/libZustandsdaten von Programmen, etwa Datenbanken und Paketverwaltung
/var/cacheZwischenspeicher, die neu erzeugt werden können, etwa /var/cache/apt
/var/spoolWarteschlangen für Druckaufträge, Mail und cron
/var/tmpTemporäre Dateien, die einen Neustart überdauern sollen
/var/wwwÜbliches Verzeichnis für Webseiten bei Apache und nginx unter Debian (nicht Teil des FHS)

Wichtige Dateien in /etc

/etc/passwdBenutzerkonten: Name, UID, Gruppe, Home, Shell (ohne Passwörter)
/etc/shadowPasswort-Hashes der Benutzer, nur für root lesbar
/etc/groupGruppen und ihre Mitglieder
/etc/sudoersRegeln für sudo, nur mit visudo bearbeiten
/etc/hostsFeste Zuordnung von Namen zu IP-Adressen
/etc/hostnameName des Rechners
/etc/resolv.confDNS-Server; oft von systemd-resolved oder NetworkManager verwaltet
/etc/fstabDateisysteme, die beim Start eingehängt werden
/etc/os-releaseName und Version der Distribution
/etc/ssh/sshd_configKonfiguration des SSH-Servers
/etc/crontabSystemweite cron-Aufträge (dazu /etc/cron.d/)
/etc/systemd/systemEigene und angepasste systemd-Units
/etc/apt/sources.listPaketquellen unter Debian und Ubuntu (neuere Versionen auch /etc/apt/sources.list.d/)
/etc/environmentSystemweite Umgebungsvariablen
/etc/profileStartskript für Login-Shells aller Benutzer

Virtuelle Dateien und Geräte

/proc/cpuinfoProzessor, Kerne und Fähigkeiten
/proc/meminfoArbeitsspeicher und Auslagerung
/proc/1234Informationen zum Prozess mit der PID 1234, etwa cmdline und status
/proc/sysKernel-Parameter, änderbar mit sysctl
/dev/nullVerwirft alles, was hineingeschrieben wird
/dev/zeroLiefert endlos Nullbytes
/dev/urandomLiefert Zufallsbytes aus dem Kernel
/dev/sdaErste SATA- oder SCSI-Festplatte, Partitionen /dev/sda1 usw.
/dev/nvme0n1Erste NVMe-SSD, Partitionen /dev/nvme0n1p1 usw.
/sys/class/netNetzwerkschnittstellen des Systems

Im Home-Verzeichnis

~/.bashrcEinstellungen für interaktive Bash-Sitzungen
~/.profileStartskript der Login-Shell (bei Bash auch ~/.bash_profile)
~/.sshSSH-Schlüssel, authorized_keys, known_hosts und config
~/.configEinstellungen von Programmen nach XDG-Standard
~/.local/shareProgrammdaten des Benutzers nach XDG-Standard
~/.local/binEigene Programme und Skripte des Benutzers
~/.cacheZwischenspeicher, kann gelöscht werden

Alles läuft in Ihrem Browser. Eingaben verlassen Ihr Gerät nicht.

Filesystem Hierarchy Standard kurz erklärt

Die Linux-Verzeichnisstruktur folgt weitgehend dem Filesystem Hierarchy Standard (FHS) in Version 3.0. Diese Übersicht erklärt 69 Linux Verzeichnisse und wichtige Dateien: von den Hauptverzeichnissen unter / über /usr und /var bis zu Konfigurationsdateien in /etc und virtuellen Dateien in /proc und /dev. Suchen Sie nach einem Pfad oder einer Aufgabe, etwa „log“ oder „Passwort“, und kopieren Sie den Pfad.

Die Grundidee des FHS: Programme und unveränderliche Daten liegen unter /usr, Konfiguration unter /etc, veränderliche Daten wie Logs und Datenbanken unter /var und persönliche Dateien unter /home. Bei Problemen ist /var/log meist die erste Anlaufstelle; auf Systemen mit systemd zeigt zusätzlich journalctl die Protokolle. Viele aktuelle Distributionen haben /bin, /sbin und /lib mit ihren Gegenstücken unter /usr zusammengelegt (usrmerge), die alten Pfade bleiben als Verweise erhalten.

Nicht jede Distribution hält sich in allen Punkten an den Standard. Debian und Ubuntu schreiben das Systemprotokoll nach /var/log/syslog, Red Hat und Fedora nach /var/log/messages; /var/www ist üblich, aber nicht Teil des FHS. Passende Befehle zum Arbeiten mit diesen Verzeichnissen finden Sie in den Bash-Befehlen.

Anleitung: Linux-Verzeichnisstruktur in 4 Schritten

  1. Im Suchfeld einen Pfad oder Begriff eingeben, etwa „/etc/fstab“, „Log“ oder „SSH“.
  2. Über „Gruppe“ die Liste auf Hauptverzeichnisse, /usr und /var, wichtige Dateien in /etc, virtuelle Dateien oder das Home-Verzeichnis eingrenzen.
  3. Die Erklärung zum Verzeichnis lesen, bei Logs auch den Hinweis auf Unterschiede zwischen Debian und Red Hat.
  4. Den Pfad mit „Kopieren“ übernehmen.

Typische Anwendungsfälle

  • Nachsehen, wo auf einem Server Konfigurationsdateien, Logs oder Webseiten liegen.
  • Für Linux-Einsteiger klären, wofür /opt, /usr/local oder /var/lib gedacht sind.
  • Entscheiden, wohin selbst installierte Programme oder eigene Skripte gehören.
Fragen

Häufige Fragen

Was ist der Filesystem Hierarchy Standard?

Der FHS legt fest, welche Verzeichnisse ein Linux-System hat und was hineingehört, etwa Konfiguration nach /etc und Logs nach /var/log. Die aktuelle Version 3.0 wird von der Linux Foundation gepflegt; die meisten Distributionen folgen ihr weitgehend.

Was ist der Unterschied zwischen /usr/bin und /usr/local/bin?

In /usr/bin installiert der Paketmanager der Distribution. /usr/local/bin ist für Programme, die Sie selbst kompilieren oder von Hand installieren; der Paketmanager lässt es unangetastet.

Wo finde ich die Logdateien unter Linux?

Klassisch in /var/log, etwa /var/log/syslog (Debian, Ubuntu) oder /var/log/messages (Red Hat, Fedora). Auf Systemen mit systemd liegen viele Protokolle zusätzlich im Journal und werden mit journalctl angezeigt.

Wofür ist /opt gedacht?

Für zusätzliche Softwarepakete, die als Ganzes in einem eigenen Unterverzeichnis liegen, etwa /opt/firma/programm. Typisch für Software, die nicht aus den Paketquellen der Distribution kommt.

Warum ist /bin nur ein Link auf /usr/bin?

Viele Distributionen haben /bin, /sbin und /lib mit /usr zusammengelegt (usrmerge). Die alten Pfade bleiben als symbolische Links erhalten, damit Skripte wie #!/bin/sh weiter funktionieren.

Wo werden Programme unter Linux installiert?

Programme aus dem Paketmanager landen meist in /usr/bin, ihre Bibliotheken in /usr/lib und Daten in /usr/share. Selbst kompilierte Software gehört nach /usr/local, eigenständige Pakete von Drittanbietern oft nach /opt.

Was ist der Unterschied zwischen /tmp und /var/tmp?

/tmp ist für kurzlebige Dateien gedacht und wird meist beim Neustart geleert. /var/tmp bleibt über einen Neustart hinweg erhalten und eignet sich für temporäre Dateien, die länger gebraucht werden.

Weitere Werkzeuge

Das könnte auch helfen

Alle 358 Werkzeuge