[Zurück] [Home] [Weiter]       http://rowa.giso.de  

Eine frei verwendbare Unix-Grundlagenschulung mit muLinux

Die Verzeichnisstruktur

Bei der riesigen Menge an Dateien in einem Unix-System ist ein Ordnungsprinzip notwendig. So werden Dateien in Verzeichnissen gruppiert. Ein Verzeichnis ist also wie ein Aktenordner, der wie Akten die Dateien beinhaltet. Verzeichnisse können aber wiederum Verzeichnisse enthalten. Diese nennt man Unterverzeichnisse. Diese können natürlich auch wieder mit Verzeichnissen und Dateien gefüllt sein usw.

Alle Verzeichnisse bilden eine strukturierte Hierarchie, die vom Hauptverzeichnis als Wurzel ausgeht. Dieses Prinzip wurde bei den meisten Betriebsystemen übernommen, wobei Verzeichnisse auch als Ordner, Directories oder Folder bezeichnet werden.

Das Hauptverzeichnis wird durch den "normalen" Schrägstrich / symbolisiert. Dieses Verzeichnis wird immer dann angesprochen, wenn eine Pfadangabe mit dem Schrägstrich beginnt. Alle weiteren in einem Dateipfad vorkommenden Schrägstriche dienen als Trennzeichen zwischen den Namen der jeweiligen Unterverzeichnisse. Zum Beispiel:

/home/hans

Hier das Verzeichnis home ein Unterverzeichnis des Hauptverzeichnisses. home enthält das Unterverzeichnis hans. Hier die gleichen Verzeichnisse in der Darstellung eines Dateimanagers unter X-Window:

Hier die gleichen Verzeichnisse in der Darstellung eines Dateimanagers unter X-Window

Navigation im Dateisystem

Die Navigation innerhalb des Dateisystems erfolgt über eine geringe Anzahl an Befehlen. Aufgrund ihrer Basisfunktionalität kommen die meisten dieser Befehle ohne komplizierte Parameter aus.

Ein Verzeichnis ist immer das aktuelle Verzeichnis. Es ist das Verzeichnis, "in dem man sich gerade befindet". Um zu sehen, in welches Verzeichnis gerade aktuell ist, dient der Befehl pwd.

/# pwd
/

Da nur ein / angezeigt wird, sind wir also gerade im Hauptverzeichnis. Um in ein anderes Verzeichnis zu wechseln, müssen wir erst einmal wissen welche Unterverzeichnisse existieren. Lassen wir uns also den Inhalt des aktuellen Verzeichnisses auflisten. Der Befehl dazu heißt ls (list engl. für Liste).

/# ls

a/       cdrom/   home/    mnt/     root/    setup/   tmp/
bin/     dev/     lib/     nfs/     samba/   startup/ usr/
c/       etc/     linuxrc* proc/    sbin/    swap/    var/
Es werden uns die Namen von Unterverzeichnissen und Dateien angezeigt. Unterverzeichnisse werden bei muLinux mit einem / nach dem Namen angezeigt. Hier der gleiche Inhalt in der Darstellung eines Dateimanagers unter X-Window:

Verzeichnisstrukturdarstellung in X-Window

Um das aktuelle Verzeichnis zu wechseln, dient der Befehl cd (change directory, engl. für ändere Verzeichnis). Nach dem Befehl muß der Name des Unterverzeichnisses angegeben werden:

/# cd etc
/etc# _

Wir wir sehen hat sich der Prompt geändert. Er zeigt uns unseren Aufenthaltsort, also das aktuelle Verzeichnis an. Der Befehl pwd ist also hier nicht unbedingt nötig. Aber der Befehl ls ist hier interessant. Wie wir sehen gibt es hier eine Menge Dateien und Verzeichnisse. Doch dazu später.

Wie kommen wir aber wieder ein Verzeichnis höher? Das "Elternverzeichnis" wird durch zwei Punkte .. gekennzeichnet. Bitte nicht das Leerzeichen nach dem Befehl cd vergessen.

/etc# cd ..
/# _

Befehlszeilenergänzung

Mitunter sind Verzeichnis- und Dateienamen ziemlich lang. Um Tipparbeit zu vermeiden gibt es die Befehlszeilenergänzung. Wollen wir z. B. in das Verzeichnis /etc wechseln, brauchen wir nur das cd /e und anschließend die Tabulator-Taste zu drücken.

/# cd /e Tabulator
/# cd /etc
/etc# _

Der Rest des Namens wird ergänzt. Das funktioniert natürlich nur, wenn hier kein zweites Verzeichnis mit einem e am Anfang existiert. Dann muß man halt weitere Zeichen eingeben. Zum Beispiel existieren im Hauptverzeichnis mehrere Unterverzeichnisse, die mit s beginnen:

/# cd /s Tabulator    Es ertönt ein Peep-Ton.
/# cd /sb Tabulator
/# cd /sbin
/sbin# _

Absolute und relative Adressierung

Warum tippen wir eigentlich den Slash / vor jedem Verzeichnisnamen ein? Der Slash kennzeichnet das Hauptverzeichnis. Das heißt alle Verzeichnisangaben mit einem Slash am Anfang werden vom Hauptverzeichnis aus ausgewertet (absolute Adressierung). Es ist somit egal in welchem Verzeichnis wir uns gerade befinden. Lassen wir den Slash weg, bezieht sich alles auf das aktuelle Verzeichnis (relative Adressierung).

Wir sind nun in der Lage uns durch alle Verzeichnisse zu bewegen. Jetzt wollen wir bestimmt wissen was da überall so drin ist. Wir wenden gleich die Befehle cd und ls an, um uns den Inhalt der jeweiligen Verzeichnisse anzeigen zu lassen. Wir üben dabei auch das erneute Aufrufen bzw. Ändern von Befehlen mit Hilfe der Cursortasten und der Backspace-Taste.

Die Standardverzeichnisse von Unix

Bei Unix ist die Verzeichnisstruktur streng vorgegeben. Viele Unix-Versionen halten sich auch mehr oder weniger daran. Es werden die Dateien entsprechend ihrer Art getrennt. So werden Anwenderdaten, Programme und Einstellungsdateien nicht wie bei manch anderem Betriebsystem durcheinander gewürfelt. Es wird weiterhin zwischen konstanten und veränderlichen Dateien unterschieden. Da Verzeichnisse Festplatten oder Partitionen von Festplatten darstellen können, ist so auch eine physische Trennung möglich. Dies erhöht die Systemsicherheit und vereinfacht die Datensicherung.

/

Das ist das Haupt-, Root- oder Wurzelverzeichnis, das oberste Verzeichnis im kompletten Dateisystem. Hier sollten möglichst keine Dateien liegen, nur Verzeichnisse.

/bin

Wichtige Befehle zur Systemverwaltung, die nicht spezifisch für den Superuser sind. Dies sind z. B. die uns schon bekannten Befehle date, reboot, halt, shutdown, pwd und ls. Programmdateien werden auch als binaries bezeichnet.

/dev

Alle Peripheriegeräte (engl. devices), wie z. B. Drucker und Modem, sind über Gerätedateien ansprechbar. Sie dienen als Schnittstelle zu den Gerätetreibern und haben deshalb auch keinen Inhalt. Zum Beispiel wird bei einem Ausdruck einer Datei diese einfach in die Datei /dev/lp2 (Druckerdevice) kopiert.
Ein besonderes Device ist /dev/null. Das ist der Mülleimer von Unix. Wird eine Datei dorthin verschoben, ist sie weg.
Die Datei /dev/fd0 stellt das erste Diskettenlaufwerk (floppy disk) dar. Es gibt noch weitere Dateien, die mit /dev/fd0 beginnen. Diese stellen das Diskettenlaufwerk mit unterschiedlichen Formaten dar. Um alle diese aufzulisten, können wir den Befehl    ls /dev/fd0*    eingeben. Der Stern dient als Joker und ersetzt eine beliebige Anzahl von beliebigen Zeichen.
Festplatten (hard disk) beginnen mit /dev/hd*.
SCSI-Festplatten: /dev/sd*.
(virtuelle) Konsolen ( Alt + F1 ... Alt + F6): /dev/tty*.
Serielle Schnittstellen: /dev/ttyS*.

/etc

Hier befinden sich die zentralen Konfigurationsdateien. Ein Beispiel ist die Datei passwd. Diese enthält eine Liste aller Benutzer am System. Die Konfigurationsdateien sind reine Textdateien (ASCII-Dateien) und können so mit einfach mit einem Texteditor verändert werden. Somit ist Konfiguration von Unix-Rechnern ohne spezielle Software möglich. Weiterhin wird so eine Fernwartung unterstützt.

/home

Hier befinden sich die Heimatverzeichnisse der "normalen" Benutzer. Jeder Benutzer unter Unix erhält einen Nutzernamen, ein Paßwort und ein eigenes Verzeichnis. Dieses Verzeichnis wird als Unterverzeichnis in /home angelegt. Ein Nutzer mit dem Namen "Jacqueline" würde also das Verzeichnis /home/Jacqueline erhalten. Dort und nur dort kann der Nutzer Dateien und Verzeichnisse anlegen und verändern.

/lib

Unter Unix werden, soweit wie es eben geht, gemeinsam verwendbare Bibliotheken (engl. shared libraries) eingesetzt. Solche shared libraries sparen eine Menge Systemressourcen, da viele Bestandteile von mehreren Prozessen aus gleichzeitig genutzt werden.

/mnt

Hier werden bei vielen Unix-Versionen die Laufwerke, wie CD-ROM und Disketten, ein-"montiert" (engl. mounten). Der Inhalt der Laufwerke erscheint dann unterhalb dieses Verzeichnisses.

/opt

Dieses Verzeichnis ist in muLinux nicht enthalten. Hier werden optionale Zusatzprogramme, wie z. B. der WWW-Browser Netscape Communicator, gespeichert.

