Das Linux-Dateisystem

Alle Benutzer (einschließlich des Superusers) haben ihr eigenes Home-Verzeichnis, in dem alle private Daten, wie Dokumente, Lesezeichen oder E-Mails, gespeichert werden. Systemverzeichnisse mit zentralen Konfigurationsdateien oder ausführbaren Dateien können nur vom Superuser geändert werden. Weitere Informationen über Zugriffsrechte und deren Anpassung an Ihre Anforderungen finden Sie unter Abschnitt 8.5, „Bearbeiten von Dateiberechtigungen“.

In Linux können Sie wählen, ob Sie Dateien und Ordner mit einem Dateimanager verwalten möchten oder die traditionelle Verwendung der Kommandozeile bevorzugen. Die letztgenannte Methode ist häufig schneller, erfordert aber umfassendere Kenntnis mehrerer Befehle zum Auflisten, Erstellen, Löschen oder Bearbeiten von Dateien und deren Eigenschaften. Weitere Informationen über Befehle zur Manipulation von Dateien finden Sie unter Abschnitt 8.3, „Arbeiten mit Dateien und Verzeichnissen“. Ein Datei-Manager bietet eine grafische und intuitivere Methode, diese Aufgaben zu erfüllen. Weitere Informationen über die Datei-Manager von GNOME und KDE finden Sie unter Section “Managing Folders and Files with Nautilus” (Chapter 1, Getting Started with the GNOME Desktop, ↑GNOME User Guide) und Chapter Managing Folders and Files with Konqueror (↑KDE User Guide). Egal, für welche Methode Sie sich entscheiden: Die folgenden Abschnitte vermitteln Ihnen einige Grundlagen des Dateisystems und bieten einen Überblick über die Standard-Verzeichnisstruktur in Linux.

Wichtigste Merkmale

Unter Linux befinden sich alle Dateien und Verzeichnisse in einer baumartigen Struktur. Das Verzeichnis der höchsten Ebene wird als Dateisystem- root oder einfach mit / bezeichnet (nicht zu verwechseln mit dem Benutzer root). Das Gegenstück zu / in einem Windows-System wäre wahrscheinlich C:\. Alle anderen Verzeichnisse in Linux sind über das root-Verzeichnis zugreifbar und in einer hierarchischen Struktur angeordnet.

Die folgende Liste führt die Schlüsselfunktionen des Linux-Dateisystems auf und weist auf einige der Hauptunterschiede zwischen dem Linux- und dem Windows-/DOS-Dateisystem hin:

Angeben von Pfaden

Im Unterschied zu Windows verwendet Linux zur Trennung der Komponenten eines Pfadnamens keine umgekehrten Schrägstriche, sondern normale Schrägstriche. Beispielsweise können die privaten Daten von Benutzern in Windows unter C:\\Eigene Dateien\\Briefe gespeichert sein, wohingegen sie in Linux unter /home/Benutzername/Briefe gespeichert wären.

Partitionen, Laufwerke/Geräte und Verzeichnisse

Linux verwendet keine Laufwerksbuchstaben wie Windows. Vom bloßen Aussehen eines Pfadnamens in Linux können Sie nicht erschließen, ob Sie eine Partition, ein Laufwerk/Gerät, ein Netzwerkgerät oder ein „gewöhnliches“ Verzeichnis ansprechen.

Einhängen und Aushängen

Ein weiterer wesentlicher Unterschied zwischen Windows/DOS und Linux ist das Konzept des Ein- und Aushängens von Partitionen, Laufwerken oder Verzeichnissen. Windows erkennt Partitionen und Laufwerke während des Bootvorgangs und weist ihnen einen Laufwerksbuchstaben zu. In Linux sind Partitionen oder Laufwerke gewöhnlich in der Verzeichnisstruktur nur dann sichtbar, wenn sie eingehängt, d. h. an einer bestimmten Stelle in der Verzeichnisstruktur in das Dateisystem integriert sind. Als gewöhnlicher Benutzer können Sie nur dann auf Daten auf einer Partition oder einem Gerät zugreifen, wenn diese(s) eingehängt ist. Aber keine Sorge – in der Regel brauchen Sie keine Partitionen oder Geräte manuell einzuhängen. Während der Installation Ihres Systems können Sie Partitionen definieren, die automatisch beim Systemstart eingehängt werden sollen. Wechselmedien werden gewöhnlich ebenfalls durch Ihr System erkannt und automatisch eingehängt: Die Desktop-Umgebungen wie KDE oder GNOME informieren Sie ggf. über neue Geräte.

