UNIX-Lehrtext
Die Filestruktur unter Unix ist hierarchisch. Ausgangspunkt ist das
root-Directory. Von dort aus entwickelt sich das Filesystem baumartig. Die Abb.
zeigt einen kleinen Ausschnitt eines solchen Datei-Baums, in dem als Beispiel
auch das Homedirectory des fiktiven Benutzers "arthur" gezeigt wird.
Abbildung: Das Unix-Filesystem
"/home/arthur" ist das Homedirectory des Benutzers arthur, in dem er sich nach dem Einloggen wiederfindet. Auf den meisten Systemen können in csh, tcsh und ksh die Homedirectories mit der Abkürzung "~loginname", also in unserem Beispiel mit
~arthurangesprochen werden. Das eigene Homedirectory wird dann einfach mit "~" bezeichnet.
Es gibt keine Beschränkung für die Zahl der Unterverzeichnisse. Deswegen sollte man Unterverzeichnisse intensiv als Mittel zur Strukturierung des Homedirectories verwenden. So ist es praktisch, ein Subverzeichnis für C-Programme anzulegen und dieses Verzeichnis wieder durch Unterverzeichnisse für jedes Projekt zu untergliedern. Ein Subdirectory namens bin wird oft verwendet, um Binärdateien (ausführbare Programme) abzulegen. Folgende Kommandos braucht man für den Umgang mit Directories:
$ pwd /home/arthur $ mkdir test $ cd test $ pwd /home/arthur/test $ cd ../work $ pwd /home/arthur/work $ cd $ pwd /home/arthur $
Im Gegensatz zu MS-DOS verwendet Unix keine Extensions (das sind in DOS Teile des Dateinamens, die durch einen Punkt abgetrennt sind und eine spezielle Bedeutung für das Betriebssystem haben). Daher kann man in Unix so viele Punkte in einem Dateinamen verwenden, wie man mag, denn der Punkt hat keine spezielle Bedeutung. Die Feststellung, ob eine Datei ausführbar ist etc. erfolgt in Unix über andere Mechanismen, während dies in DOS über Extensions gesteuert wird. Allerdings verwenden unter Unix einige Anwendungen, z.B. Compiler, die letzten Buchstaben in einem Dateinamen, die durch einen Punkt abgetrennt wurden, zur Einordnung der Dateien. Einige übliche Endungen sind:
Dateinamen, die mit einem Punkt beginnen, sind "unsichtbar", d.h. ls zeigt diese Dateien nicht an. So beginnen alle Startup-Dateien mit einem Punkt, da man diese nicht bei jedem ls sehen will. "ls -a" zeigt auch unsichtbare Dateien an.
Um eine Datei anzusprechen, kann man entweder den absoluten oder den relativen Pfadnamen verwenden. Der absolute Pfadname besteht aus dem kompletten Pfad vom root-Verzeichnis "/" aus bis zu dem Verzeichnis, in dem sich die Datei befindet. Daher beginnen absolute Pfadnamen immer mit einem "/".
/home/arthur/plots/plot1.psist z.B. so ein absoluter Pfadname.
Ein relativer Pfadname bezeichnet den Pfad bezüglich des aktuellen Arbeitsverzeichnisses. Folgende relative Pfadnamen beziehen sich auf dieselbe Datei (s. Abb. "Das Unix-Filesystem").
-rwxr-xr-- 1 arthur 3451 Jul 25 13.15 index.htmlDas Minuszeichen am Anfang bedeutet, dass es sich bei index.html um eine einfache Datei (also kein Verzeichnis etc.) handelt. Bei einem Verzeichnis wäre ein "d" zu sehen. Die nächsten 9 Zeichen erklären die Zugriffsrechte für diese Datei. Nach der Ziffer 1 für die Zahl der Links (Links sind zusätzliche Namen, unter denen eine Datei angesprochen werden kann) steht der Besitzer der Datei, dann die Grösse in Bytes und das Datum der letzten Aenderung. Die letzte Spalte ist der Dateiname.
Drei Dinge kann man mit einer Datei tun: lesen, darauf schreiben und ausführen. Die Zugriffsrechte legen nun fest, wer was mit dieser Datei tun darf. Dabei werden drei Arten von Benutzern unterschieden: der Besitzer u (user), die Gruppe g (group) und der Rest der Welt o (others). Die ersten drei Zeichen der Zugriffsrechte zeigen, dass der Besitzer der Datei diese lesen r (read), schreiben w (write) und ausführen x (execute) darf. Die nächsten drei Zeichen geben die Rechte für die Gruppe an. Die Mitglieder der Gruppe dürfen das File lesen und ausführen, aber nicht darauf schreiben. Falls man sich nicht sicher ist, zu welcher Gruppe eine Datei gehört, kann man diese Information mithilfe von "ls -lg" erhalten, auf AIX genügt "ls -l". Die letzten drei Zeichen bedeuten, dass die Datei von allen Benutzern, die weder Besitzer noch Gruppenangehörige sind, zwar gelesen, aber weder beschrieben noch ausgeführt werden darf.
Zugriffsrechte können mittels des Kommandos chmod geändert werden. Dabei gibt man an, für wen die Rechte geändert werden sollen, nämlich für den Besitzer (u), die Gruppe (g), alle anderen (o) oder alle drei zusammen (a für all). Ein Plus- bzw. Minuszeichen dient der Angabe, ob ein bestimmtes Recht für diese Benutzer hinzugefügt oder entfernt werden soll. Die Rechte selbst werden durch r, w und x bezeichnet. Mit einem "=" wird ein Recht komplett neu gesetzt.
$ chmod u-x index.htmlmacht die Datei für den Besitzer arthur nicht-ausführbar:
$ ls -l index.html -rw-r-xr-- 1 arthur 3451 Jul 25 13.15 index.htmlDas folgende Kommando sorgt dafür, dass die Gruppe die Datei nur noch lesen kann:
$ chmod g=r index.html $ ls -l index.html -rw-r--r-- 1 arthur 3451 Jul 25 13.15 index.htmlMan kann die Zugriffsrechte auch über einen Zahlencode angeben. Dabei werden den Buchstaben r, w, x folgende Werte zugeordnet:
r 4, w 2, x 1Den korrekten Zahlencode erhält man durch Addieren der Werte der Rechte jeder Benutzergruppe, d.h. der Code ist eine dreistellige Zahl, bei der jede Ziffer zwischen 0 und 7 liegt. "-rw-r--r--" kann somit durch 644 beschrieben --> --werden. Das zuletzt angeführte Kommando chmod kann daher durch
chmod 644 index.htmlersetzt werden.
Das Zentrum Informatikdienste zieht Sicherungskopien aller Dateien. Um aber ganz sicher zu sein, kann man von wichtigen Dateien eigene Sicherungskopien (Backups) anlegen. Dies kann etwa via FTP auf eine Diskette auf Ihrem PC erfolgen.
Um den Backup bequem erledigen zu können, ist es günstig, sich des tar-Kommandos zu bedienen, das unten beschrieben ist. Dieses Kommando kann komplette Verzeichnisse, einschliesslich aller Unterverzeichnisse, zu einer Archiv-Datei zusammenfassen.
Um Speicherplatz zu sparen, können die resultierenden tar-Dateien komprimiert werden, bevor sie auf das externe Speichermedium transportiert werden. Gebräuchlich ist compress. Allerdings sollten Sie sich darüber im Klaren sein, dass eine komprimierte Datei nur dann wieder in Klartext umgewandelt werden kann, wenn die Information vollständig ist. Das bedeutet: schreiben Sie einen Backup mit tar und anschliessender Kompression auf eine Diskette, so können Sie diese Daten nur im Fall völliger Datenintegrität wieder erhalten. Hat die Diskette im Lauf der Zeit auch nur einen kleinen Fehler bekommen, sind Ihre Daten verloren. Ohne Kompression hätten Sie hingegen eine gute Chance, dass sich der Datenverlust nur auf ein oder zwei Dateien beschränkt.
Die Syntax von tar:
tar <Key> <Optionen> <Datei-Liste>erzeugt eine Archiv-Datei oder restauriert Dateien einer Archiv-Datei. Der Key entscheidet, ob ein Archiv angelegt oder von einem Archiv gelesen werden soll:
tar -cvf C.tar CDies liefert eine Archivdatei namens C.tar. Mit Hilfe des Kommandos
tar -xvf C.tarwird der Inhalt des Archives wieder in seiner ursprünglichen Form restauriert.
ls -l ... list long-form (Datei-Namen)
ls -a ... list hidden files
cat ... list content (Datei-Inhalt)
head/tail ... list content (Anfang, Schluss)
more ... display content (am Bildschirm)
cp ... copy file (kopieren)
mv ... rename file (umbenennen)
rm ... remove file (löschen)
pwd ... print working directory (aktuelles Directory)
cd ... change directory (Directory wechseln)
mkdir ... make directory (Directory erzeugen)
rmdir ... remove dir (Directory löschen)
chown ... change owner
chgrp ... change group
chmod +[rwx] ... change mode (Zugriffsberechtigung ändern)
Nähere Angaben zu einzelnen Kommandi und deren Syntax finden Sie mit
man <Kommando>Und hier noch zwei zusätzliche Kommandi:
find ... find file (File suchen)
ln -s ... make symbolic link (zusätzlicher Name)
Die Syntax von find:
find <Verzeichnis-Liste> <Ausdruck>sucht Dateien, die sich in einem Verzeichnis der <Verzeichnis-Liste> befinden und die Anforderungen von <Ausdruck> erfüllen. <Ausdruck> kann dabei auch Kommandos enthalten, die auf gefundene Dateien angewendet werden sollen. find hat eine ziemlich komplexe Syntax, so dass wir hier nicht näher darauf eingehen. Zudem kann es ein sehr zeitaufwendiges Kommando sein. Aus diesem Grund sollte man niemals einen find von einem Verzeichnis aus starten, das weit oben in der Verzeichnishierarchie steht wie etwa "/" oder "/home". In solch einem Fall würde sich find durch sämtliche Verzeichnisse unterhalb dieses weit oben angesiedelten Verzeichnisses durcharbeiten, um alle Dateien in allen Unterverzeichnissen auf die Kriterien von Ausdruck hin zu überprüfen. Je nach Grösse und Organisation der betroffenen Filesysteme kann ein solcher find mehrere Stunden dauern und die entsprechenden Maschinen unbenutzbar machen.
Die Syntax von ln:
ln <file> <link>erzeugt einen sog. harten Verweis (Link) zu einer existierenden Datei, d.h. diese Datei kann jetzt mit zwei Namen aufgerufen werden: mit dem ursprünglichen Namen und mit dem soeben geschaffenen Verweisnamen. Beide haben denselben Status. Wird einer der beiden Namen gelöscht, so ist die Datei noch immer unter dem anderen Namen zugänglich.
ln -s <file> <link>Auf modernen Systemen (z.B. AIX) können auch sog. symbolische Verweise mit Hilfe der "-s" Option erzeugt werden. Dieser Verweis hat nicht denselben Status wie der ursprüngliche Dateiname. Der symbolische Verweis ist eine eigene Datei, die den Namen der Datei enthält, auf die der Verweis zeigt. Wird daher das ursprüngliche File gelöscht, so zeigt der symbolische Verweis auf ein nicht mehr existierendes File und auf die Daten kann nicht mehr zugegriffen werden. Im Gegensatz zum harten Verweis können symbolische Verweise jedoch auch auf ein Verzeichnis erfolgen.
Generated with WebMaker