Dateisystemaufbau
Unter Linux haben viele Verzeichnisse (dank der UNIX-Historie und dem Filesystem Hierarchy Standard) eine fest definierte Funktion. Das erleichert die Orientierung und Distributoren/Softwareentwickler können standardkonforme Pakete erstellen.
Links
Grundlegende Verzeichnisse
Wenn „tree“ installiert ist, kann man sich eine Übersicht im Textmodus anzeigen lassen
tree / -L 1
Mountpoint | Ablageort für … |
---|---|
/bin | enthält Programme welche beim booten benötigt werden (systemweite programme). |
/boot | Verzeichnis welches die (den) Linuxkernel enthalten, werden beim booten gestartet. Außerdem liegen hier die Konfigurationsdateien des Bootmanagers Grub im Verzeichnis /boot/grub . |
/dev | Enthält Gerätedateien (Gerätenummern und Zuordnungen (z.B. /dev/hda1 usw.). Das dev-verzeichnis wird bei jedem Start durch udev in einem eigenen Dateisystem neu erstellt. |
/etc | Enthält Konfigurationsdateien. Diese Konfigurationsdateien gelten Systemweit. Benutzerspezifische Konfigurationsdateien befinden sich im Heimatverzeichnis des jeweiligen Benutzers. |
/home | Enthält die Heimatverzeichnisse der Benutzer. |
/initrd | initrd ist ein temporäres Dateisystem, das vom Linux-Kernel während des Bootvorgangs verwendet wird. |
/lib | enthält Systembibliotheken welche von Programmen in /bin oder /sbin benötigt werden. Außerdem auch Kernelmodule. |
/lost+found | hier werden nach Dateisystemchecks (gefundene) verlorene Zuordnungseinheiten gespeichert. |
/media bzw. manchmal /mnt, letzteres ist für temporäre mount gedacht) | Diese beiden Verzeichnisse enthalten Mountpoints für zusätzliche Datenträger, wie etwa CD-Rom oder USB-Sticks. Das ältere Verzeichnis /mnt wird dabei auf den meisten Distributionen durch die Alternative /media verdrängt. Bei den meisten Distributionen werden hier externe Datenträger eingehangen. |
/opt | In diesem Verzeichnis ist optionale Anwendungssoftware enthalten. Meist handelt es sich um größere Programmpakete, wie z. B. OpenOffice.org oder KDE. Nicht alle Distributionen verwenden dieses Verzeichnis. |
/proc und /sys | Die darin enthaltenen Dateien existieren nicht wirklich auf der Festplatte, sondern werden beim booten mit Dateien gefüllt, die Informationen über Prozesse, angeschlossene Hardware und Kerneleinstellungen wie Stromsparmechanismen liefern. Zum /proc-Dateisystem siehe unten. |
/root | Ist das Heimatverzeichnis des Benutzers root. |
/sbin | enthält Programme welche beim booten benötigt werden, aber nur solche, welche nur von root benutzt werden können. |
/srv | Verzeichnis für Daten der Serverdienste (nicht überall vorhanden) |
/tmp | Ordner für temporäre Dateien, ist für alle Benutzer des Systems schreibbar. Dennoch kann jeder Benutzer nur seine Dateien löschen, da das „Sticky Bit“ gesetzt ist. |
/usr | Enthält die Mehrzahl der Anwendungsprogramme, inklusive ihrer Manpages und Dokumentation. Dieses Unterverzeichnis besitzt selber Unterverzeichnisse wie /usr/bin, /usr/sbin, /usr/lib, welche den obigen /bin, /sbin und /lib-Verzeichnissen entsprechen. Zusätzlich auch noch /usr/share, welches zusätzliche Dateien zu Programmen enthält (beispielsweise Übersetzungsdateien oder grafische Icons), sowie /usr/local, in welchen standardmäßig selbstkompilierte Programme landen. |
/var | Variable Daten, wie z. B. Mailspool oder Druckerspooldateien oder die Logdateien. Logdateien liegen in /var/log. Auch manche Serverdienste legen ihre Datendateien hier ab (z. B. Datenbankdateien oder Emails eines Mailservers). |
Der Standardsuchpfad (Variable PATH) enthält meist die Verzeichnisse
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
(Trennung durch Doppeltpunkt).
Dateien (bzw. symbolische Links) im Wurzelverzeichnis „/“ | ||
---|---|---|
Name | symbolischer Link auf | Zweck |
initrd.img | → /boot/initrd.img-2.6.20-16-generic | enthält die („initial ramdisk“, siehe initrd) also Treiber etc. die zum booten gebraucht werden. |
initrd.img.old | → /boot/initrd.img-2.6.20-16-generic | Hier wird die alte „initial ramdisk“ mit vmlinuz.old referenziert, um ihn bei Problemen mit dem neuen Kernel zu nutzen. |
vmlinuz | → /boot/vmlinuz-2.6.20-16-generic | Verweis auf das aktuelle Kernelimage |
vmlinuz.old | → /boot/vmlinuz-2.6.20-16-generic | Hier wird der alte Kernel mit vmlinuz.old referenziert, um ihn bei Problemen mit dem neuen Kernel zu nutzen. |
/boot
In boot werden die Dateien des Bootmanagers installiert, ebenso wie die initrd (falls benutzt) und das (die) Kernel-Image(s).
/proc
Das virtuelle Proc-Dateisystem hat eine spezielle Aufgabe: Es stellt Einstellungen und Informationen über das System bereit die zur Laufzeit verändert bzw. angezeigt werden können.
Eine Liste von Einstellungen gibt der Befehl „sysctl -a
“, einzelne Parameter lassen sich zur Laufzeit mit „sysctl -w Einstellung
“ und permanent in in /etc/sysctl.conf
setzen.
Siehe auch proc(5) - Linux man page und Das Proc File System verstehen.
proc-Pfad | enthält/bewirkt was? | Wert dauerhaft in /etc/sysctl.conf setzen |
---|---|---|
echo 1 > /proc/sys/net/ipv4/ip_forward | IP-Routing einschalten (bzw.echo 1 >/proc/sys/net/ipv6/conf/all/forwarding bei IPv6) | net.ipv4.ip_forward=1 bzw. bei IPv6: net.ipv6.conf.all.forwarding=1 |
cat /proc/6410/sched | Beispiel: Informationen zum Prozess 6410 (scheduling) | |
cat /proc/cpuinfo oder lscpu | Informationen zu Prozessor (CPU) | |
/proc/ioports | Informationen zur I/O-Adressen | |
cat /proc/meminfo | Informationen zur Speicherbelegung | |
cat /proc/mounts /proc/partitions | Informationen über gemountete Datenträger und Partitionen anzeigen | |
cat /proc/scsi/scsi | zeigt die aktiven SCSI-Geräte an. Damit kann man auch neue per hotplug entfernen oder hinzufügen: echo "scsi scan-new-devices" > /proc/scsi/scsi Siehe auch: SCSI-Programmierung | |
cat /proc/sys/kernel/random/uuid | eine zufällige UUID wird angezeigt. | |
cat /proc/sys/vm/swappiness | Beeinflusst das Verhalten Programmteile im Arbeitsspeicher auf Festplatte auszulagern gegenüber möglichst viel Cache anzulegen. Wertebereich ist von 0 (nicht auslagern sondern erst alten Cache zu löschen) bis 100 (viel auslagern, möglichst viel Cache anlegen). Standardwert ist 60, Server deren Antwortzeit kritisch sind (Datenbankserver, …) sollten eher unter 50 gehen, Desktop sind über 50 durchaus gut bedient. | vm.swappiness=30 |
/usr
Verzeichnis | Bedeutung |
---|---|
/usr/bin | von allen Benutzern ausführbare Dateien |
/usr/lib | Bibliotheken, die für die Ausführung zusätzlich installierter Pakete notwendig sind |
/usr/sbin | ausführbare Dateien für den Superuser |
/usr/share | Gemeinsame Dateien installierter Pakete |
/usr/local/… | Dateien manuell eingerichteter Programmpakete (bin), Bibliotheken (lib), für den Superuser (sbin) und gemeinsame Dateien (share) |
/var
Verzeichnis | Bedeutung |
---|---|
/var/lib | variable Dateien diverser auf dem Server laufender Applikationen |
/var/lib/mysql | Hier finden sich die von MySQL verwalteten Datenbanken in jeweils eigenen Unterverzeichnissen. |
/var/lib/named | beinhaltet die Informationen von Bind (DNS-Server) |
/var/log | globales Verzeichnis für allgemeine Protokolldateien |
/var/spool/cron/crontabs | crontabs der Benutzer (crontab -l ) |