Filesystem Hierarchy Standard (FHS)
Das Dateisystem ist baumartig strukturiert und wird beginnend mit dem
sogenannten Root-Verzeichnis (/
) beginnend dargestellt. /root
ist das Home-Verzeichnis des
Benutzers root.
Der Filesystem Hierarchy Standard (FHS) hat sich historisch aus frühen UNIX-Versionen wie der Berkeley Software Distribution (BSD) entwickelt. Der FHS stellt Linux-Entwicklern und Systemadministratoren eine Standard-Verzeichnisstruktur für das Dateisystem in den verschiedenen Distributionen zur Verfügung.
Die offizielle Definition findet sich hier: https://refspecs.linuxfoundation.org/fhs.shtml
Bemerkung
CentOS 7 weicht aus diversen Gründen erstmals vom FHS ab, in dem es auf vier Verzeichnisse
der obersten Ebene verzichtet und diese per Soft Link unter dem
/usr
-Verzeichnis anordnet: /bin
, /lib
, /lib64
und
/sbin
, die ursprünglich Tools enthielten, um /usr
mounten zu können - was 2012 in Fedora 17 Einzug hielt, siehe https://fedoraproject.org/wiki/Features/UsrMove.
man hier
beschreibt die Filesystem-Hierarchie direkt im System.
/boot
Boot Loader-Dateien
/dev
Hier finden sich alle angeschlossenen Geräte (Devices) in Form von Dateien. Spezielle Gerätedateien sind
/dev/full
(gibt immer „No space left on device“ zurück; wird zum Testen von Programmen genutzt),/dev/null
(verwirft alle dorthin geschriebenen Daten und meldet den Schreibvorgang erfolgreich zurück),/dev/random
(liefert sehr gut verteilte Zufallszahlen),/dev/urandom
(liefert schlechter verteilte Zufallszahlen, ist dafür aber um Faktoren schneller als/dev/random
) und/dev/zero
(liefert Nullen zurück)./dev/shm
ist die Implementierung eines Shared Memory-Konzepts./etc
Konfigurationsdateien
/home
Home-Verzeichnisse der Benutzer
/media
Wechseldatenträger (USB-Sticks etc.)
/mnt
Gemountete Dateisysteme
/opt
Zusatz-Software (z.B. Oracle DB-Server, IBM-Software u.a.)
/proc
Pseudo-Dateisystem; Informationen von und für Prozesse, den Kernel und Dienste
/root
Home-Verzeichnis des root-Benutzers
/run
Konsolidiert
/var/run
und/var/lock
aus früheren Versionen./tmp
Verzeichnis für temporäre Dateien. Das Verzeichnis ist für alle Benutzer zum Schreiben freigegeben und muss ein Sticky-Bit besitzen. Unter RHEL werden Dateien älter als 10 Tage automatisch gelöscht.
/usr
Unix System Resources - nicht Host-spezifische Dateien (das Basis-Betriebssystem), was über mehrere Rechner geteilt werden kann; immer mehr aber auch Benutzer-Programme, da es heute als „user“-Verzeichnis missverstanden wird.
/usr/bin
Kommandos für alle Benutzer - im FHS unter
/bin
angeordnet/usr/lib
Gemeinsam verwendete Bibliotheken und Kernel-Module - im FHS unter
/lib
angeordnet/usr/lib64
Gemeinsam verwendete Bibliotheken und Kernel-Module (64-bit) - im FHS unter
/lib64
angeordnet/usr/sbin
Kommandos, die nur durch den Benutzer
root
ausgeführt werden können - im FHS unter/sbin
angeordnet/var
Daten veränderlicher Grösse (z.B. Log- und Anwendungs-Dateien). Auf kritischen Systemen sollte dieses Verzeichnis auf einer separaten Partition untergebracht werden. Läuft diese Partition voll, wird das Gesamtsystem trotzdem weiterlaufen. Unter RHEL werden Dateien in
/var/tmp
älter als 30 Tage automatisch gelöscht.
Ein .d
im Verzeichnisnamen wie beispielsweise /etc/Muttrc.d
steht einfach für „Directory“ . Gab es anfangs nur die Datei /etc/Muttrc
, sollte der spätere Zusatz .d
anzeigen, dass es sich hier um ein Verzeichnis handelt, welches eine Vielzahl an Konfigurationsdateien aufnehmen kann (abgesehen davon ist es nicht möglich, eine Datei und ein Verzeichnis mit dem gleichen Namen im Dateisystem anzulegen).
Wichtigere Dateien wie beispielsweise CHANGELOG
, CONTRIBUTING
, LICENSE
oder README
wurden übrigens per stiller Konvention grossgeschrieben, da sie früher in einem Verzeichnis-Listing so immer an erster Stelle angezeigt wurden. Das hat sich bis heute gehalten.
Built on 2024-11-18