Wichtige Unix-Befehle

> Betriebssystem Linux

> > # Wichtige Unix-Befehle

> > ### Befehle zum Umgang mit Dateien

> > #### cat

> > Der Befehl cat ist ein sehr häufig verwendetes Kommando, obwohl seine Aufgabe auf den ersten Blick geradezu trivial erscheint.

> > cat gibt die Dateien, die ihm als Parameter mitgegeben wurden (oder, falls keine Dateien genannt wurden die Standard-Eingabe) auf der Standard-Ausgabe aus. In der Regel macht dieser Befehl also nur Sinn, wenn er etwa in einer Pipe oder zusammen mit Umleitungen verwendet wird.

> > Mit Umleitungen können Dateien in andere Dateien kopiert werden, oder auch mehrere Dateien in eine andere.

> > Dazu kann cat mit Parametern noch verschiedene Aktionen mit den Dateien durchführen, wie etwa Zeilennummerierung, zusammenfassen von Leerzeilen zu einer Leerzeile uvm.

> > Wichtige Parameter sind:

> > -b
> >   Nummeriert alle nicht leeren Zeilen, beginnend mit 1
> > -n
> >   Nummeriert alle Zeilen, beginnend mit 1
> > -s
> >   Ersetzt aufeinanderfolgende Leerzeilen durch eine Leerzeile

> > Beispiele:

> > cat *.txt > Ergebnisdatei

> > Kopiert alle Dateien, die mit .txt enden in die Datei Ergebnisdatei

> > cat -n Datei

> > Gibt den Inhalt der Datei mit Zeilennummern auf dem Bildschirm aus

> > #### ln

> > Mit dem Befehl ln (link) können Links auf Dateien angelegt werden. Die grundlegende Aufrufform ist:

> > ln [-s] existierende_Datei [Name_des_Links]

> > Wenn der Schalter -s angegeben wird, so wird ein symbolischer Link erstellt, wenn nicht, so wird ein Hardlink angelegt. Wenn die existierende Datei nicht im aktuellen Verzeichnis liegt, dann kann der Name_des_Links weggelassen werden. Der Link erhält dann den gleichen Namen wie die existierende Datei.

> > #### cp

> > cp (copy) kopiert eine oder mehrere Dateien

> > Syntax:
> >   cp [Optionen] Quelle Ziel cp [Optionen] Quelle ... Verzeichnis
> > Optionen:

> >   -a | (archiv) das gleiche wie -dpr
> >   -b | (backup) sichert Dateien im Zielverzeichnis vor dem Überschreiben
> >   -d | (no-dereference) kopiert die Links und nicht die Dateien, auf die der Link zeigt
> >   -f | (force) Dateien im Zielverzeichnis werden überschrieben, wenn es sie schon gibt
> >   -i | (interactive) erwartet Bestätigung vor dem Überschreiben bereits existierender Dateien
> >   -l | (link) macht Links anstelle von Kopien (nur bei normalen Dateien)
> >   -P | (path) die Quelldateien werden mit Pfad relativ zum Zielverzeichnis kopiert
> >   -p | (preserve) erhält die Zugriffsrechte und Eigentümer des Originals (nicht die SUID und SGID Bits)
> >   -r | kopiert die Dateien der Unterverzeichnisse mit
> >   -s | (symbolic link) macht symbolische Links anstelle von Kopien (absolute Pfadnamen)
> >   -u | (update) überschreibt Ziel- nur durch neuere Quelldateien
> >   -x | (one file-system) ignoriert Unterverzeichnisse, die in anderen Dateisystemen angesiedelt sind

> > Im Gegensatz zum COPY-Befehl von DOS muß diesem Befehl immer ein Ziel angegeben werden. Sollen mehrere Dateien kopiert werden, so muß das Ziel ein Verzeichnis sein.

> > #### mv

> > mv (move) verschiebt eine Datei oder benennt sie um

> > Syntax:
> >   mv [Optionen] Quelle Ziel
> >   mv [Optionen] Quelle ... Verzeichnis
> > Beschreibung:
> >   mv verschiebt eine oder mehrere Datei(en) bzw.Verzeichnis(se) oder benennt sie um. Ein Verzeichnis kann nicht über die Grenzen eines Dateisystems hinweg verschoben werden.
> > Optionen:

