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 einzelne 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 außerdem funktioniert diese Methode auch unter Windows schon seit geraumer Zeit nicht. Die Sortierung nach Funktion hat den Vorteil, dass Dateien nur nach ihrem Namen in den entsprechenden Verzeichnissen gesucht - und auch gefunden - werden können.
Der Aufbau des Verzeichnisbaums 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 Verzeichnissen und nur für den Administrator im Pfad (sbin)
fast der gesammte Verzeichnisbaum kann auch nur lesend verwendet werden, d.h. alles außer /dev, /var, /home
die Systemkonfiguration ist möglichst konzentriert (/etc) und kann leicht gesichert werden
zentrale Speicherung aller Benutzerdaten 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). /boot wird öfters auf eine eigene Partition gelegt, die die besonderen Bedingungen einer bootbaren Partition erfüllt (Primäre Partition, 500MB- , 2GB-, 32GB-Grenze ... und auf Nicht-x86-Architekturen auch noch wildere Dinge).
- /dev
Das Verzeichnis enthält traditionell alle Gerätedateien des Systems. Mittlerweile häufig ein "virtuelles" Dateisystem (devfs).
- /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 Programmen benötigt werden.
- /lib/modules/
- Enthält in Unterverzeichnissen die Module der installierten Kernel.
- /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 Verzeichnis 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 Softwarepakete wie KDE oder Mozilla zu installieren. Die meisten anderen Distributionen fassen dieses Verzeichnis nicht an.
- /proc
- "Virtuelles" Dateisystem, enthält 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 Verzeichnis 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, z.B. Dokumentationen (/usr/share/doc/) oder die einen oder anderen Bibliotheken einer Skriptsprache.
- /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 und kompilierte 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 Mail- und das News-System sowie andere Hintergrundprogramme ihre Zwischendateien ablegen.
- /var/tmp
Ähnlich wie /tmp, nur ist es nach FHS persistent, d.h. alle Dateien müssen einen Reboot überstehen
Fragen
Frage: Speicherplatzbelegung ermitteln? Wie kann ich für die einzelnen Partionen eine (grafische?) Gesamtübersicht ermitteln? Vielleicht ähnlich komfortabel und umfassend wie mit dem Windows-Programm Treesize (http://www.jam-software.com/freeware/index.shtml)...? Könnte mir da jemand weiterhelfen? -Danke!
- Da gibt es im wesentlichen vier Programme:
TreeSize for Unix ( http://treesize.sourceforge.net ) ist einen Klon von TreeSize for Windows.
df (Disk Free) zeigt die gemounteten Partitionen und den verfügbaren Speicherplatz an. Mit -h ist die Ausgabe für Menschen besser lesbar.
du gibt an wieviel Platz eine Datei oder ein Verzeichnis verbraucht. -s für Summe und -h kennen wir ja schon...
Graphisch hilft dir vielleicht kdirstat oder kdf weiter.
siehe auch DateiSystem, LinuxPartitionierung