Abbildung 7.2. Automatische Erkennung eines USB-Sticks in KDE

Automatische Erkennung eines USB-Sticks in KDE

Das Konzept des Ein- und Aushängens mag auf den ersten Blick kompliziert oder mühsam erscheinen, ermöglicht jedoch große Flexibilität: So können Sie beispielsweise ein Verzeichnis mühelos von einem anderen Computer aus über das Netzwerk einhängen und dieses Verzeichnis so bearbeiten, als würde es sich auf Ihrem lokalen Computer befinden.

Groß-/Kleinschreibung

Linux unterscheidet im Dateisystem zwischen Groß- und Kleinbuchstaben. So ist es für Linux ein Unterschied, ob Sie eine Datei test.txt , TeST.txt oder Test.txt nennen. Dies gilt auch für Verzeichnisse: Der Zugriff auf ein Verzeichnis namens Briefe ist mit briefe nicht möglich.

Dateinamenserweiterungen

Anders als in Windows können Dateien in Linux eine Dateinamenserweiterung wie .txt aufweisen, müssen jedoch nicht. Für Neulinge ist es am Anfang der Arbeit in einer Shell manchmal schwierig, zwischen Dateien und Ordnern zu unterscheiden, je nachdem, welchen Befehl sie zum Auflisten eines Verzeichnisinhalts verwenden. Weitere Informationen über einige grundlegende Shell-Befehle erhalten Sie unter Kapitel 8, Shell-Grundlagen. Wenn Sie die grafischen Dateimanager in KDE oder GNOME verwenden (siehe Section “Managing Folders and Files with Nautilus” (Chapter 1, Getting Started with the GNOME Desktop, ↑GNOME User Guide) und Chapter Managing Folders and Files with Konqueror (↑KDE User Guide)), werden Dateien und Ordner abhängig von der gewählten Ansicht durch verschiedene Symbole dargestellt.

Abbildung 7.3. Dateien und Ordner in der KDE-Dateiverwaltung

Dateien und Ordner in der KDE-Dateiverwaltung

Verborgene Dateien

Ähnlich wie Windows unterscheidet auch Linux zwischen „normalen“ Dateien und verborgenen Dateien, bei denen es sich häufig um Konfigurationsdateien handelt, auf die Sie gewöhnlich als normaler Benutzer nicht zugreifen und die Sie nicht anzeigen möchten. Unter Linux werden verborgene Dateien durch einen vorangestellten Punkt gekennzeichnet (beispielsweise .hiddenfile). Um auf verborgene Dateien zuzugreifen, können Sie die Ansicht in den Dateimanagern wechseln (siehe Chapter Managing Folders and Files with Konqueror (↑KDE User Guide)) oder ein bestimmtes Kommando in der Shell verwenden (siehe Abschnitt 8.2.2, „Verwenden von Befehlen mit Optionen“) .

Dateisystemberechtigungen

Da Linux ein Mehrbenutzersystem ist, ist jede Datei in einem Linux-Dateisystem einem Benutzer oder einer Gruppe zughörig. Nur der Eigentümer einer Datei oder eines Verzeichnisses (oder natürlich root) kann anderen Benutzern die Zugriffsberechtigung erteilen. Unter Linux wird grundsätzlich zwischen drei unterschiedlichen Arten von Zugriffsberechtigung unterschieden: Schreibberechtigung, Leseberechtigung und Ausführberechtigung. Sie können nur auf eine Datei oder einen Ordner zugreifen, wenn Sie mindestens über die entsprechende Leseberechtigung verfügen. Es gibt mehrere Möglichkeiten, die Zugriffsberechtigungen für Dateien und Ordner zu ändern: Entweder traditionell über die Shell oder mithilfe der Dateiverwaltungsfunktion Ihres Desktop (siehe Section “Changing Access Permissions” (Chapter 4, Managing Folders and Files with Konqueror, ↑KDE User Guide)). Wenn Sie über root-Privilegien verfügen, können Sie auch den Eigentümer und die Gruppe für eine Datei oder einen Ordner ändern. Entsprechende Informationen über die Vorgehensweise in einer Shell finden Sie unter Abschnitt 8.5, „Bearbeiten von Dateiberechtigungen“.