> >   -b | sichert Dateien vor dem Überschreiben
> >   -f | überschreibt existierenden Zieldateien rücksichtslos
> >   -i | erwartet interaktiv eine Bestätigung vor dem Überschreiben existierender Zieldateien
> >   -u | verschiebt Dateien nur, wenn sie neuer sind als die gleichnamigen Zieldateien

> > #### rm

> > rm (remove) löscht Dateien

> > Syntax:
> >   rm [Optionen] Datei ...
> > Beschreibung:
> >   rm löscht Dateien. Normalerweise werden die Verzeichnisse nicht mitgelöscht. Wenn eine Datei gelöscht werden soll, für die keine Schreibberechtigung besteht, muß der Befehl für diese Datei extra bestätigt werden. In Verzeichnissen, bei denen das Stickybit gesetzt ist, kann eine Datei nur von ihrem Eigentümer gelöscht werden.
> > Optionen

> >   -f | keine Nachfragen, keine Fehlermeldungen
> >   -i | vor dem Löschen jeder Datei wird nochmal nachgefragt
> >   -r | der Inhalt aller Unterverzeichnisse und die Verzeichnisse werden mitgelöscht

> > ### Befehle zum Umgang mit Verzeichnissen

> > #### mkdir

> > Mit dem Befehl mkdir wird ein Verzeichnis neu angelegt. Die Aufrufform ist einfach:

> > mkdir Verzeichnisname

> > #### rmdir

> > Der Befehl rmdir löscht ein bestehendes Verzeichnis.

> > rmdir Verzeichnisname

> > Das Verzeichnis muß - wie unter DOS auch - leer sein, bevor es gelöscht werden kann.

> > #### cd

> > Mit dem Befehl cd wird das aktuelle Arbeitsverzeichnis gewechselt (change dir). Wie bei den beiden letzten Befehlen muß auch hier der Verzeichnisnae als Parameter angegeben werden.

> > cd Verzeichnisname

> > Wenn der Verzeichnisname weggelassen wird, so wechselt man in sein Heimatverzeichnis.

> > #### pwd

> > Der Befehl pwd (Print Working Directory) gibt den Namen des aktuellen Verzeichnisses aus. Er wird ohne jeden Parameter benutzt. Heute wird dieser Befehl selten verwendet, da meist im Prompt der Verzeichnisname schon erscheint. Bei manchen Telnet- oder FTP-Verbindungen kann man ihn aber sehr gut brauchen um nicht die Orientierung zu verlieren.

> > #### ls

> > Der Befehl ls (list) zeigt den Inhalt eines Verzeichnisses an.

> > ls [Optionen]%nbsp; [Pfad oder Dateinaen]

> > Wird ls ohne Optionen aufgerufen, so zeigt es nur die Dateinamen und auch nur die, die nicht mit einem Punkt beginnen.

> > Wird kein Pfad oder kein Dateinamen angegeben, so zeigt ls den Inhalt des aktuellen Verzeichnisses, ansonsten den Inhalt des angegebenen Verzeichnisses oder Informationen über die angegebene Datei.

> > Wichtige Optionen sind:

> > -l
> >   Gibt ein langes Listing aus, mit Zugriffsrechten, Anzahl der Hardlinks, Eigentümer, Gruppe, Größe, Datum der letzten Veränderung und Dateiname.
> > -a
> >   Zeigt alle Dateien an, auch die, deren Namen mit einem Punkt beginnen.
> > -d
> >   Zeigt Verzeichnisse wie normale Dateien anstelle ihres Inhalts.
> > -i
> >   Zeigt die Nummer der I-Node zu jeder Datei
> > -n
> >   Gibt die Benutzer und Gruppen mit ihren ID's anstelle der Namen aus
> > -R
> >   Zeigt rekursiv den Inhalt aller Unterverzeichnisse
> > -S
> >   Sortiert nach Größe
> > -t
> >   Sortiert nach Zeit (letzte Veränderung) anstelle des Namens
> > -u
> >   Sortiert nach letzter Zugriffszeit anstelle der Änderungszeit (zusammen mit Option -t)
> > -c
> >   Sortiert die Dateien nach der Zeit der letzten Statusveränderung

