Abbildung: Die Linux-Verzeichnisstruktur (Ausschnitt)
Bei der Unmenge von Dateien in Unix-Systemen (auf meinem System sind es 106839!) ist eine hierarchische Struktur unabdingbar. Lange Zeit hat jedes Unix-Derivat seine eigenen Vorstellungen vom Aufbau seiner Dateiverwaltung mitgebracht, aber unterdessen ist man sich mehr oder weniger einig geworden und erarbeitete den Filesystem Hierarchie Standard, der wichtige Strukturen definiert. Die meisten Distributionen folgen diesen Richtlinien, wobei Abweichungen oft durch unterschiedliche Auslegung des Standards begründet werden.
Neben der Beschreibung der vorgesehenen Verwendung jedes Verzeichnisses, werden auch konkrete Kommandos genannt, die mindestens in diesen Verzeichnissen vorhanden sein müssen. Des Weiteren finden systemspezifische Vorgaben und optionale Komponenten Erwähnung.
Sobald der Kernel aktiv ist, lädt er als erstes das Root-Filesystem, in dem alle für die Aufgaben des Kernels notwendigen Programme und Konfigurationsdateien angesiedelt sein müssen.
Zu den Programmen gehören:
Wenden wir uns also zunächst dem Inhalt des Wurzelverzeichnisses zu. Verzeichnisse und Dateien, die als optionale Komponenten im Standard enthalten sind, werden farblich dargestellt.
/bin |
Die wichtigsten Kommandos, um mit dem System arbeiten zu können, findet man hier. Sie dürfen
von allen Nutzern ausgeführt werden. Zu den Kommandos gehören
cat , chgr , chmod , chown ,
cp , date , dd , df , dmesg ,
echo , ed , false , kill , ln ,
login , ls , mkdir , mknod ,
more , mount , mv , ps ,
pwd , rm , rmdir , sed ,
setserial , sh , stty , su ,
sync , true , umount , uname
(sh ist meist ein Link auf bash ).
|
||||||||||||||||||||||||||||
/boot |
Hier findet man die statischen Dateien des Bootmanagers und die Kernel. (In früheren Linux-Versionen wurden der "Haupt"-Kernel im Root-Verzeichnis installiert und nur die optionalen Kernel in diesem Verzeichnis.) | ||||||||||||||||||||||||||||
/dev |
In diesem Verzeichnis stehen die Gerätedateien (Devices), die
die gesamte Hardware beschreiben (Festplatte, Floppy, RAM...), sowie einige
Devices mit speziellen Aufgaben. Drei Informationen sind für jedes
Device relevant:
Art des Zugriffs:
Hauptgerätenummer (major device number):
Nebengerätenummer (minor device number):
Ein etwas ungewöhnliches Device ist
Den Mechanismus erläutert der Abschnitt Ein/Ausgabe-Umleitung.
|
||||||||||||||||||||||||||||
/etc |
Enthält alle lokalen Konfigurationsdateien (Tastatur, X, Netzwerk...) | ||||||||||||||||||||||||||||
/home |
Alle Heimatverzeichnisse der Nutzer findet man hier. Nach dem Login landet jeder Benutzer (i.d.R.) in seinem Home. Heimatverzeichnisse können vom Systemverwalter auch an anderer Stelle angesiedelt werden. | ||||||||||||||||||||||||||||
/lib |
Die beim Systemstart benötigten Bibliotheken stehen hier. Ebenso liegen
die Kernelmodule in einem eigenen Unterverzeichnis unterhalb von /lib .
|
||||||||||||||||||||||||||||
/mnt |
Mountpunkt für temporäre Partitionen | ||||||||||||||||||||||||||||
/opt |
Software, die nicht zum üblichen Installationsumfang von Unix-Systemen gehören, werden oft unter diesem Zweig installiert. So werden nahezu alle kommerziellen Softwarepakete hier eingerichtet; auch die Programme zur KDE befinden sich hier. | ||||||||||||||||||||||||||||
/root |
Heimatverzeichnis des Administrators. In realen Unix-Installationen werden die Heimatverzeichnisse aller Nutzer oft auf einem Server gehalten. Bei einem Ausfall eines solchen Servers sollte aber zumindest Root in der Lage sein, vernünftig mit dem System zu arbeiten. | ||||||||||||||||||||||||||||
/sbin |
Wichtige System-Programme (beim Booten benötigt; Ausführung erfordert Root-Rechte) | ||||||||||||||||||||||||||||
/tmp |
Temporäre Dateien können hier abgelegt werden, jeder Nutzer ist dazu berechtigt. | ||||||||||||||||||||||||||||
/usr |
Zweite Hierarchie | ||||||||||||||||||||||||||||
/var |
Variable Daten |
Der Filesystem Hierarchie Standard bezeichnet die Verzeichnisse unter /usr
(user system ressources) als "zweite Hierarchie". Schauen wir uns an,
was dort stehen sollte:
/usr
X11R6 |
X Window System (Version 11, Release 6) |
X386 |
X Window System (Version 11, Release 5 auf x86er) |
bin |
Die meisten Nutzerprogramme |
games |
Spiele und Lernprogramme |
include |
Headerdateien für C-Programme |
lib |
Allgemeine Bibliotheken (außer X11) |
local |
Lokale Hierarchie. Hier hat der Administrator die Möglichkeit, Nicht-Standard-Pakete einzuspielen. |
sbin |
(weniger wichtige) Systemprogramme |
share |
Architektur-abhängige Dateien |
src |
Quelldateien zu den Paketen |
Einige (symbolische) Links sind ebenso vorgeschrieben:
/usr
/usr/spool |
Link auf /var/spool
|
/usr/tmp |
Link auf /var/tmp
|
/usr/spool/lock |
Link auf /var/lock
|
Es gibt eine Menge Daten, die permanenter Veränderung unterliegen oder nur kurze Zeit existieren. Protokollierungen
fallen ebenso in diese Kategorie, wie auch Mails, zu druckende Dateien, News, ... Insbesondere auf Servern sollte
dem Verzeichnis /var
eine eigene Partition gegönnt werden.
/var
account |
Prozessnutzungsprotokoll (falls unterstützt) |
cache |
Zwischenspeicher von Programmen |
crash |
Speicherauszug bei Systemabsturz (falls unterstützt) |
games |
Variable Spieledaten |
lock |
Sperren (Dateien, Geräte, etc.) |
log |
Protokolle über Systemvorgänge |
mail |
Mailboxen der Nutzer |
opt |
Variable Daten der optionalen Programme |
run |
Dateien zu laufenden Prozessen |
spool |
Von Anwendungen gespoolte Daten |
state |
Variable Status Informationen |
tmp |
Temporäre Dateien, die zwischen Reboots erhalten bleiben |
yp |
Dateien des Network Information Systems |
Speziell für Linux-Systeme definiert der Standard Weiteres:
allgemein |
Der Name des Standard-Kernels ist vmlinux oder vmlinuz
|
/dev |
Enthält nur die im Dokument ''Linux Allocated Devices'' beschriebenen Links (sonst wie oben) |
/proc |
Enthält Kernel- und Prozessinformationen in einem virtuellen Dateisystem |
/sbin |
Enthält zusätzlich Routinen zum ext2 -Dateisystem und lilo
|
/usr/src |
Enthält zusätzlich die Kernelquellen |
Des Weiteren werden im Standard Daten nach folgenden Kriterien unterschieden: