Debian: Linux Verzeichnisbaum erklärt
Linux und damit auch Debian kommt, im Gegensatz zu Windows nicht mit verschiedenen Datenträgern (C:/, D:/ usw.) daher, sondern ist in viele Ordner und Unterordner strukturiert. Der Linux-Verzeichnisbaum ist dabei keineswegs willkürlich gewählt, sondern bietet eine durchdachte Struktur. Jedoch sind die Namen der Ordner nicht wirklich sprechend, da sie häufig (in der Softwareentwicklung übliche) Abkürzungen verwenden. Daher werde ich im Folgenden die Bedeutungen der Hauptverzeichnisse und die wichtigsten Unterverzeichnisse, die es unter Debian gibt, erläutern.
/
Das Wurzelverzeichnis oder Stammverzeichnis genannte Verzeichnis ist die höchste Ebene der Verzeichnisstruktur. In diesem befinden sich alle Verzeichnisstrukturen des Betriebssystems einschließlich weiterer Speichermedien.
/bin – stands for binaries (dt. Binärdateien/Programme)
Die wichtigsten Kommandos (Programme) wie cp, echo, mkdir oder rm befinden sich in diesem Verzeichnis. Sie haben alle gemeinsam, dass sie Binärdateien sind und von allen Benutzern ausgeführt werden dürfen.
/boot
Dateien, die zum Starten des Betriebssystems notwendig sind, finden sich in diesem Verzeichnis. Dazu zählt der Linux-Kernel, der Bootloader und die Initial Ramdisk.
/dev – stands for devices (dt. Geräte)
Hier befinden sich Gerätedateien zur Ansteuerung von Hardware wie Festplatten, RAM, Bildschirm oder auch der Maus. Die Dateien stellen die Existenz der Treiber eines Gerätes dar und können auch leere Dateihülsen sein. Andere bieten konkrete Funktionalität an. Für jedes Hardwareteil gibt es vorsorglich einen solchen Eintrittspunkt, auch wenn dieser nicht zwingend benötigt wird.
/etc – stands for et cetera (dt. „alles übrige“)
Dieser Ordner beinhaltet die meisten systemweit gültigen Konfigurationsdateien und stellt damit den zentralen Anlaufpunkt zum Verändern von Einstellungen dar.
/etc/init.d – stands for initiate (dt. initiieren), .d typisch für Konfigurationen
Dieses Unterverzeichnis beinhaltet Start-/Stop-Skripte für Anwendungen. Die Scripte können manuell oder über Runlevel Einträge bei dem Systemstart ausgeführt werden.
/home
In diesem Verzeichnis befinden sich standardmäßig die Heimatverzeichnisse der Nutzer. In diesen Ordnern können Benutzer ihre persönlichen Dateien und je nach Anwendung auch benutzerspezifische Konfigurationen ablegen.
/lib – stands for libraries (dt. Bibliotheken)
Hier sind Funktionsbibliotheken des Systems wieder zu finden. Dies sind Bibliotheken, die bei dem Systemstart benötigt werden und, wenn der Kernel modular aufgebaut ist, die entsprechenden Kernel-Module.
/lib64
Dieser Ordner kann, muss jedoch nicht existieren. Er beinhaltet häufig Verknüpfungen für 64-Bit Anwendungen zu /lib.
/lost+found
In ext2, ext3 und ext4 Dateisystemen gibt es zusätzlich diesen Ordner. Er beinhaltet Dateien auf der Festplatte, die in der Verzeichnisstruktur nicht mehr zugeordnet werden können. Ursache für solche Fehler können System-/Programmabstürze oder Hardware-Fehler sein. Dieser Ordner sollte im Idealfall immer leer sei.
/media
In diesem Verzeichnis finden sich Eingangspunkte (Mountpoints) für Wechseldatenträger (CD/DVD, USB-Speicher usw.) wieder.
/mnt – stands for mount (eingehängt)
Dieser Ordner wird verwendet um Mountpoints (Eingangspunkte) für Dateisysteme zu definieren (CD/DVD, andere Systempartitionen, Samba Shares usw.). Praktisch gibt es keinen wirklichen Unterschied zu /media, da Distributionen wie Debian die ursprünglichen Zwecke vermischen.
/opt – stands for optional
Hier werden alle Programme abgelegt, die nicht im Paketformat vorliegen (folglich händisch installiert und nicht durch Paketmanager verwaltet), wie auch viele kommerzielle Softwarepakete.
/proc – stands for processes (laufende Programme);
Dieses Verzeichnis stellt die Schnittstelle zum Kernel dar und ist ein eigenes virtuelles Dateisystem. Es enthält System- und Kernelinformationen wie auch Informationen über laufende Prozesse.
/root
Das Home-Verzeichnis des Root-Benutzers ist in einem extra Ordner verortet. Dies hat den Zweck, dass bei dezentralen Benutzerverwaltungen im Falle eines Serverausfalls der Root-Benutzer weiterhin vernünftig arbeiten kann.
/run
Dieser Ordner beherbergt Dateien von laufenden Prozessen. In diesem Ordner finden sich die meisten PID-Files (Process identifier).
/sbin – stands for system binaries (dt. Systemprogramme)
In diesem Ordner findet man Programm Binärdateien wieder, die Root-Rechte zum Ausführen benötigen.
/selinux – stands for Security-Enhanced Linux (dt. sicherheitsverbessertes Linux)
Dieses Verzeichnis existiert nicht zwangsläufig, sondern nur wenn der Kernel des Betriebssystems SELinux unterstützt. Es ist ein virtuelles Dateisystem und beinhaltet für gewöhnlich Kommandos, die nur über den Kernel aufgerufen werden.
/srv – stands for services (dt. Dienste)
Hier finden sich, je nach Betriebssystemversion verfügbar, variable Dateien (z.B. Logfiles oder Mails) wieder, wie in dem Verzeichnis /var. Die Rolle dieses Verzeichnisses ist nicht einwandfrei geklärt und wird daher in vielen Distributionen nicht verwendet.
/sys – stands for system
Dieser Ordner besteht seit Kernel 2.6 und ist in der Funktion vergleichbar mit dem Ordner /proc.
/tmp – stands for temporary (temporär)
In diesem Verzeichnis können temporäre Daten abgelegt werden. Zu beachten ist, dass dieses Verzeichnis nach einem Neustart in der Regel bereinigt wird.
/usr – stands for unix system resources (dt. UNIX Systemressourcen)
Programme für die Benutzer sind in diesem Ordner zu finden. Dabei enthält dieser Ordner weitere Unterordner, die sich thematisch gliedern.
/usr/local
Als wichtiges Unterverzeichnis von /usr ist dieses Verzeichnis zu nennen. In diesem können Benutzer ihre eigenen Programme installieren. Das Verzeichnis ist wie /usr thematisch in Unterordner unterteilt.
/var – stands for variable (dt. variabel)
In diesem Ordner sind variable Daten wie Logfiles, Mails oder auch Druckerspooler verortet. Es wird primär verwendet, auch nach der Einführung von /srv.
/var/log – stands for log files (dt. Protokolldateien)
Hier sind die Logfiles der meisten Programme zu finden. Durch die, in diesen Dateien enthaltenen, Informationen ist es häufig möglich, Probleme zu identifizieren.
/var/run
Dieses Verzeichnis ist in der Regel eine Verknüpfung zu /run und stellt den Standardpfad für PID-Files (Process identifier) dar.
/var/www
Dieser Ordner ist nicht standardmäßig in der Debian Distribution angelegt, sollte aber dennoch Erwähnung finden. Er gilt als Standardordner für die Inhalte eines Webservers (z.B. Apache2 für PHP Scripts und Co.).
Wenn ihr euch diese Übersicht nun zu Gemüte geführt habt, solltet ihr die Grundstruktur von Debian bzw. den meisten Linux Distributionen kennen. Viele dieser Ordner gliedern sich in diverse weitere Unterordner, wodurch eine Struktur entsteht, die klare Trennungen der jeweiligen Dateiarten verspricht.
Auf weitere Unterverzeichnisse von /usr und /var werde ich in den kommenden Wochen in eigenen Beiträgen noch einmal genauer eingehen, da mir diese als wichtig zum Verständnis für Linux Systemen erscheinen.
9 Kommentare. Hinterlasse eine Antwort
Sehr schön zusammen gefasst! Für alle neu Einsteiger zu Empfehlen.
DANKE sehr schön
Schöner Beitrag!
Ich habe aber noch eine kleine Ergänzung: Bei einer externen Festplatte mit ext4-Dateisystem existiert bei mir auch ein lost+found-Ordner.
Danke. Habe vergessen, dass es ja auch ext4 gibt 😉 Habs ergänzt.
Wenn man unter Linux Ubuntu einen USB-Stick oder USB-Festplatte ansteckt, erstellt er auch ein lost+found Ordner. Wird bei mir angelegt und ist immer lustig ihn unter Win zu löschen wegen Dateiberechtigungen…
In diesem Beitrag geht es um die Strukturen in Debian. Trotzdem Ubuntu ein Abkömmling von Debian ist sind doch einige Dinge inzwischen anders.
[…] wir uns schon die Hauptstruktur des Verzeichnisbaumes von Debian/Linux angesehen haben, möchte ich heute auf die Struktur innerhalb des Verzeichnisses /usr eingehen, da diese meines […]
[…] verstehen wie dieses funktioniert und ggf. Fehler zu finden. Wir sahen uns in diesem Blog bereits die Hauptstruktur des Verzeichnisbaumes von Debian/Linux an und auch die Unterverzeichnisse des Verzeichnisses /usr erläuterte ich. Die in dem Verzeichnis […]
Guter Artikel, vielen Dank!