> > Wenn mehrere Optionen gesetzt werden sollen, so genügt ein Bindestrich, gefolgt von den Optionsbuchstaben also etwa

> > ls -litu

> > um ein langes Listing mit den I-Node-Nummern zu bekommen, das nach dem Datum des letzten Zugriffs sortiert ist.

> > ### Befehle für die Benutzerverwaltung

> > #### passwd

> > Der Befehl passwd (nicht zu verwechseln mit der Datei /etc/passwd) dient dazu, sein eigenes Passwort zu verändern. Jeder User hat damit diese Möglichkeit, der Superuser kann damit aber auch das Passwort aller anderen User verändern.

> > Für den Normaluser, der sein Passwort ändern will, hat der Befehl passwd keinerlei Parameter, er wird einfach aufgerufen. Ein Normaluser wird zunächst nach seinem alten Passwort gefragt, bevor er es verändern darf. Das ist ein Schutzmechanismus, der verhindern soll, dass jemand eine offene Konsole eines Users dazu mißbraucht, das Passwort dieses Users zu verändern. Danach folgt die Eingabe des neuen Passworts, die nicht am Bildschirm dargestellt wird. Um Schreibfehler zu vermeiden muß dieses Passwort zweimal hintereinander fehlerfrei eingegeben werden.

> > Der Superuser kann mit dem Befehl passwd auch die Passwörter anderer User ändern. Dazu muß er nach dem Befehl den Usernamen des Users als Parameter angeben, dessen Passwort er ändern will. Er wird NICHT nach dem alten Passwort gefragt, sondern darf das neue Passwort sofort eingeben. Meist wird ein Systemverwalter dieses Feature ja nützen um einem User, der sein Passwort vergessen hat, ein neues zu geben.

> > #### su

> > Mit dem Befehl su (substitute user) kann ein User seine effektive UserID (EUID) verändern, sofern er das entsprechende Passwort für den User weiß, in den er sich "verwandeln" will. Die Aufrufform ist einfach

> > su [Username]

> > Falls der Username weggelassen wird oder statt Username ein Bindestrich verwendet wird, so nimmt su an, dass sich der User in den Systemverwalter verwandeln will.

> > Der Befehl su startet eine neue Shell, innerhalb der dann die neue UserID gilt. Mit dem Befehl exit kann diese Shell dann wieder beendet werden und man ist wieder der User, der man vor dem Aufruf von su war.

> > Der Systemverwalter kann mit su jede beliebige Identität annehmen, ohne nach einem Passwort gefagt zu werden. Das erlaubt es ihm auch, sich in die Verwaltungsuser wie z.B. bin, daemon oder lp zu verwandeln, deren Passwörter gesperrt sind.

> > #### newgrp

> > Der Befehl newgrp ändert die aktuelle Gruppe eines Users. Die Aufrufform:

> > newgrp [Gruppenname]

> > Wenn der Gruppenname weggelassen wird, so wird die voreingestellte Gruppe (der Eintrag des Users in der /etc/passwd-Datei) zur aktuellen Gruppe. Ansonsten wird die angegebene Gruppe zur aktuellen Gruppe.

> > Damit ein User das Recht bekommt in eine Gruppe zu wechseln, muß er entweder Mitglied dieser Gruppe sein, d.h., sen Username muß in der Mitgliedsliste in /etc/group stehen oder - falls die Gruppe ein Passwort hat - muß er das Passwort der Gruppe kennen. Hat die Gruppe kein Passwort und der User ist nicht Mitglied der Gruppe, so wird ihm der Zugriff verweigert.

> > #### gpasswd

> > Dieses Kommando dient dazu, Gruppen zu verwalten. Es darf nur vom Systemverwalter oder dem Gruppenverwalter einer Gruppe benutzt werden.

