Linux/Dateisystem

Aus Foxwiki

Verzeichnisstruktur

Linux:Dateisystem:Hierarchie

Zugriff auf Datenträger

Linux:Dateisystem:Zugiff

Arbeiten im Dateisystem

Als Benutzer werden Sie alle Daten als Dateien auf einem Datenträger (meinst einer Festplatte) speichern. (Texte, Einstellungen, Programme usw.)

Um auf diese Daten zugreifen zu können werden Sie mit einem Namen und weiteren Eigenschaften in einem Ablagesystem geordnet.

Ein Dateisystem ist ein Ordnungsschema für Dateien. Dateien werden in Verzeichnissen zusammengefasst. Ver­zeichnisse sind also Behälter für Dateien.

Ein Verzeichnis kann sowohl Dateien, als auch weitere Verzeichnisse enthalten. Verzeichnisse werden so hierar­chisch unter dem Wurzelverzeichnis (root-directory) angeordnet.

Das Root-Verzeichnis wird durch den Slash (/) repräsentiert und hat keinen besonderen Namen.

Unterschiede zur DOS- / Windows- Welt

Der Slash (/) wird auch als Trennzeichen bei der Angabe von Dateipfaden benutzt.

Beispiel

Eine Datei die sich in Ihrem Home-Verzeichnis befindet, kann folgende Ortsangabe haben:

/home/user/text

Keine Laufwerksbuchstaben

Disketten Möchten Sie auf einen Datenträger (z.B. eine - oder CD-ROM-Laufwerk) zugreifen, tun Sie dies mit den Namen eines Verzeichnisses, über das sie diesen Datenträger in den Verzeichnisbaum integriert haben

Beispiel

Sie möchten mit dem Befehl cat eine Datei anzeigen, die sich auf einer cdrom befindet

cat·/cdrom/text

Arbeitsverzeichnis (pwd)

Um nun festzustellen wo z.B. Ihr Heimatverzeichnis innerhalb des Dateisystembaums befindet, können Sie das Kommando pwd (print working directory) benutzen.

dirkw@lincln02:~> pwd

/home/DSW/dirkw

pwd ist in vielen Shells ein integriertes Kommando (z. B. in der bash). Wenn in der Distribution kein binäres pwd-Kommando enthalten ist, kann als Notbehelf beispielsweise mit der tcsh, bei der kein pwd-Kommando integriert ist, das folgende Shellscript benutzt werden:

#!/bin/bash

pwd

Working directory

Das Verzeichnis, in das sie zuletzt gewechselt haben, in dem „sie sich gerade befinden“ wird als „aktuelles Ver­zeichnis“ (working directory) bezeichnet.

Verzeichnisinhalt (ls)

ls (list) zeigt den Inhalt eines Verzeichnisses

ls

Das Standardausgabeformat von ls hängt vom Typ der Ausgabedatei ab. Auf einem Terminal ist die mehrspaltige Ausgabe das Standardformat. In allen anderen Fällen wird die Ausgabe einspaltig ausgeführt.

Das Verhalten des ls-Kommandos läßt sich nicht mehr durch Umbenennen in ll dir vdir etc. verändern. Stattdessen sind die Kommandos dir und vdir als separate Binärdateien mit entsprechenden Standardformaten verfügbar.

Optionen