Ausführlichere Informationen über Dateisystemberechtigungen finden Sie unter Abschnitt 7.3, „Dateizugriffsberechtigungen“. Neben dem herkömmlichen Berechtigungskonzept für Dateisystemobjekte gibt es auch Erweiterungen, die Berechtigungen flexibler handhaben. Weitere Informationen dazu finden Sie unter Kapitel Zugriffssteuerungslisten unter Linux (↑Referenz).

Die Verzeichnisstruktur

Die folgende Tabelle bietet eine kurze Übersicht über die wichtigsten Verzeichnisse der höheren Ebene auf einem Linux-System. Ausführlichere Informationen über die Verzeichnisse und wichtige Unterverzeichnisse erhalten Sie in der folgenden Liste.

Tabelle 7.1. Überblick über eine Standardverzeichnisstruktur

Verzeichnis

Inhalt

/

Root-Verzeichnis - Startpunkt der Verzeichnisstruktur.

/bin

Grundlegende binäre Dateien, z. B. Befehle, die der Systemadministrator und normale Benutzer brauchen. Enthält gewöhnlich auch die Shells, z. B. Bash.

/boot

Statische Dateien des Bootloaders.

/dev

Erforderliche Dateien für den Zugriff auf Host-spezifische Geräte.

/etc

Host-spezifische Systemkonfigurationsdateien.

/home

Enthält die Home-Verzeichnisse aller Benutzer, die ein Konto auf dem System haben. Nur das Home-Verzeichnis von root befindet sich nicht unter /home, sondern unter /root.

/lib

Grundlegende freigegebene Bibliotheken und Kernel-Module.

/media

Einhängepunkte für Wechselmedien.

/mnt

Einhängepunkt für das temporäre Einhängen eines Dateisystems.

/opt

Add-On-Anwendungssoftwarepakete.

/root

Home-Verzeichnis für den Superuser root.

/sbin

Grundlegende Systembinärdateien.

/srv

Daten für Dienste, die das System bereitstellt.

/tmp

Temporäre Dateien.

/usr

Sekundäre Hierarchie mit Nur-Lese-Daten.

/var

Variable Daten wie Protokolldateien..

/windows

Nur verfügbar, wenn sowohl Microsoft Windows* als auch Linux auf Ihrem System installiert ist. Enthält die Windows-Daten.


Die folgende Liste bietet detailliertere Informationen und bietet einige Beispiele für die Dateien und Unterverzeichnisse, die in den Verzeichnissen gefunden werden können:

/bin

Enthält die grundlegenden Shell-Befehle, die root und andere Benutzer verwenden können. Zu diesen Kommandos gehören ls, mkdir, cp, mv, rm und rmdir. /bin enthält auch Bash, die Standard-Shell in openSUSE.

/boot

Enthält Daten, die zum Booten erforderlich sind, z. B. den Bootloader, den Kernel und andre Daten, die verwendet werden, bevor der Kernel mit der Ausführung von Programmen im Benutzermodus beginnt.

/dev

Enthält Gerätedateien, die Hardware-Komponenten darstellen.

/etc

Enthält lokale Konfigurationsdateien, die den Betrieb von Programmen wie das X Window System steuern können. Das Unterverzeichnis /etc/init.d enthält Skripten, die während des Bootvorgangs ausgeführt werden.

/home/Benutzername

Enthält die privaten Daten aller Benutzer, die ein Konto auf dem System haben. Die Dateien, die hier gespeichert sind, können nur durch den Besitzer oder den Systemadministrator geändert werden. Standardmäßig befinden sich hier Ihr E-Mail-Verzeichnis und Ihre persönliche Desktopkonfiguration in Form von verborgenen Dateien und Verzeichnissen. KDE-Benutzer finden die persönlichen Konfigurationsdaten für den Desktop unter .kde bzw. .kde4, GNOME-Benutzer unter .gconf. Informationen zu verborgenen Dateien finden Sie unter Abschnitt 7.2.1, „Wichtigste Merkmale“.

[Note]Home-Verzeichnis in einer Netzwerkumgebung

Wenn Sie in einer Netzwerkumgebung arbeiten, kann Ihr Home-Verzeichnis einem von /home abweichenden Verzeichnis zugeordnet sein.

/lib

Enthält grundlegende freigegebene Bibliotheken, die zum Booten des Systems und zur Ausführung der Befehle im Root-Dateisystem erforderlich sind. Freigegebene Bibliotheken entsprechen in Windows DLL-Dateien.

/media