> > gpasswd Gruppe
> >   Wechselt das Passwort der Gruppe. Entspricht dem passwd-Befehl.
> > gpasswd -a User Gruppe
> >   Mit diesem Befehl kann der Gruppenverwalter den genannten User in die Gruppe aufnehmen. Der User wird in die Mitgliedsliste der Gruppe aufgenommen.
> > gpasswd -d User Gruppe
> >   Damit kann der Gruppenverwalter den genannten User aus der Gruppe ausschließen. Der User wird aus der Mitgliedsliste der Gruppe gestrichen.
> > gpasswd -R Gruppe
> >   Diese Option verbietet es, dass User mit dem newgrp-Kommando diese Gruppe als aktuelle Gruppe angeben.
> > gpasswd -r Gruppe
> >   Mit diesem Befehl kann der Gruppenverwalter das Gruppenpasswort löschen.
> > gpasswd -A User Gruppe
> >   Mit disem Befehl kann der Systemverwalter (root) einen User zum Gruppenverwalter erklären.
> > gpasswd -M User Gruppe
> >   Mit diesem Befehl erklärt der Systemverwalter (root) einen User zum Mitglied einer Gruppe.

> > #### chown

> > Mit dem Befehl chown kann der Systemverwalter eine oder mehrere Dateien einem anderen User übereignen, d.h. der andere User wird zum Eigentümer der Datei(en). Dieser Befehl kann nur vom Systemverwalter benutzt werden, es ist also nicht möglich, dass ein Normaluser seine eigenen Dateien einem anderen User übereignet.

> > chown Username Datei(en)

> > Optional kann dem Usernamen auch mit Punkt(.) oder Doppelpunkt(:) getrennt ein Gruppennamen folgen, dann erledigt chown gleich noch die Gruppenzugehörigkeit der Datei(en). Statt User- und Gruppennamen können auch User- und GruppenID benutzt werden.

> > chown kennt den Parameter -R, mir dem ganze Unterverzeichnisbäume mit allen Dateien und Verzeichnissen darin rekursiv bearbeitet werden. Der Befehl

> > chown -R hans:users /home/hans

> > würde also das Unterverzeichnis /home/hans und alle darin enthaltenen Dateien und Verzeichnisse dem User Hans und der Gruppe users zuordnen.

> > #### chgrp

> > Wie chown, so funktioniert chgrp, nur dass dieser Befehl nur die Gruppenzugehörigkeit einer Datei oder mehrerer Dateien verändert.

> > chgrp Gruppenname Datei(en)

> > Auch hier kann die Gruppe auch als GID angegeben werden, statt als Name.

> > chgrp kennt wie chown den Parameter -R, der rekursiv ganze Verzeichnisse mt Inhalt bearbeitet.

> > chgrp kann nur vom Systemverwalter oder dem Eigentümer der Dateien benutzt werden, die bearbeitet werden sollen. Wenn ein Normaluser chgrp verwendet, so kann er die Dateien nur Gruppen zuordnen, denen er selber angehört.

> > #### chmod

> > chmod setzt oder ändert die Zugriffsrechte einer oder mehrerer Dateien. Die Benutzung von chmod ist nur dem Eigentümer oder dem Systemverwalter (root) erlaubt.

> > chmod Modus Datei(en)

> > Die Zugriffsrechte werden als Modus bezeichnet. Der Modus kann entweder als (drei- oder vierstellige) Oktalzahl oder durch Buchstabenkennungen angegeben werden. Bei Angabe als Oktalzahl legen die letzten drei Ziffern jeweils die Rechte für den Besitzer, die Gruppe und die Anderen fest. Die einzelnen Bits der Oktalziffer stehen dabei für Lesen (4), Schreiben (2) und Ausführen (1).
> > Der Modus 640 würde also dem Modusstring rw-r----- entsprechen.

> > Es ist auch möglich, einzelne Rechte zu setzen, hinzuzufügen oder abzuziehen. Dafür werden die Rechte nach dem Schema

> > ugoa =+- rwx

> > gesetzt. Das bedeutet, dass zuerst ein u (user) oder ein g (group) oder ein o (other) oder ein a (all - alle drei) gesetzt wird. Dieses Zeichen wird gefolgt von einem = (Recht wird gesetzt), oder + (Recht wird zugefügt) oder - (Recht wird abgezogen). Danach folgt ein r, w oder x.

> > Wird der erste Teil (ugoa) weggelassen, so wird a (all) angenommen.

