Aufbau des Linux-Dateisystems

Die Bezeichnungen für die grundlegenden Verzeichnisse sind auf allen Linux-Systemen (nahezu) identisch:

  • Für einen „normalen“ Benutzer ist vor allem das Home-Verzeichnis von Bedeutung, das häufig mit ~ abgekürzt und unter dem Verzeichnis-Pfad /home/benutzername abgelegt ist.

    Innerhalb dieses Verzeichnisses kann der Benutzer beliebige weitere Verzeichnisse anlegen und/oder Dateien speichern. Eine Besonderheit unter Linux ist die Kenntlichmachung von Konfigurations-Dateien und -Verzeichnissen: Diese beginnen stets mit einem . vor dem eigentlichen Dateinamen; man bezeichnet sie bisweilen auch als „versteckte“ Dateien, da sie beispielsweise bei einem Aufruf der ls-Anweisung in einer Shell standardmäßig nicht mit aufgelistet werden. Bei graphischen Datei-Managern wie beispielsweise caja können die versteckten Dateien meist mittels einer Tastenkombination ein- oder ausgeblendet werden.

  • Werden USB-Sticks, Speicherkarten oder externe Festplatten angeschlossen, so werden diese üblicherweise automatisch über den Verzeichnis-Pfad /media/benutzername/geraetname eingehängt (außer man hängt die Geräte manuell mittels mount ein); auf dieses Verzeichnis hat der jeweilige Benutzer ebenfalls volle Lese- und Schreibrechte.

Auf die übrigen Verzeichnisse kann meist nur lesend zugegriffen werden.

Zu beachten ist ebenfalls, dass unter Linux zwischen einer Groß- und Kleinschreibung in Datei- und Verzeichnisnamen unterschieden wird (bei Windows ist dies nicht der Fall). Die Dateien hallo-welt.txt und Hallo-Welt.txt würden somit als zwei verschiedene Dateien angesehen werden. Dies ist zu beachten, wenn man zugleich auch mit Windows-Dateisystemen arbeiten muss: Wäre auf einem solchen bereits eine Datei namens hallo-welt.txt vorhanden, und man würde die Datei Hallo-Welt.txt dorthin kopieren, so würde dadurch die bestehende Datei überschrieben.

Standard-Verzeichnisse eines Linux-Systems