Enthält Einhängepunkte für Wechselmedien, z. B. CD-ROMs, USB-Sticks und Digitalkameras (sofern sie USB verwenden). Unter /media sind beliebige Laufwerktypen gespeichert, mit Ausnahme der Festplatte Ihres Systems. Sobald Ihr Wechselmedium eingelegt bzw. mit dem System verbunden und eingehängt wurde, können Sie von hier darauf zugreifen.

/mnt

Dieses Verzeichnis bietet einen Einhängepunkt für ein temporär eingehängtes Dateisystem. root kann hier Dateisysteme einhängen.

/opt

Reserviert für die Installation zusätzlicher Software. Hier finden Sie Software- und größere Addon-Programmpakete. KDE3 befindet sich hier, während KDE4 und GNOME nach /usr verschoben wurden.

/root

Home-Verzeichnis für den Benutzer root. Hier befinden sich persönliche Daten von " root".

/sbin

Wie durch das s angegeben, enthält dieses Verzeichnis Dienstprogramme für den Superuser. /sbin enthält Binärdateien, die zusätzlich zu den Dateien in /bin wesentlich für Booten und Wiederherstellen des Systems erforderlich sind.

/srv

Enhält Daten für Dienste, die das System bereitstellt, z. B. FTP und HTTP.

/tmp

Dieses Verzeichnis wird von Programmen benutzt, die eine temporäre Speicherung von Dateien verlangen.

/usr

/usr hat nichts mit Benutzern ("user") zu tun, sondern ist das Akronym für UNIX-Systemressourcen. Die Daten in /usr sind statische, schreibgeschützte Daten, die auf verschiedenen Hosts freigegeben sein können, die den Filesystem Hierarchy Standard (FHS) einhalten. Dieses Verzeichnis enthält alle Anwendungsprogramme und bildet eine sekundäre Hierarchie im Dateisystem. Dort befinden sich auch KDE4 und GNOME. /usr enthält eine Reihe von Unterverzeichnissen, z. B. /usr/bin, /usr/sbin, /usr/local und /usr/share/doc.

/usr/bin

Enthält Programme, die für den allgemeinen Zugriff verfügbar sind.

/usr/sbin

Enthält Programme, die für den Systemadministrator reserviert sind, z. B. Reparaturfunktionen.

/usr/local

In diesem Verzeichnis kann der Systemadministrator lokale, verteilungsunabhängige Erweiterungen installieren.

/usr/share/doc

Enthält verschiedene Dokumentationsdateien und die Versionshinweise für Ihr System. Im Unterverzeichnis manual befindet sich eine Online-Version dieses Handbuchs. Wenn mehrere Sprachen installiert sind, kann dieses Verzeichnis die Handbücher für verschiedene Sprachen enthalten.

Im Verzeichnis packages befindet sich die Dokumentation zu den auf Ihrem System installierten Software-Paketen. Für jedes Paket wird ein Unterverzeichnis /usr/share/doc/packages/ Paketname angelegt, das häufig README-Dateien für das Paket und manchmal Beispiele, Konfigurationsdateien oder zusätzliche Skripten umfasst.

Wenn HOWTOs (Verfahrensbeschreibungen) auf Ihrem System installiert sind, enhält /usr/share/doc auch das Unterverzeichnis howto mit zusätzlicher Dokumentation zu vielen Aufgaben bei Setup und Betrieb von Linux-Software.

/var

Während /usr statische, schreibgeschützte Daten enthält, ist /var für Daten, die während des Systembetriebs geschrieben werden und daher variabel sind, z. B. Protokolldateien oder Spooling-Daten. Beispielsweise befinden sich die Protokolldateien Ihres Systems in /var/log/messages (nur für "root" zugreifbar).

/windows

Nur verfügbar, wenn sowohl Microsoft Windows als auch Linux auf Ihrem System installiert ist. Enthält die Windows-Daten, die auf der Windows-Partition Ihres Systems verfügbar sind. Ob Sie die Daten in diesem Verzeichnis bearbeiten können, hängt vom Dateisystem ab, das Ihre Windows-Partition verwendet. Falls es sich um FAT32 handelt, können Sie die Dateien in diesem Verzeichnis öffnen und bearbeiten. In einem NTFS-Dateisystem können Sie jedoch Ihre Windows-Dateien nur von Linux aus lesen, aber nicht ändern. Weitere Informationen dazu finden Sie unter Abschnitt 11.3, „Zugreifen auf Dateien auf verschiedenen Betriebssystemen am selben Computer“.