> > Mit dieser Methode kann also zu den bestehenden Rechten z.B. ein Schreibrecht für ein Gruppenmitglied gesetzt werden, indem als Modus g+w angegeben wird. Ein +x würde der Datei Ausführungsrecht für alle (User, Group und Other) vergeben.

> > Auch chmod kennt den Parameter -R, der Verzeichnisse rekursiv bearbeitet.

> > #### umask

> > Das umask-Kommando zeigt, bzw. verändert die Dateierzeugungsmaske, nach der berechnet wird, welche Zugriffsrechte eine neu erstellte Datei bekommt.

> > umask [-S] [Maske]

> > Wird umask ohne Parameter aufgerufen, so wird die aktuelle Maske ausgegeben.

> > Wird umask mit dem Parameter -S aufgerufen, so wird die eingestellte Zugriffsberechtigung symbolisch dargestellt etwa in der Form u=rwx,g=rx,o=rx.

> > Wird umask eine Maske als Parameter angegeben, so wird diese Maske in Zukunft verwendet, um die Zugriffsberechtigung neu angelegter Dateien festzulegen. Als Maske kommen zwei Formen in Betracht:

> > 1. Die oktale Form
> >    In dieser Form errechnet sich die Maske durch die Formel
> >    7-gewünschtes_Recht=Maske
> >    Das rwx Recht (7) wäre also 0, das r-x Recht (5) demnach 2 usw.
> > 2. Die symbolische Form
> >    In dieser Form werden die gewünschten Zugriffsrechte symbolisch eingegeben, in genau der Form, die durch umask -S ausgegeben werden würde. Also nicht als Maske, sondern direkt als Zugriffsmodus. Die Form ist immer u=...,g=...,o=... wobei für ... die entsprechenden Werte rwx, rx, oder ähnliches eingegeben werden müssen. Soll kein Recht gesetztwerden folgt dem Gleichheitszeichen nichts. (u=rwx,g=,o=)
> > Das Ausführungsrecht (x) sollte in jedem Fall immer mindestens für den Eigentümer (u) gesetzt sein, da sonst die Verzeichnisse, die er erstellt, von ihm selbst nicht durchsucht werden können. Normale Dateien bekommen, auch wenn das x-Recht gesetzt ist dieses Recht nicht, wenn sie neu angelegt werden.

> > #### useradd

> > Mit diesem Befehl können neue User angelegt werden.

> > useradd | [-c Kommentar] [-d Homeverzeichnis]
> > | [-e expire_date] [-f inactive_time]
> > | [-g Standardgruppe] [-G Gruppe[,...]]
> > | [-m] [-s Shell]
> > | [-u UID] Username

> > Die einzelnen Optionen bedeuten:
> > -c Kommentar
> >   Das Kommentarfeld in /etc/passwd
> > -d Homeverzeichnis
> >   Das Heimatverzeichnis des neuen Users. Wenn diese Angabe weggelassen wird, so wird das Verzeichnis mit dem Usernamen im Verzeichnis /home angenommen.
> > -e expire_date
> >   Das Datum, an dem der eue Useraccount ungültig wird. Es muß im Format MM/TT/JJ eingegeben werden.
> > -f inactive_time
> >   Die Anzahl der Tage nachdem ein Passwort ungültig wurde bis zur endgültigen Sperrung des Accounts. Ein Wert von -1 schaltet dieses Feature ab. -1 ist auch der voreingestellte Wert, wenn dieser Parameter weggelassen wird.
> > -g Standardgruppe
> >   Der Name oder die Nummer der Standard-Gruppe, der der User angehören soll. Der voreingestellte Wert ist 1
> > -G Gruppe
> >   Die Namen weiterer Gruppen, denen der User angehören soll. Die Namen werden dabei durch Kommas ohne Leerzeichen getrennt.
> > -m
> >   Das Homeverzeichnis des Users wird angelegt, sofern es noch nicht existiert. Der Inhalt des Verzeichnisses /etc/skel wird in das neu erstellte Homeverzeichnis kopiert. Dieser Parameter muß angegeben werden, sonst wird kein Verzeichnis erstellt.
> > -s Shell
> >   Die Startshell des neuen Users. Voreingestellt ist /bin/bash.
> > -u UID
> >   Die UserID, die der neue User bekommen soll. Wenn diese Angabe weggelassen wird errechnet sich das Programm die erste freie UserID, die größer als 99 und größer als die aller anderen User ist.
> > Username
> >   Der Login-Name des neuen Users.

