Die Linux-Verzeichnisstruktur, erklärt
Die Linux-Verzeichnisstruktur ist wichtig, um zu verstehen, wie dieses leistungsstarke Betriebssystem, das häufig auf Servern und PCs verwendet wird, funktioniert.
Unter Linux beginnt alles mit dem Stammverzeichnis, symbolisiert durch einen Schrägstrich (/), das als Ausgangspunkt für die Verzweigung aller anderen Verzeichnisse dient.
Innerhalb dieser Hierarchie finden wir wichtige Verzeichnisse wie /bin, das grundlegende ausführbare Systemdateien enthält, und /etc, wo wichtige Konfigurationsdateien gespeichert sind.
Das Verzeichnis /heim Es ist besonders wichtig für Benutzer, da es ihre persönlichen Dateien und Einstellungen enthält.
Ein weiteres Schlüsselverzeichnis ist /var, das variable Dateien wie Systemprotokolle und Druckwarteschlangen speichert.
Das Verständnis der Organisation dieser Verzeichnisse erleichtert nicht nur die Systemnavigation und -verwaltung, sondern ist auch entscheidend für die Sicherheit und Effizienz bei der Verwaltung von Linux-Servern.
Diese hierarchische und logische Struktur optimiert nicht nur den Systembetrieb, sondern ermöglicht auch eine einfache Skalierbarkeit und Anpassung – Funktionen, die Linux zu einer beliebten Wahl bei Entwicklern und Systemadministratoren in Argentinien und der Welt machen.
Wenn Sie mit Windows arbeiten, erscheint Ihnen die Struktur des Linux-Dateisystems möglicherweise besonders seltsam.
Das Laufwerk C:\ und die Laufwerksbuchstaben sind verschwunden, ersetzt durch / und kryptisch klingende Verzeichnisse, von denen die meisten aus drei Buchstaben bestehen.
Der Dateisystemhierarchiestandard (FHS) definiert die Struktur von Dateisystemen in Linux und anderen ähnlichen Betriebssystemen UNIX. Allerdings enthalten Linux-Dateisysteme auch einige Verzeichnisse, die noch nicht vom Standard definiert sind.
/ – Das Stammverzeichnis
Alles auf Ihrem Linux-System befindet sich im Verzeichnis /, dem sogenannten Stammverzeichnis. Sie denken vielleicht, dass das /-Verzeichnis dem C:\-Verzeichnis unter Windows ähnelt, aber das stimmt nicht unbedingt, da Linux keine Laufwerksbuchstaben hat. Während sich unter Windows eine andere Partition in D:\ befinden würde, würde diese andere Partition unter Linux in einem anderen Ordner in / erscheinen.
/bin – Wichtige Benutzer-Binärdateien
Das Verzeichnis /bin enthält die wesentlichen Benutzerbinärdateien (Programme), die vorhanden sein müssen, wenn das System im Einzelbenutzermodus bereitgestellt wird. Anwendungen wie Firefox werden, wenn sie nicht als Snaps installiert sind, in /usr/bin gespeichert, während wichtige Systemprogramme und Dienstprogramme, wie die Bash-Shell, in /bin gespeichert sind. Das Verzeichnis /usr kann auf einer anderen Partition gespeichert sein. Durch das Platzieren dieser Dateien im Verzeichnis /bin wird sichergestellt, dass das System über diese wichtigen Dienstprogramme verfügt, auch wenn keine anderen Dateisysteme gemountet sind. Das Verzeichnis /sbin ist ähnlich: Es enthält Binärdateien, die für die Systemverwaltung unerlässlich sind.
/boot – Statische Bootdateien
Das Verzeichnis /boot enthält die zum Booten des Systems erforderlichen Dateien. Hier werden beispielsweise GRUB-Bootloader-Dateien und deren Linux-Kernel gespeichert. Die Bootloader-Konfigurationsdateien befinden sich jedoch nicht hier; Sie befinden sich in /etc mit den anderen Konfigurationsdateien.
/cdrom – Historischer Mountpunkt für CD-ROM
Das Verzeichnis /cdrom ist nicht Teil des FHS-Standards, Sie finden es aber dennoch auf Ubuntu und anderen Betriebssystemen. Es handelt sich um einen temporären Speicherort für in das System eingelegte CD-ROMs. Der Standardspeicherort für temporäre Medien befindet sich jedoch im Verzeichnis /media.
/dev – Gerätedateien
Linux stellt Geräte als Dateien bereit und das Verzeichnis /dev enthält eine Reihe spezieller Dateien, die Geräte darstellen. Dabei handelt es sich nicht um echte Dateien, wie wir sie kennen, sondern sie erscheinen als Dateien. Beispielsweise stellt /dev/sda das erste SATA-Laufwerk im System dar. Wenn Sie es partitionieren möchten, können Sie einen Partitionseditor starten und ihn anweisen, /dev/sda zu bearbeiten.
Dieses Verzeichnis enthält auch Pseudogeräte, also virtuelle Geräte, die eigentlich keiner Hardware entsprechen. Beispielsweise erzeugt /dev/random Zufallszahlen. /dev/null ist ein spezielles Gerät, das keine Ausgabe erzeugt und alle Einträge automatisch verwirft; Wenn Sie die Ausgabe eines Befehls an /dev/null weiterleiten, verwerfen Sie sie.
/etc – Konfigurationsdateien
Das Verzeichnis /etc enthält Konfigurationsdateien, die normalerweise manuell in einem Texteditor bearbeitet werden können. Beachten Sie, dass das Verzeichnis /etc/ systemweite Konfigurationsdateien enthält. Benutzerspezifische Konfigurationsdateien befinden sich im Home-Verzeichnis jedes Benutzers.
/home – Home-Ordner
Das /home-Verzeichnis enthält einen Home-Ordner für jeden Benutzer. Wenn Ihr Benutzername beispielsweise „bob“ lautet, befindet sich Ihr Home-Ordner unter /home/bob. Dieser Home-Ordner enthält die Datendateien des Benutzers und benutzerspezifische Konfigurationsdateien. Jeder Benutzer hat nur Schreibzugriff auf seinen eigenen Home-Ordner und muss erhöhte Berechtigungen erlangen (Root werden), um andere Dateien auf dem System zu ändern.
/lib – Wichtige gemeinsam genutzte Bibliotheken
Das Verzeichnis /lib enthält die Bibliotheken, die die wesentlichen Binärdateien in den Ordnern /bin und /sbin benötigen. Die Bibliotheken, die die Binärdateien im Ordner /usr/bin benötigen, befinden sich in /usr/lib. Auf 64-Bit-Systemen sehen Sie auch einen homologen /lib64-Ordner.
/lost+found – Wiederhergestellte Dateien
Jedes Linux-Dateisystem verfügt über ein Lost+Found-Verzeichnis. Wenn das Dateisystem ausfällt, wird beim nächsten Start eine Dateisystemprüfung durchgeführt. Alle gefundenen beschädigten Dateien werden im Verzeichnis „Lost+Found“ abgelegt, sodass Sie versuchen können, so viele Daten wie möglich wiederherzustellen.
Das Verzeichnis /media enthält Unterverzeichnisse, in denen in den Computer eingefügte Wechselmediengeräte gemountet werden. Wenn Sie beispielsweise eine CD in Ihr Linux-System einlegen, wird automatisch ein Verzeichnis im Verzeichnis /media erstellt. In diesem Verzeichnis können Sie auf den Inhalt der CD zugreifen.
/mnt – Temporäre Mountpunkte
Historisch gesehen war das Verzeichnis /mnt der Ort, an dem Systemadministratoren temporäre Dateisysteme eingehängt haben, während sie diese verwendeten. Wenn Sie beispielsweise eine Windows-Partition mounten, um einige Dateiwiederherstellungsvorgänge durchzuführen, können Sie sie unter /mnt/windows mounten. Sie können jedoch andere Dateisysteme an einer beliebigen Stelle im System mounten.
/opt – Optionale Pakete
Das Verzeichnis /opt enthält Unterverzeichnisse für optionale Softwarepakete. Es wird häufig von proprietärer Software verwendet, die sich nicht an die Standard-Dateisystemhierarchie hält. Beispielsweise könnte ein proprietäres Programm seine Dateien bei der Installation in /opt/application speichern.
/proc – Prozess- und Kerneldateien
Das Verzeichnis /proc ähnelt dem Verzeichnis /dev darin, dass es keine Standarddateien enthält. Enthält spezielle Dateien, die System- und Prozessinformationen darstellen.
/root – Root-Home-Verzeichnis
Das Verzeichnis /root ist das Home-Verzeichnis des Root-Benutzers. Anstatt in /home/root befindet es sich in /root. Dies unterscheidet sich von /, dem Stammverzeichnis des Systems.
/run – Anwendungsstatusdateien
Das Verzeichnis /run bietet Anwendungen einen Standardspeicherort für die benötigten transienten Dateien wie Sockets und Prozess-IDs. Diese Dateien können nicht in /tmp gespeichert werden, da sie möglicherweise gelöscht werden.
/sbin – Binärdateien für die Systemverwaltung
Das Verzeichnis /sbin ähnelt dem Verzeichnis /bin. Es enthält wichtige Binärdateien, die im Allgemeinen dazu gedacht sind, vom Root-Benutzer zur Systemadministration ausgeführt zu werden.
/snap – Speicher für Snap-Pakete
Ein weiteres Verzeichnis, das nicht Teil von FHS ist, aber heutzutage häufig zu sehen ist, ist /snap. Enthält installierte Snap-Pakete und andere mit Snap verknüpfte Dateien. Ubuntu verwendet jetzt standardmäßig Snaps. Wenn Sie jedoch eine andere Distribution verwenden, die dies nicht tut, wird dieses Verzeichnis nicht angezeigt.
/srv – Servicedaten
Das Verzeichnis /srv enthält „vom System bereitgestellte Dienstdaten“. Wenn Sie den Apache HTTP-Server zum Bereitstellen einer Website verwenden würden, würden Sie Ihre Website-Dateien wahrscheinlich in einem Verzeichnis im Verzeichnis /srv speichern.
/tmp – Temporäre Dateien
Anwendungen speichern temporäre Dateien im Verzeichnis /tmp. Diese Dateien werden normalerweise bei jedem Neustart des Systems gelöscht und können jederzeit mit Dienstprogrammen wie systemd-tmpfiles gelöscht werden.
/usr – Benutzerbinärdateien und schreibgeschützte Daten
Das Verzeichnis /usr enthält Anwendungen und Dateien, die von Benutzern verwendet werden, im Gegensatz zu Anwendungen und Dateien, die vom System verwendet werden. Beispielsweise befinden sich nicht unbedingt erforderliche Anwendungen im Verzeichnis /usr/bin statt im Verzeichnis /bin, und nicht unbedingt erforderliche Binärdateien für die Systemverwaltung befinden sich im Verzeichnis /usr/sbin statt im Verzeichnis /sbin. Die jeweiligen Bibliotheken befinden sich im Verzeichnis /usr/lib. Das Verzeichnis /usr enthält auch andere Verzeichnisse. Architekturunabhängige Dateien, wie z. B. Grafiken, befinden sich beispielsweise in /usr/share.
Im Verzeichnis /usr/local werden lokal kompilierte Anwendungen standardmäßig installiert. Dies verhindert, dass sie den Rest des Systems durcheinander bringen.
/var – Variable Datendateien
Das Verzeichnis /var ist das beschreibbare Gegenstück zum Verzeichnis /usr, das im Normalbetrieb schreibgeschützt sein sollte. Protokolldateien und alles andere, was normalerweise im Normalbetrieb nach /usr geschrieben würde, werden in das Verzeichnis /var geschrieben. Protokolldateien finden Sie beispielsweise in /var/log.
Ausführlichere technische Informationen zur Linux-Dateisystemhierarchie finden Sie im Standarddokumentation zur Dateisystemhierarchie.