LINUX Dateisysteme

Um Dateien auf Datenspeichern lesen und schreiben zu können, müssen diese nach einer festgelegten Ordnung auf dem Datenspeicher abgelegt werden. Diese Organisationsstruktur des Datenspeichers wird Dateisystem genannt.

Es gibt verschiedene Arten von Dateisystemen. Diese können grob in Windows-Dateisysteme und LINUX-Dateisysteme (UNIX-Dateisysteme) unterschieden werden. Windows-Dateisysteme sind FAT und NTFS. Die gängigsten LINUX-Dateisysteme sind ext und btrfs.

LINUX-Dateisysteme bringen von Haus aus eine ausgereifte Rechteverwaltung mit, da Linux standardmäßig ein Mehrbenutzersystem darstellt. Darüber hinaus bieten alle Linux-Dateisysteme die Möglichkeit mit einer symbolischen Verknüpfung (Softlink) auf Dateien zu verweisen. Eine Datei kann also per Softlink von verschiedenen Orten im Dateisystem aus erreichbar sein, ohne dass eine Kopie der Datei an allen Orten liegen muss. Dies spart Speicherplatz auf der Festplatte.

Linux FHS

Auszug aus dem Filesystem Hierarchy Standard (FHS)

Die LINUX Verzeichnisstruktur (FHS)

Alle Linux-Systeme haben ein Verzeichnissystem, dessen Struktur einem Baum entspricht. Ausgehend von Wurzelverzeichnis / verzweigen sich verschiedene Unterverzeichnisse, die weitere Unterverzeichnisse enthalten können.

In den meisten Distributionen findet man Standard-Verzeichnisse für systemspezifische Daten. Für die Verzeichnisstruktur von Linux-Systemen existiert mit dem Filesystem Hierarchy Standard (FHS) eine Richtlinie für den Aufbau des Verzeichnisbaums, die von der Linux-Foundation herausgegeben wird und von den meisten Distributionen eingehalten wird.

Alle Geräte (Festplatten, Wechselmedien, USB-Sticks u.a.) werden nach der UNIX-Philosophie als Datei behandelt und müssen irgendwo in dieser Verzeichnisstruktur eingebunden (gemounted) werden.

Konsolenbefehle zum Umgang mit Dateien

Die Shell ist, vor allem was den Umgang mit Dateien angeht, ein mächtiges Werkzeug. Sie kennt zahlreiche Befehle zum Umgang, zur Pflege und Manipulation von Dateien und Verzeichnissen. Einige davon sind durchaus mit Vorsicht zu genießen, da man sich unter Umständen das gesamte System unbrauchbar machen kann. Dies kann durch unbeabsichtigtes Löschen oder Überschreiben von wichtigen Systemdateien geschehen, vor allem wenn man mit Root-Rechten unterwegs ist.

Die wichtigsten Befehle zum Umgang mit Dateien werden im Folgenden kurz zusammengefasst. Für eine ausführliche Dokumentation sei auf die Man-Pages verwiesen, die jedes LINUX-System mitbringt.

Anzeigen des Inhalts eines Verzeichnisses

ls [Optionen]

-l list:   Auch Rechte, Eigentümer, Gruppe, Dateigröße, ... werden angezeigt

-a all:   Auch versteckte Dateien und Verzeichnisse werden angezeigt

Wechseln in ein anderes Verzeichnis

cd Verzeichnis

Verzeichnis   Pfad zum Verzeichnis in das gewechselt werden soll

..   ins darüberliegende Verzeichnis wechseln

~   ins HOME-Verzeichnis des aktuell eingeloggten Benutzers wechseln

/   ins Wurzelverzeichnis wechseln

Anzeigen des aktuellen Pfades

pwd

Anzeigen des Inhalts einer Datei

cat Datei

Datei   Pfad zur Datei deren Inhalt angezeigt werden soll

ln -s Linkdatei Linkname

-s symbolic Link:   es wird ein symbolischer Link (Softlink oder Verknüpfung) angelegt.

(Ohne diese Option wird ein Hardlink angelegt!)

LinkDatei   Pfad zur Datei (bzw. Verzeichnis) auf die verlinkt werden soll

Linkname   Name des Softlinks (ggf. mit Pfadangabe) wie er im Verzeichnis angezeigt werden soll.

Anzeigen des Pfades einer Datei

dirname Datei

Datei   Datei deren Pfad angezeigt werden soll

$ dirname skripte/test.sh

skripte

$ dirname skripte/test/dateien/

skripte/test

Der dirname Befehl ist vor allem in Skripten hilfreich. Man kann damit beispielsweise den Pfad zu einem Skript, ausgehend vom aktuellen Pfad bestimmen.