-a zeigt alle Dateien im Verzeichnis, auch die deren Name mit `.' beginnt
-b zeigt nichtdruckbare Zeichen in Dateinamen als ,,Backslash Sequenz`` mit alphabetischen oder oktalen Werten, wie sie in C üblich sind
-c sortiert die Dateien nach der Zeit der letzten Statusveränderung
-d zeigt Unterverzeichnisse wie normale Dateien anstelle ihres Inhaltes
-i zeigt die Nummer der Inode zu jeder Datei 
-k die Dateigröße wird in Kilobytes angegeben, auch wenn POSIXLY_CORRECT gesetzt ist
-l außer dem Namen werden der Typ, die Rechte, die Anzahl der Hardlinks, der Besitzer, die Gruppe, die Größe und die Zeitmarke angezeigt
-m gibt die Dateinamen in einer Reihe, getrennt durch Kommas aus
-n gibt die Benutzer und Gruppen mit ihren ID's anstelle der Namen aus
-q gibt Fragezeichen anstelle von nicht druckbaren Zeichen in Dateinamen
-r zeigt das Verzeichnis in umgekehrter Reihenfolge
-s zeigt die Größe der Dateien in Kilobytes; wenn POSIXLY_CORRECT gesetzt ist, wird die Größe in Blöcken zu 512 Bytes angezeigt
-t sortiert nach Zeit anstelle des Namens
-u sortiert nach letzter Zugriffszeit anstelle der Änderungszeit (zusammen mit Option -t)
-x sortiert in horizontaler Richtung
-A zeigt alle Dateien außer `.' und `..'
-B ignoriert Backups (mit Endung `~')
-C listet in vertikal sortierten Spalten
-F hängt verschiedene Symbole an die Dateinamen:

* steht hinter ausführbaren Dateien

/ steht hinter Verzeichnissen

@ markiert symbolische Links

markiert FiFo's

= markiert sockets

alles andere sind reguläre Dateien

-L zeigt den Inhalt der symbolisch gelinkten Verzeichnisse anstelle des Linkfiles
-N gibt Dateinamen ohne Quotes aus
-Q gibt Dateinamen in Quotes aus
-R zeigt rekursiv den Inhalt aller Unterverzeichnisse
-S sortiert nach Größe
-U unsortiert
-X sortiert nach Endung
-1 einspaltig
-w Spalten Bildschirmbreite in Spalten
-T Spalten Tabulatorbreite in Spalten
-I Muster ignoriert Dateien mit Muster im Namen


Besondere Verzeichnisse „.“ und „..“

Auch Verzeichnisse (directories) werden als Dateien abgespeichert. Sie enthalten Informationen zu den Dateien und Verzeichnissen, die es enthält.

Verzeichnisse werden in einem speziellen Format gespeichert, das nicht nur normalen Text enthält. Versuchen sie den Inhalt eines Verzeichnisses mit dem cat - Befehl anzeigen zu lassen, erhalten Sie als Ausgabe ein Durcheinander von nicht-interpretierbaren Zeichen.

Neben Informationen über seinen Inhalt enthält ein Verzeichnis auch Informationen über sein Vater-Verzeich­nis. Es ist ihm unter dem Namen „..“ bekannt. Dieser Name ist eine Verknüpfung zum übergeordneten Verzeichnis und wird bei der Eingabe von Dateipfaden auch so genutzt.

Mit dem folgenden Befehl zeigen Sie die Datei text im übergeordneten Verzeichnis an.

cat ../text

Unter dem Namen „.“ enthält jedes Verzeichnis auch eine Verknüpfung zu sich selbst. Diese wird seltener einge­setzt.

Verzeichnis wechseln (cd)

Datei:Bild3.png

Vergleichen Sie das Dateisystem mit einer Bibliothek. Möchten Sie ein Buch einsehen, werden Sie in die Abtei­lung begeben, in der das Buch zu finden ist.

Ähnlich werden sie, wenn sie mit Daten aus einem Verzeichnis arbeiten möchten, in dieses Verzeichnis wech­seln.


Beispiele


cd·/ wechselt ins Stammverzeichnis
cd·~ wechselt in Heimatverzeichnis
cd·.. wechselt ins übergeordnete Verzeichnis
cd·test wechselt in Unterordner „test“
cd·/boot wechselt in das Verzeichnis /boot
cd·- Wechselt in das vorherige Verzeichnis

Absolute und relative Pfade

Bei der Arbeit an einem Unix-System werden Sie sich im Dateisystem-Baum zwischen den Verzeichnissen bewe­gen, wie zwischen den Ästen eines wirklichen Baumes.

Datei:Bild4.png

Arbeitsverzeichnis

Das „aktuelle Verzeichnis“ (working directory) ist nach dem Login zunächst ihr Heimatverzeichnis. Später das Verzeichnis, in das sie zuletzt wechselten.

Von hier aus können zu jedem anderen Verzeichnis wechseln, wenn Sie den Weg (Pfad) zum Zielverzeichnis kennen.

Auch um mit Dateien oder Programmen zu arbeiten, die sich nicht im aktuellen Verzeichnis befinden, verwen­den sie Wegbeschreibungen (Pfadangaben). So kann das System die gewünschten Daten finden.

Es gibt zwei Möglichkeiten den Weg zu einer Datei oder eines Verzeichnisses im Dateisystem-Baum zu beschrei­ben.

Absolute Pfadangaben

Beginnen Sie mit der Wegbeschreibung an der Wurzel (/) des Dateisystem-Baums, spricht man von einer abso­luten Pfadangabe.

Beispiel

/home/user1/texte/text1

Diese Pfadangabe ist eindeutig, meint also genau eine bestimmte Datei ist also mit einer genauen Anschrift ver­gleichbar.

Relative Pfadangaben

Statt einer genauen Anschrift, können Sie auch eine Wegbeschreibung benutzen, die vom jetzigen Standort ausgeht (dritte Straße rechts, an der 2. Ampel links).

Eine „relative Pfadangabe“ beschreibt den Pfad ausgehend vom aktuellen Verzeichnis und beginnt nicht mit einem Slash (/).

Beispiel

Text/text1

Vom aktuellen Verzeichnis /home aus können sie z.B. mit dem Befehl cd eine absolute oder eine relative Pfad­angabe benutzen, um in einen anderen Ordner zu wechseln.


absolut relativ
/home/user1 user1
/home/user1/texte user1/texte
/tmp ../tmp


Verzeichnisse erstellen (mkdir)

mkdir·[-Optionen]·Verzeichnis·...

(make directory) erzeugt ein leeres Verzeichnis sofern der Schreibschutz des übergeordneten Verzeichnisses dies zulässt.

Die Standardeinträge "." und ".." werden automatisch erzeugt.


-m·Modus setzt die Rechte des Verzeichnisses auf Modus
-p anlegen aller fehlenden Verzeichnisse


Verzeichnisse löschen (rmdir)

rmdir·[-Optionen]·Verzeichnis ...

Löschen eines leeren Verzeichnisses


-p löscht mehrere Verzeichnisse rekursiv, wenn alle Verzeichnisse leer


Speicherplatz ermitteln (df)

df (disk free) zeigt den freien Festplattenplatz.

df zeigt den freien Festplattenplatz für das Dateisystem, in dem das Verzeichnis Pfad angesiedelt ist. Wenn kein Verzeichnis angegeben ist, wird der freie Platz für alle aufgesetzten Dateisysteme angezeigt. Die Angabe erfolgt in Kilobyte, wenn nicht die Umgebungsvariable POSIXLY_CORRECT gesetzt ist. In diesem Fall wird der freie Platz in 512-Byte Sektoren angezeigt.

Wird als Pfad der absolute Name der Gerätedatei eines aufgesetzten Dateisystems angegeben, so wird der freie Platz auf diesem Gerät (Partition einer Festplatte) angegeben und nicht der des Dateisystem, in dem sich die Gerätedatei befindet. Der freie Platz auf einem abgesetzten Dateisystem ist auf diese Weise nicht zu ermitteln.

df [-aikPv] [-t Fstyp] [-all] [-inodes] [-type fstype] [-kilobytes] [-portability] [Pfad ...]

Optionen


-a (all) zeigt alle Dateisysteme an, einschließlich der mit 0 Bytes Kapazität und der vom Typ ignore oder auto
-i (inodes) zeigt die Auslastung der Inodes anstelle der Blockauslastung
-k (kilobytes) zeigt den freien Platz in Kilobyteblöcken, auch wenn die Umgebungsvariable POSIXLY_CORRECT gesetzt ist
-P (portability) erzwingt die Ausgabe in einer Zeile pro Dateisystem
-t Fstyp (type) schränkt die Ausgabe auf die Dateisysteme vom Typ Fstyp ein


Speicherplatzverteilung (du)

du (disk usage) zeigt die Verteilung des belegten Plattenplatzes auf die Verzeichnisse. du zeigt den belegten Plattenplatz für das Verzeichnis und für alle Unterverzeichnisse (in Kilobyte).

Wenn die Umgebungsvariable POSIXLY_CORRECT gesetzt ist, wird die Menge in 512 Byte Blöcken angegeben.

du [-abcklsxDLS] [-all] [-total] [-count-links] [-summarize] [-bytes] [-kilobytes] [-one-file-system] [-separate-dirs] [-dereference] [-dereference-args] [Verzeichnis ...]

Optionen


-a 0,00cm(all) zeigt auch den Platzbedarf aller Dateien
-b (bytes) zeigt den Platzbedarf in Bytes
-c zeigt den (summierten) Platzbedarf der in der Kommandozeile übergebenen Dateien
-k (kilobytes) gibt den Platzbedarf in Kilobytes, auch wenn die Umgebungsvariable POSIXLY_CORRECT gesetzt ist
-l zählt die Größe der (harten) Links mit, auch wenn sie dadurch doppelt vorkommen
-s gibt nur die Summe für jedes Verzeichnis in der Kommandozeile
-x ignoriert Verzeichnisse, die in anderen Dateisystemen liegen
-D folgt dem Verweis auf ein anderes Verzeichnis bei einem symbolischen Link, wenn dieser als Kommandozeilenargument übergeben wird. Andere symbolische Links werden nicht dereferenziert.
-L alle symbolischen Links werden dereferenziert, das heißt es wird der Platzbedarf des referenzierten Verzeichnisses anstelle des Linkfiles gezeigt
-S zeigt den Platzbedarf jedes Verzeichnisses einzeln, ohne die Unterverzeichnisse


Verzeichnisse Synchronisieren (rsync)

Linux:Befehl:rsync

Dateisystem bereinigen

fslint

Utility to Fix Problems with Filesystems' Data

FSlint is a toolkit to clean filesystem lint. It includes a GTK+ GUI as well as a command line interface and can be used to reclaim disk space. It has an interface for uninstalling packages, and it can find things like:* Duplicate files

  • Problematic filenames
  • Temporary files
  • Bad symlinks
  • Empty directories
  • Nonstripped binaries


bleachbit

Remove unnecessary files, free space, and maintain privacy

BleachBit deletes unnecessary files to free valuable disk space and maintain privacy. Rid your system of old junk including broken menu entries, cache, cookies, localizations, and temporary files.

Designed for Linux systems, it wipes clean Bash, Beagle, Epiphany, Firefox, Flash, GNOME, Java, KDE, OpenOffice.org, Opera, RealPlayer, VIM, XChat, and more.