Zur Organisation der Dateien eines Linux-Systems halten sich die meisten Distributionen an einen bestimmten Standard („Filesystem Hierarchie Standard“). Dieser umfasst die folgenden Verzeichnisse:

  • / Das Verzeichnis / (auch „Wurzelverzeichnis“ genannt) stellt den Basispfad des Systems dar.
  • /bin

    In diesem Verzeichnis („binaries“) befinden sich wichtige Programme für Anwender, die immer verfügbar sein müssen, beispielsweise die Shell bash oder das Programm ls zur Anzeige von Verzeichnis-Inhalten.

  • /boot

    In diesem Verzeichnis befinden sich die zum Hochfahren des Systems unbedingt erforderlichen Dateien. Am wichtigsten ist dabei der Kernel, üblicherweise eine Datei mit dem Namen vmlinuz-versionsname (andere Namen sind ebenfalls möglich).

  • /dev

    In diesem Verzeichnis („devices“) befinden sich ausschließlich Geräte-Dateien. Diese speziellen Dateien stellen eine einfach nutzbare Schnittstelle zur Hardware dar.

    Für jede Festplatte und ihre Partitionen existiert im /dev/-Verzeichnis ein eigener Eintrag. Beispielsweise bezeichnet, sofern vorhanden, /dev/hda ist die erste IDE-Festplatte, /dev/sda die erste SCSI-Festplatte im System. Höhere Buchstaben (sdb, sdc) stellen weitere Festplatten oder externe Speichermedien dar, Zahlen am Ende (sda1, sda2) benennen die Partitionen der Festplatten.[1]

  • /etc

    In diesem Verzeichnis („etcetera“) befinden sich zahlreiche Konfigurationsdateien, die Einstellungen zu den installierten Programmen sowie grundlegende Systeminformationen enthalten; viele dieser Dateien haben eigene Manpage, die in einer Shell mittels eines Aufrufs der Form man /etc/fstab aufgerufen werden kann.

  • /home

    In diesem Verzeichnis befinden sich die persönlichen Verzeichnisse der einzelnen Benutzer.

  • /lib

    In diesem Verzeichnis („libraries“) befinden sich die wichtigsten Funktionsbibliotheken des Systems; diese Dateien sollten nicht manuell verändert werden.

  • /media

    In diesem Verzeichnis werden externe Datenträger als Unterverzeichnisse eingebunden. Bei aktuellen Ubuntu- und LinuxMint-Versionen werden automatisch erkannte USB-Sticks, Speicherkarten, externe Festplatten usw. in ein Verzeichnis der Art /media/benutzername/name-des-datentraegers eingebunden.

  • /proc

    In diesem Verzeichnis („processes“) sind keine gewöhnlichen Dateien enthalten, sondern Schnittstellen zum Linux-Kernel. Jedes laufende Programm wird hier in einem Unterverzeichnis geführt, dessen Dateien viele Informationen beispielsweise über den aktuellen Programmstatus enthalten.

  • /root

    In diesem Verzeichnis befinden sich die (persönlichen) Dateien des Systemverwalters („Root“, „Superuser“). Das Verzeichnis liegt im Wurzelverzeichnis, damit der Systemverwalter auch dann auf seine (Konfigurations-)Dateien zugreifen kann, wenn durch einen Fehler der Zugriff auf andere Partitionen nicht mehr möglich ist.[2]

  • /sbin

    In diesem Verzeichnis („superuser-binaries“) befinden sich ebenfalls – ähnlich wie im /bin-Verzeichnis – wichtige Programme, die allerdings für den Systemverwalter gedacht sind. Sie erfüllen Funktionen, auf die ein normaler Benutzer keinen Zugriff hat.

  • /tmp

    Dieses Verzeichnis („temporary“) kann von jedem Benutzer und jedem Programm als temporäre Ablage für Dateien verwendet werden.

  • /usr

    In diesem Verzeichnis („unix system ressources“) befinden sich der größte Teil der installierten Software. Auf vielen Systemen befinden sich innerhalb von /usr mehr Daten als in allen anderen Dateien zusammen. Die ausführbaren Programmdateien sind meist in /usr/bin, Programmbibliotheken in /usr/lib abgelegt.

    In Netzwerken, an die viele gleichartige Systeme angeschlossen sind, wird dieses Verzeichnis häufig auf einem zentralen Server gespeichert, und alle anderen Computer greifen über das Netzwerk darauf zu.

  • /var

    In diesem Verzeichnis („variables“) befinden sich hauptsächlich Dateien, die sich ständig verändern. Beispielsweise werden hier Log-Dateien gespeichert.

  • /opt

    In diesem Verzeichnis („optional“) werden bei Bedarf sehr große Programme gespeichert, die nicht unmittelbar zum System gehören. Bei knappem Festplattenspeicher kann dieses Verzeichnis – wie das /home-Verzeichnis – auf einer externen Festplatte oder einer anderen Partition abgelegt werden.

Spezielle Dateien

Der Begriff „Datei“ wird unter Linux sehr weit gefasst; letztendlich stellt jeder Datenaustausch mit einem Speichermedium eine Datei dar. Auch Verzeichnisse sind demnach „Dateien“, ebenso wie die Einhängepunkte der einzelnen Geräte im /dev-Verzeichnis.

… to be continued …

Datei-Rechte

… to be continued …


Anmerkungen:

[1]Da auf einer Festplatte nur vier primäre Partitionen möglich sind, wird häufig eine erweiterte Partition angelegt, die den größten Teil der Festplatte umfasst. In der erweiterten Partition können dann „logische Laufwerke“ angelegt werden. Diese erhalten grundsätzlich die Partitionsnummern ab 5. Enthält eine Festplatte also eine primäre und eine erweiterte Partition, in der sich wiederum zwei logische Laufwerke befinden, gibt es auf dieser Platte die Partitionen 1, 2, 5 und 6. Die primäre Partition ist 1, die erweiterte ist 2, und die beiden logischen Laufwerke sind 5 und 6.
[2]Häufig wird bei der Installation eines Linux-Systems für das /home-Verzeichnis eine eigene Festplatte verwendet oder eine eigene Partition angelegt, um bei einer möglichen Neuinstallation des Systems die persönlichen Daten unverändert übernehmen zu können.