/proc

Ein virtuelles Dateisystem, über das Informationen über die Hardware ermittelt werden können. Außerdem wird hier jeder laufende Prozeß (engl. process) dargestellt. Für jeden laufenden Prozeß findet sich unterhalb von /proc ein Verzeichnis, dessen Name gleich seiner Prozeßnummer (PID) ist. In diesem Unterverzeichnis sind keine Schreiboperationen möglich.

/root

Dies ist das Heimatverzeichnis des Superusers. Es liegt nicht im Verzeichnis /home, da /home eventuell auf einer anderen Festplatte oder Partition liegen kann und so bei Wartungsarbeiten vielleicht nicht zur Verfügung steht.

/sbin

Hier befinden sich ausführbare Dateien (engl. binaries) für den Systemstart und zur Systemverwaltung durch den Superuser.

/tmp

Viele Programme brauchen regelmäßig temporären Speicherplatz. Da aber alle Benutzer Programme benutzen, haben alle Anwender auf dieses Verzeichnis auch schreibenden Zugriff. Bei Systemen mit vielen Anwendern, sollte daher dieses Verzeichnis in eine extra Partition oder Festplatte gelegt werden. Dann kann das Schreiben in das Verzeichnis /tmp nicht mehr dazu führen, daß das gesamte System abstürzt, wenn dadurch der Gesamtspeicherplatz gegen 0 läuft. Ist genug Hauptspeicher (RAM) vorhanden, so kann man das Verzeichnis /tmp auch im Hauptspeicher anlegen. Dies ist bei unserer Erstkonfiguration von muLinux der Fall.

/usr

Für die Benutzer (engl. user) relevante Befehle und Anwendungsprogramme. Diese befinden sich in weiteren Unterverzeichnissen.
In /usr/bin befinden sich Dienstprogramme, die weniger häufig verwendet werden. Es ist eine eher willkürliche Entscheidung, welches Programm nun in /bin oder in /usr/bin zu finden ist. Abgeleitet ist diese Unterscheidung noch aus Zeiten, in denen zwischen kleinen, schnellen und teuren Platten und großen, langsamen und billigeren Festplatten unterschieden wurde. /bin wurde dann auf einer schnellen Platte eingerichtet, während /usr/bin auf die langsamere Platte gelegt.
/usr/doc und /usr/man beinhalten Dokumentationen und Manual-Dateien für Hilfestellungen.
/usr/games beinhaltet Spielprogramme, die mit ihrem Namen aufgerufen werden können. So z. B. blue das Kartenspiel.

/var

Bei Unix wird streng unterschieden zwischen Teilbereichen des gesamten Dateibaumes, der für alle Benutzer nur lesbar bzw. auch beschreibbar sein soll. Diejenigen Daten, die für alle Anwender nur lesbar sein sollen, befinden sich unterhalb von /usr. Dort wo der Anwender auch schreibenden Zugriff haben muß, wird eine Speicherung der variablen Daten in die Unterverzeichnisse von /var vorgenommen. Beispiele sind die Speicherung von Druckaufträgen und Emails in das Verzeichnis /var/spool sowie die Protokollierung von An- und Abmeldevorgängen im Verzeichnis /var/log.

Zusätzliche Verzeichnisse bei muLinux

Es gibt einige kleine Abweichungen der Verzeichnisstruktur zwischen den Unix-Versionen. muLinux macht da keine Ausnahmen. Teilweise finden sich diese Verzeichnisse auch bei anderen Linux-Versionen wieder.

/a

Mountpoint für das Diskettenlaufwerk. Wird das Diskettenlaufwerk eingebunden, so erscheint dessen Inhalt in diesem Verzeichnis. Bei anderen Linux-Versionen wird dazu auch das Verzeichnis /floppy oder /mnt/floppy verwendet.

/c

Mountpoint für eine Festplatte.

/cdrom

Mountpoint für das CD-ROM-Laufwerk. Bei anderen Linux-Versionen wird dazu auch das Verzeichnis /mnt/cdrom verwendet.

/nfs

Mountpoint für von anderen Rechnern im Netzwerk mittels NFS bereitgestellte Festplattenbereiche.

/samba

Mountpoint für von Windows-Rechnern im Netzwerk freigegebenene Verzeichnisse.

/setup

In diesem Verzeichnis befinden sich die Dateien für das setup-Programm von muLinux.

/startup

Mountpunkt für die Startdiskette von muLinux während des Startvorganges.

/swap

Hier wird nicht benötigter Arbeitsspeicher aus dem RAM ausgelagert. Normalerweise wird dieser Bereich in einer separaten Partition oder Festplatte eingerichtet und ist dann auch nicht im Verzeichnisbaum sichtbar.

So, das wäre erst mal genug Schluß mit Verzeichnisstruktur. Es empfiehlt sich aber diese gelegentlich wieder anzuschauen.

[Zurück] [Home] [Weiter]