> > Die meisten Angaben dieses Programms können also weggelassen werden, weil das Programm sinnvolle voreingestellte Werte hat.

> > #### userdel

> > Mit diesem Befehl können bestehende Useraccounts endgültig gelöscht werden.

> > userdel [-r] Username

> > Wird der Parameter -r angegeben, so wird das Homeverzeichnis des Users samt aller darin enthaltenen Dateien auch gelöscht.

> > ### Spezielle Befehle für den Systemverwalter

> > #### mknod

> > Der Befehl mknod erstellt special-files also block- oder zeichenorientierte Geräte oder named pipes.

> > Um eine Gerätedatei anzulegen wird der Befehl mknod zusammen mit dem Namen der zu erstellenden Datei, einem b (blockorientiert) oder c (zeichenorientiert) und der Major- und Minornummer benutzt. Falls also z.B. durch ein Versehen die Gerätedatei der ersten seriellen Schnittstelle gelöscht wurde, genügt das Wissen um die notwendige Majornummer (4) und MinorNummer (64) um die Datei wie folgt wieder anzulegen:

> > mknod /dev/ttyS0 c 4 64

> > Wenn eine named pipe angelegt werden soll fällt die Angabe der Major- und Minornummer weg und statt b oder c wird ein p verwendet.

> > mknod MeinePipe p

> > #### mount

> > Alle Dateien, die in einem Unix-System erreichbar sind, sind in einem großen Dateibaum angeordnet, der im Wurzelverzeichnis / gründet. Diese Dateien können auf verschiedenen Geräten (Partitionen, Laufwerken) liegen. Der mount-Befehl dient dazu, ein Dateisystem eines bestimmten Geräts in den großen Dateibaum zu montieren. Umgekehrt kann mit dem umount-Befehl dieses Dateisystem wieder abgehängt werden.

> > Die Standard-Form des mount-Kommandos ist

> > mount [-t Filesystemtyp] Gerätedatei Zielverzeichnis

> > Das weist den Kernel an, das Dateisystem vom Typ Filesystemtyp, das sich auf dem Gerät befindet, welches durch Gerätedatei beschrieben wird, in das Verzeichnis Zielverzeichnis einzuhängen. Die vorherigen Inhalte des Verzeichnisses (sofern es welche gab) und Eigentümer sowie Modus von Zielverzeichnis werden unsichtbar solange das Filesystem gemountet bleibt. Der Pfadname Zielverzeichnis zeigt jetzt auf die Wurzel des Dateisystems auf der Gerätedatei.

> > Es existieren drei Formen des Aufrufs, die mount dazu bringen, nichts zu mounten:

> > mount -h
> >   gibt einen kurzen Hilfetext aus
> > mount -V
> >   gibt eine Versionsinformation aus
> > mount [-t Filesystemtyp]
> >   listet alle gemounteten Dateisysteme auf, wenn die -t Filesystemtyp Option benutzt wurde, dann werden nur die gemounteten Dateisysteme dieses Typs aufgelistet.

> > In der Regel werden die Geräte über ihre Gerätedateien im Verzeichnis /dev angesprochen, Ausnahmen gibt es bei NFS-Dateisystemen (NFS - Network File System) die in der Form Rechnername:Verzeichnispfad angegeben werden.

> > In der Datei /etc/fstab können zusätzliche Informationen stehen, die das mounten von Laufwerken vereinfachen. Normalerweise stehen dort alle Laufwerke, die beim Systemstart gemountet werden sollen, samt der Angabe des Dateisystemtyps und des Zielverzeichnisses. Diese Datei wird auf drei verschiedene Arten vom mount-Befehl benutzt.

