Wer von Windows kommt, ist über den Linux- bzw. Unix-Verzeichnisbaum verwundert - um es mal positiv auszudrücken Das liegt weniger an den fehlenden Laufwerksbuchstaben als vielmehr daran, dass Dateien unter Linux nicht nach Programmen sondern nach deren Funktionen geordnet sind. Nun wird man einwenden können, dass es so nicht möglich ist einelne Pakete durch löschen ihrer Verzeichnisse wieder von der Festplatte zu entfernen. Pakete können aber mit einem PaketManager i.d.R. problemlos wieder deinstalliert werden und ausserdem funktioniert diese Methode auch unter Windows schon seit geraumer Zeit nicht Diese Sortierung nach Funktion hat den Vorteil, dass Dateien nur nach ihrem Namen in den entsprechenden Verzeichnisssen gesucht - und auch gefunden - werden können.
Der Aufbau des Verzeichisbaums erfüllt die folgenden Anforderungen bzw. ermöglicht es diese Forderungen in einer Installation zu erfüllen:
möglichst kleine Systempartition mit allen zur Reparatur des Systems wichtigen Programmen und Einstellungen -> auslagern von Anwendungen nach /usr
auslagern der Anwendungssoftware auf Netzlaufwerke (/usr im Netz und /usr/local lokal)
alle Anwendungsprogramme liegen direkt im Pfad des Benutzers (einige wenige bin/ Verzeichnisse) und müssen dort nicht einzeln eingetragen werden
Programme zur Systemverwaltung liegen in getrennten Verzeichnisssen und nur für den Administrator im Pfad (sbin)
fast der gesammte Verzeichnisbaum kann auch nur lesend verwendet werden, d.h. alles ausser /dev, /var, /home
die Systemkonfiguration ist möglichst konzentriert (/etc) und kann leicht gesichert werden
zentrale Speicherung von allen Userdaten in /home
Ein typischer VerzeichnisBaum eines Linux-Systems sieht folgendermaßen aus (Details siehe auch ["FHS"]):
- /
Das Wurzelverzeichnis - der Anfang aller Dinge
Wird auch als root-Verzeichnis bezeichnet und sollte nicht mit /root verwechselt werden.
- /bin
- Im Verzeichnis befinden sich ausführbare Programme für alle Benutzer. Wichtige Systembefehle wie einloggen, Arbeiten mit Dateien und Shells sind hier zu finden.
- /boot
Das Verzeichnis enthält die zum Booten des Systems notwendigen Dateien (z.B. ["Kernel"] und ["BootManager"]).
- /dev
- Das Verzeichnis enthält traditionell alle Gerätedateien des Systems.
- /etc
- Im Verzeichnis befinden sich Konfigurationsdateien und -Datenbanken, die von root angepasst werden können.
- /home
- Das Verzeichnis enthält die Homeverzeichnisse der Benutzer.
- /lib
- Das Verzeichnis enthält die Bibliotheken, die zum Übersetzen und Linken von ausführbaren Maschinenprogrammen benötigt werden.
- /lost+found
- Wenn nach einen Systemabsturz die Struktur des Dateisystems beschädigt worden ist, wird versucht das Dateisystem mit dem Kommando fsck (file system check) zu reparieren. Dabei kann es vorkommen, dass verlorene Dateien wiedergefunden werden. Diese Dateien werden von fsck im Verzeichnis /lost+found abgelegt. Dieses Verzeichniss gibt es nur auf einem EXT2/3 Dateisystem und wird auch nur von diesen benutzt.
- /mnt
- Dieses Verzeichnis ist normalerweise leer und dient als Einhängpunkt für Dateisysteme, die nur vorübergehend verfügbar sind.
- /opt
- Dieses Verzeichnis beinhaltet optionale Dateien und Programme. ["SuSE"] benutzt dieses Verzeichnis um große Softwarepackete wie ["KDE"] oder ["Mozilla"] zu installieren. Die meisten anderen Distributionen fassen dieses Verzeichnis nicht an.
- /proc
- Dateien, die keine sind (obwohl ja alles eine Datei ist ;-)), zum Beispiel Zustandsmeldungen des Systems und einzelner Prozesse - daher der Name.
- /sbin
- Das Verzeichnis enthält eine Reihe von Kommandos, die für die Konfiguration des Systems notwendig sind. Ihre Ausführung ist meistens Root vorbehalten.
- /tmp
- In diesem Verzeichnis, das für alle Benutzer frei beschreibbar ist, können Zwischendateien angelegt werden. Dieses Verzeichniss ist nach dem ["FHS"] nicht persistent, alle Dateien können beim booten gelöscht werden.
- /usr
Das /usr-Verzeichnis liegt bei vielen Konfigurationen auf einer gesonderten Festplatte oder Partition. Es enthält eine Reihe von Unterverzeichnissen, die weitere Anwenderprogramme, Systembefehle, Zusatzdateien und Subsysteme enthalten. Entgegen häufig geäußerter Meinung steht /usr nicht für "user" sondern für "Unix System Resources".
- /usr/share
- In diesem Verzeichnis liegen alle Dateien, die systemunabhängig sind. Dies können Dokumentationen sein, typischerweise auch die ["TeX"]-Distribution, es sind aber auch schon die einen oder anderen Bibliotheken einer Skriptsprache dort aufgetaucht.
- /usr/local
- Klassische Bedeutung: Nicht systemweit (zum Beispiel per NFS) freigegebene Dateien, sondern nur welche, die auf der lokalen Workstation installiert sind. Häufige Bedeutung: Der Teil der Systemverzeichnishierarchie, in dem die Distribution nichts ändert, also zum Beispiel aus dem Netz gezogene Programme
- /var
- Veränderliche Dateien hat man nach /var verlegt. Dadurch wird ermöglicht, den /usr-Dateibaum nur-lesbar in ein Netzwerk zu exportieren und zwischen mehreren UNIX-Systemen zu teilen.
- /var/spool
- Verzeichnis in dem der Druckerspooler, das Mailsystem und das Newssystem sowie andere Hintergrundprogramme ihre Zwischendateien ablegen.
- /var/tmp
- Ähnlich wie /tmp nur ist es nach ["FHS"] persistent, alle Dateien müssen einen Reboot überstehen