> > 1. Das Kommando
> >    mount -a [-t Filesystemtyp]
> >    das üblicherweise beim booten aufgerufen wird, mountet alle Dateisysteme, die in der Datei /etc/fstab angegeben sind. (Außer denen, die mit der Option noauto versehen sind. Wird die Option -t Filesystemtyp verwendet, so werden alle Dateisysteme des angegebenen Typs gemountet.
> > 2. Wenn ein Dateisystem gemountet werden soll, über das Angaben in der Datei /etc/fstab stehen (auch die mit der Option noauto), so reicht die Angabe der Gerätedatei oder des Zielverzeichnisses beim mounten von Hand.
> > 3. Normalerweise kann nur der Systemverwalter mounten, ist aber in der Datei /etc/fstab bei einem Dateisystem die Option user gesetzt, so kann jeder Normaluser dieses Dateisystem mounten. Das ist insbesondere für Wechselmedien (Disketten, CDRom, Zip-Disk o.ä.) interessant. Steht z.B. in der Datei /etc/fstab die Zeile
> >    /dev/cdrom /cd iso9660 ro,user,noauto
> >    so kann jeder Normaluser eine CD mounten, indem er den Befehl
> >    mount /cdrom
> >    oder
> >    mount /dev/cdrom
> >    eingibt. Mit der Option user kann dann nur derjenige User das Dateisystem wieder umounten, der es gemountet hat. Ist as nicht gewünscht, so kann statt user users angegeben werden, dann können alle User das Dateisystem wieder abhängen, auch wenn sie es nicht selbst gemountet haben.

> > Jedes Dateisystem, das gemountet wurde wird vom mount-Befehl in die Datei /etc/mtab eingetragen. Diese Datei enthält also immer eine Liste aller gemounteten Dateisysteme. ACHTUNG: Diese Datei ist nicht dazu geeignet, sie von Hand zu editieren, nur der mount-Befehl (und der umount-Befehl) sollte sie verändern.

> > #### umount

> > Das umount (Vorsicht: nicht unmount) Kommando hängt gemountete Laufwerke oder Partitionen wieder aus dem Dateibaum ab. Das abzuhängende Dateisystem wird entweder über seine Gerätedatei oder über das Verzeichnis angesprochen, in das das Gerät gemountet ist.

> > Also wenn wir beispielsweise das Gerät /dev/hda6 im Verzeichnis /usr/local gemountet hätten (mit dem Befehl mount /dev/hda6 /usr/local), können wir es entweder mit

> > umount /dev/hda6

> > oder mit

> > umount /usr/local

> > wieder abhängen.

> > Zu beachten ist dabei, dass das Gerät nicht beschäftigt (busy) sein darf, wenn es abgehängt werden soll. Falls also noch Dateien dort geöffnet sind oder ein Prozess das Verzeichnis als aktuelles Arbeitsverzeichnis hat, dann bricht das umount-Kommando mit einer Fehlermeldung ab.

> > Wie das mount-Kommando, so kann auch umount alle gemounteten Dateisysteme (oder alle eines bestimmten Typs) auf einmal abhängen, indem der Parameter -a und -t Dateisystemtyp verwendet werden.

> > Um herauszubringen, welche Dateisysteme wohin gemountet sind, benutzt umount auch die Datei /etc/mtab.

> > #### fsck

> > fsck wird benutzt, um Unix-Dateisysteme auf Fehler zu überprüfen und optional aufgetretene Fehler zu reparieren. Die Aufrufform ist

> > fsck [ -Optionen ] Gerätedatei

> > In der Regel ist das fsck Programm nur ein Frontend für weitere Check-Programme, die speziell für das jeweilige Dateisystem gemacht sind. Nachdem ja verschiedene Dateisystemtypen gleichzeitig benutzt werden können, gibt es für jedes eine spezielle Version wie z.B. fsck.xiafs, fsck.ext2 oder fsck.minix.

> > Die verwendeten Optionen sind daher meist abhängig vom verwendeten Dateisystemtyp. Gemeinsam sind die folgenden Optionen:

> > -A
> >   Das fsck-Programm ließt die Datei /etc/fstab und versucht alle Dateisysteme (die als Eintrag im letzten Feld keine 0 haben) zu überprüfen. Dabei wird das Wurzeldateisystem als erstes gecheckt, sofern nicht die Option -P gesetzt ist (siehe unten). Danach werden die Dateisysteme in der Reihenfolge überprüft, die das letzte Feld in der Datei /etc/fstab festlegt. Sollten mehrere Dateisysteme die gleiche Nummer aufweisen, so versucht fsck die Überprüfung parallel durchzuführen.
> > -R
> >   Im Fall, dass die -A Option gesetzt ist, so wird die Überprüfung des Wurzeldateisystems gestrichen, falls es schon read-write gemountet ist.
> > -N
> >   Keine Veränderungen werden am Dateisystem durchgeführt, es wird nur gecheckt und gezeigt, was geändert werden würde, enn diese Option nicht gesetzt wäre.
> > -P
> >   Wenn die -A Option gesetzt ist, so wird das Wurzeldateisystem parallel mit den anderen Dateisystemen überprüft. Das ist keine gute Idee und sollte möglichst nicht angewendet werden, es sei denn, es wäre aus bestimmten Gründen unvermeidlich.
> > -s
> >   Führt alle Dateisystemüberprüfungen hintereinander durch, auch wenn die Dateisysteme alle die gleiche Reihenfolgenangabe (2) in der Datei /etc/fstab angegeben haben. Sinnvoll, wenn das fsck-Programm im interaktiven Modus läuft.
> > -a
> >   Automatisches Reparieren ohne jede Nachfrage. Vorsicht mit dieser Option ist angesagt, man wird nie gefragt, ob eine Veränderung durchgeführt werden soll.
> > -r
> >   Interaktive Reperatur der Dateisysteme. Jede Veränderung wird nachgefragt.

> > #### mkfs

> > Der Befehl mkfs (Make Filesystem) legt ein neues Dateisystem auf einem Gerät an. Wie schon der fsck-Befehl, so ist auch mkfs nur ein Frontend für die verschiedenen Dateisystemtypen, die Linux zur Verfügeng stellt. Die eigentlichen Befehle heißen dann wieder mkfs.ext2, mkfs.minix oder mkfs.xiafs.

> > Die Aufrufform ist

> > mkfs [-t Dateisystemtyp] [Dateisystemspezifische Optionen] Gerätedatei [Blocks]

> > Mit dem Parameter -t Dateisystemtyp kann angegeben werden, welches Dateisystem angelegt werden soll, wird der Parameter weggelassen, so wird das voreingestellte Dateisystem (ext2) angelegt.

> > Die Angabe der Blocks kann benutzt werden, um weniger Blocks als vorhanden zu nutzen, wird sie weggelassen, so werden alle Blocks der Partition benutzt.

> > Die dateisystemspezifischen Optionen sind für alle verwendeten Dateisysteme unterschiedlich, hier ein paar wichtige für das ext2 Dateisystem:

> > -b Blockgröße
> >   Gibt die Größe der Blocks in Byte an. Voreingestellt ist 1024
> > -c
> >   Check. Überbrüft die Partition auf schlechte Blöcke, bevor das Dateisystem angelegt wird. Achtung: Diese Überprüfung dauert lange.
> > -N Zahl der I-Nodes
> >   Ermöglicht es die Anzahl der anzulegenden I-Nodes direkt einzugeben. Nur nötig, wenn ein Dateisystem z.B. verwendet wird, um ausschließlich sehr viele sehr kleine Dateien aufzunehmen. Normalerweise werden eine vernünftige Menge I-Nodes erstellt ohne diese Angabe. (Die Anzahl der I-Nodes ist automatisch auch die maximale Anzahl Dateien, die das Dateisystem aufnehmen kann).
> > -m Prozent der Blöcke, die für den Systemverwalter reserviert werden sollen
> >   Das ext2 Dateisystem ermöglicht es, eine bestimmte Prozentzahl von Blöcken für den Systemverwalter zu reservieren. Daß verhindert z.B. dass einzelne User eine Plattevollständig vollschreiben und damit das System lahmlegen. Der voreingestellte Wert ist 5 Prozent.
> > -L Volume-Label
> >   Erstellt ein Volume-Label (Name) für die Partition

> > [ Kurs Hauptseite ] [ Linux-Kurse ] [ Startseite Linux-Praxis ]

> > © 1999, 2000, 2001 by F. Kalhammer