Kapitel 19 Einstieg in Linux Unix ist ein derart komplexes System, dass im Folgenden nur die wichtigs- ten Aspekte abgedeckt werden können. Das vorliegende Handbuch ist nicht darauf ausgelegt, etablierte Linux- bzw. Unix-Literatur zu ersetzen ­ das soll und kann es auch nicht. In jedem Fall empfehlen wir für DOS-Aus- oder -Umsteiger die Beschaf- fung eines entsprechenden Buches. Beispiele dafür finden Sie in den Litera- turempfehlungen im Anhang. Falls Sie bereits über nicht Linux-spezifische Unix-Literatur verfügen, so kann diese u. U. ausreichen, da der Großteil der Informationen über Systemgrenzen hinweg gültig ist. Einige Bücher bzw. Auszüge davon, die der GPL unterliegen, befinden sich als .dvi- bzw. PostScript-Dateien in Paket doc, Serie books. Diese können unter X11 mit XDvi (xdvi) bzw. Ghostview (gv) eingesehen und mit lpr komplett oder auch seitenweise ausgedruckt werden. Bis Sie Ihr Unix-Buch jedoch in Händen halten, sollen die folgenden Einstei- gerinformationen Ihren Forscherdrang unterstützen helfen. Als Unix-Neuling sollten Sie sich nach der erfolgreichen Installation unter Ihrem bei der Installation eingegebenen Benutzernamen einloggen; nicht nur, weil für diesen Benutzer schon diverse einstiegsfreundliche" Voreinstellun- gen vorgenommen sind, sondern auch, weil Sie so, wie bei Unix-Systemen üblich, nur" die Verantwortung für Ihr Benutzerverzeichnis (engl. home directory) tragen. Dieses Vorgehen, das Arbeiten unter einem Benutzerna- men, dient bei Multiuser-Betriebssystemen ausschließlich der Systemsicher- heit. Ein versehentliches Löschen bzw. Verändern von systemrelevanten Da- teien etc. ist damit weitgehend ausgeschlossen. Ein undelete wie unter DOS steht (noch) nicht zur Verfügung, weshalb auch bei unbeabsichtigter Einwirkung auf Systemdateien u. U. eine kom- plette Neuinstallation erforderlich sein kann. Der Einstieg in Linux gestaltet sich für einen Anfänger vor allem deshalb so komplex, weil gleichzeitig damit die äußerst anspruchsvolle Aufgabe des Systemadministrators verbunden ist. 19.1 Einloggen, `root'-Benutzer, Benutzer anlegen Die Mehrbenutzer-Fähigkeiten (engl. multiuser) von Linux bedingen, dass immer, wenn Sie das System benutzen wollen, Sie sich auf der Konsole 475 19. Einstieg in Linux (auf der Sie zu arbeiten gedenken, vgl. Abschnitt 19.4 auf Seite 479) beim System anmelden müssen1. Diesen Vorgang, ein wesentlicher Teil des Sicher- heitskonzepts eines modernen Mehrbenutzersystems, nennt man Einloggen; dadurch wird u. a. sichergestellt, dass jeder Benutzer seine eigene Arbeitsum- gebung erhält und nur auf die eigenen Daten zugreifen kann. Sie geben also Ihren Benutzernamen (z. B. `tux') und Ihr Passwort ein (z. B. xxxxxx); die Zeichen xxxxxx müssen Sie durch Ihr eigenes selbst vergebenes Pass- wort ersetzen! Die Zeichen xxxxxx werden am Bildschirm nicht angezeigt; geben Sie die Zeichen einfach der Reihe nach ein und tippen Sie dann 2: login: tux Password: xxxxxx Wenn Sie erfolgreich eingeloggt" sind, befinden Sie sich im Benutzer-Ver- zeichnis des jeweiligen Benutzers (z. B. /home/tux für den Benutzer `tux'). Wenn Sie die Konsole verlassen wollen (ausloggen), geben Sie logout bzw. exit ein. Der Benutzer `root' agiert als Systemverwalter ( Systemadministrator) und darf wirklich ALLES. Wichtige Systemdateien können nur von `root' manipuliert werden. Loggen Sie sich daher nur dann als `root' ein, wenn Sie diese Möglichkeiten wirklich nutzen möchten. Sie schützen Ihr System damit vor versehentlichen Änderungen, die u. U. eine Neuinstallation erzwin- gen können. Einige Dinge, die nur `root' gestattet sind: * mounten von Dateisystemen wie CDs und Disketten und damit auch die Installation von Software. Dieses Recht kann aber auch den normalen Benutzern durch Angabe der Option user für das entsprechende Gerät in der /etc/fstab gewährt werden (vgl. Abschnitt 19.11.2 auf Sei- te 493). * Anlegen und Entfernen von Benutzern (vgl. Abschnitt 3.6.7 auf Sei- te 110). * Installation eines neuen Kernels (vgl. Kapitel 13 auf Seite 353). * Konfigurieren des Systems. * Herunterfahren des Systems (vgl. Abschnitt 19.2). * YaST aufrufen (vgl. Kapitel 3 auf Seite 81). 19.2 Anhalten des Systems und Booten WICHTIG: Unter keinen Umständen dürfen Sie während des Betriebs einfach den Strom abschalten oder den Resetknopf ( Zurücksetzen) betä- tigen; Sie würden sonst eine Beschädigung des Dateisystems riskieren. Dies kann zum Datenverlust führen. 1 Wenn Sie ein grafisches Login konfiguriert haben (vgl. Abschnitt 3.6.5 auf Seite 109), dann gilt das im folgenden beschriebene Vorgehen selbstverständlich auch! 2 Falls Sie kein Passwort vergeben haben sollten, ist anfangs nur zu tippen! 476 19.3. Befehle ­ Eingaben an der Kommando-Zeile Zum regulären Anhalten des Rechners (engl. shutdown) dienen die in Tabel- le 19.1 gezeigten Befehle. shutdown -h now hält das System an (Sie können nach der Aus- gabe: "the system is halted" gefahr- los abschalten) shutdown -r now startet das System nach dem Herunterfahren so- fort neu Tabelle 19.1: Befehle zum Anhalten des Linux-Systems Der Befehl shutdown kann in all seinen Varianten im Allgemeinen nur vom Benutzer `root' ausgeführt werden. Um Ihr System herunterzufahren", loggen Sie sich also als `root' ein und geben die Befehle shutdown -h now oder shutdown -r now ein. Alternativ können Sie zum Neustarten die Tastenkombination Strg + Alt + Entf ( Ctrl + Alt + Del )drücken. Da diese Tastenkombination unter X abgefangen wird, müssen Sie zunächst X beenden. In der Textkonsole kann sie aber von jedem Benutzer ausgeführt werden. 19.3 Befehle ­ Eingaben an der Kommando-Zeile Wenn auch die Linux-Welt immer bunter und leichter bedienbar wird, z. B. über menügesteuerte Programme, bleibt doch am Ende ­ im Katastrophen- fall oder wenn es eben kein menügeführtes Programm für einen bestimmten Zweck gibt ­ nur noch die Eingabe von Unix- Befehlen". Was sind Unix-Befehle? Unix-Befehle sind * ausführbare Programme * Shell-Skripten * Skripten von Skript-Sprachen wie Perl, Python, Tcl usw. * Shell-Aliasse (so etwas wie Shell-Makros). Allen gemeinsam ist, dass sie in Dateien liegen: Wenn man ein Programm unter Linux aufruft, dann weist man damit die Shell an, die Datei mit dem Namen des Programms zu suchen ­ dazu braucht man den Suchpfad, reprä- sentiert in der Variablen PATH und insofern sie das Programm gefunden hat, dieses auszuführen, wenn es die entsprechenden Benutzerrechte (ausführbar) besitzt. Was aber, wenn man dem Programm (z. B. dem Kopierbefehl) noch mitteilen muss, mit welchen Dateien etwas geschehen soll? Das ist relativ einfach, dazu gibt es so genannte Parameter (engl. parame- ter). Parameter sind zusätzliche Argumente zu einem Befehl, die dem Befehl 477 19. Einstieg in Linux notwendige Daten mitteilen. Die Parameter folgen in der Eingabezeile dem Namen des Befehls, und zwar durch mindestens ein Leerzeichen getrennt3. Weiterhin kann es oft notwendig sein, das Verhalten eines Befehls zu beein- flussen (z. B. soll ein Verzeichnis in Langform anstelle nur der Dateinamen aufgelistet werden). Dies geschieht unter Linux mit so genannten Optionen (engl. options). Optionen stehen immer direkt nach dem Befehlsnamen und vor den Parametern; Ausnahmen von unsauber programmierten Befehlen sind selten, aber möglich. Meist werden Optionen durch ein Minus gekennzeich- net (z. B. -la) und können im Wesentlichen zwei Schemata folgen (vgl. Ta- belle 19.2). -a Kurzform, Unix-üblich --all Langform, sog. GNU-Notation Tabelle 19.2: Optionen zu Befehlen Wenn mehrere Optionen gesetzt werden sollen, können viele Linuxprogram- me diese auch kumulieren". Das bedeutet, dass nicht alle Optionen mit Mi- nus am Anfang nacheinander aufgeführt werden, sondern nur die erste ein Minus erhält, die folgenden direkt an die erste geschrieben werden. Beispiel: -a -f -r -u oder -afru oder -frua Das Beispiel zeigt auch, dass i. a. die Reihenfolge der Optionen unwichtig ist. Auch bestätigen manche Ausnahmen wieder die Regel. Um dem ganzen die Krone aufzusetzen können Optionen selbst wieder Para- meter nehmen. Beispiel: -f oder -f Dabei sollte es zumeist unwichtig sein, ob zwischen der Option und dem Parameter ein Leerzeichen steht; i. a. sollte man ein Leerzeichen setzen. Beispiele So, die Zusammenfassung. Ein Befehl unter Linux sieht so aus (Beispiele)4: erde: # fdisk erde: # lsmod erde: # ls Mit Optionen sieht das dann so aus: erde: # fdisk -v erde: # ls -l -a erde: # ls -la Mit Parametern: 3 Fußnote: Das impliziert auch gleich, dass ein Leerzeichen nicht Teil des Parameters sein kann, da es ja der Argumente- Trenner" ist. Leerzeichen dürfen dann in einem Parameter auftreten, wenn der Parameter von Anführungszeichen "" oder " umgeben ist. 4 Zur Erinnerung: mit erde: # " wird die Eingabe-Aufforderung angezeigt; dieser Wörter und Zeichen haben Sie nicht einzugeben 478 19.4. Virtuelle Konsolen erde: # fdisk /dev/hda erde: # ls /tmp Und mit Optionen und Parametern: erde: # ls -la /tmp erde: # rpm -qpl .rpm erde: # gcc -o Wesentlich ist, dass das Leerzeichen alle Befehlsteile voneinander trennt und deswegen ein besonderes Zeichen in Linux-Befehlsfolgen ist. 19.4 Virtuelle Konsolen Linux ist multitasking- und multiuserfähig. Auch bei einem Ein-Benutzer- PC-System werden Sie die Vorteile, die diese Fähigkeiten mitbringen, schät- zen lernen: Im Textmodus stehen 6 virtuelle Konsolen zur Verfügung, zwischen denen Sie durch die Tastenkombinationen Alt + F1 bis Alt + F6 wechseln können. Die siebte Konsole ist für X11 reserviert.5 Wenn Sie von X11 aus auf eine Textkonsole zurückschalten möchten, ohne X11 zu beenden, verwenden Sie Ctrl + Alt + F1 bis Ctrl + Alt + F6 . Mit Alt + F7 kommen Sie zu X11 zurück. 19.5 Verzeichnisse und Dateinamen Alle Informationen ­ seien es Texte, Bilder, Datenbankdaten oder auch Anga- ben zur Konfiguration des Systems ­ werden in Dateien" abgelegt, die ihrer- seits in festgelegten Verzeichnissen" untergebracht werden (vgl. Anhang D auf Seite 521). Mit all den Tools und Programmen kann man auf diese Datei- en in unterschiedlichen Verzeichnissen zugreifen, um ggf. den Inhalt dieser Dateien anzusehen oder zu verändern. Der Pfadtrenner" ist unter Unix der `/' (engl. slash) (unter DOS: `\'). Ein Pfad ist demnach eine Zeichenkette, in der die Verzeichnisnamen durch `/' getrennt sind. Ein einzelner `/' bezeichnet dabei das oberste Verzeichnis, das Wurzelverzeichnis. Unix unterscheidet Groß- und Kleinschreibung, d. h. der Dateiname Emil be- zeichnet eine andere Datei als emil; eine Trennung der Dateinamen in Name und Extension ist im allgemeinen nicht erforderlich, es sei denn, bestimmte Programme erwarten dies (z. B. LATEX). Eine angenehme Erleichterung bei der Eingabe von Datei- bzw. Verzeich- nisnamen ist die Funktion der Taste Tab (Tabulatortaste). Geben Sie die ersten Buchstaben der gewünschten Datei ein und drücken Sie Tab .Die Shell ergänzt nun den kompletten Dateinamen (solange er durch den oder die ersten Buchstaben eindeutig bestimmt ist). Zweimaliges Drücken der Tabulatortaste zeigt bei Mehrdeutigkeiten alle Möglichkeiten. 5 Durch Modifikation der Datei /etc/inittab können auch weitere oder weniger Konsolen zur Verfügung gestellt werden. 479 19. Einstieg in Linux 19.6 Arbeiten mit Verzeichnissen Nach dem Einloggen (vgl. Abschnitt 19.1 auf Seite 475) befindet man sich in seinem Benutzerverzeichnis. Der Name des aktuellen Verzeichnisses kann mit dem Befehl pwd (engl. print working directory) ausgegeben werden: tux@erde:/home/tux > pwd /home/tux Um in ein anderes Verzeichnis zu wechseln, dient wie unter DOS der Befehl cd (engl. change directory). Die Eingabe von tux@erde:/home/tux > cd /usr/bin tux@erde:/usr/bin > wechselt demnach in das Verzeichnis /usr/bin, tux@erde:/home/tux > cd latex tux@erde:/home/tux/latex > wechselt in das Unterverzeichnis latex, sofern im Benutzerverzeichnis von `tux' das Verzeichnis /home/tux/latex existiert. Wird cd ohne ein Argument aufgerufen, so wird in das Benutzerverzeichnis des aufrufenden Benutzers gewechselt. Das Benutzerverzeichnis kann auch mit Hilfe der Tilde ` ' bezeichnet werden. Die Eingabe von tux@erde:/home/tux > cd ~/latex wechselt in das Verzeichnis latex im Benutzerverzeichnis des aufrufen- den Benutzers. Wie auch unter DOS bezeichnet `..' das übergeordnete Ver- zeichnis und `.' das aktuelle Verzeichnis. Neue Verzeichnisse werden mit dem Befehl mkdir (engl. make directory) angelegt. Durch Eingabe von tux@erde:/home/tux > mkdir texte wird also das Unterverzeichnis texte im jeweiligen Verzeichnis erstellt. Leere Verzeichnisse können mit dem Befehl rmdir (engl. remove directory) gelöscht werden. 19.7 Arbeiten mit Dateien Bis sie (vielleicht) eines Tages von Objekten bzw. Symbolen abgelöst werden, sind Dateien von zentraler Bedeutung für die Arbeit am Computer. Entspre- chend zahlreich sind die dateibezogenen Befehle unter Linux. 19.7.1 Informationen über Dateien Der Befehl ls zeigt den Inhalt des aktuellen Verzeichnisses an. Ausgegeben wird eine Liste aller Dateien und Verzeichnisnamen im aktuellen Verzeichnis. Die Verzeichnisnamen werden in der Ausgabe mit einem `/' gekennzeich- net. Es kann auch durch Angabe eines Parameters der Inhalt eines anderen Verzeichnisses angezeigt werden: tux@erde: > ls /usr/bin Ausführbare Programme sind nicht durch Extensionen gekennzeichnet, wie .exe oder .com unter DOS. Beim Auflisten mit ls wird entweder ein As- terisk `*' angehangen und/oder es rot hervorgehoben (vgl. die Dokumen- tation zu ls; z. B. die Ausgabe von 480 19.7. Arbeiten mit Dateien tux@erde: > ls --help Man darf den Asterisk nie explizit angeben; er wird ­ bedingt durch das Attribut executable" ­ jeweils hinter dem Dateinamen nur angezeigt; Infos über Dateien sind auf Seite 486 zu finden. Eine nützliche Option von ls ist -l. Dadurch werden zusätzliche Informa- tionen zum Datei- bzw. Verzeichniseintrag wie Zugriffsrechte, Eigentümer, Gruppenzugehörigkeit und Größe ausgegeben: tux@erde: > ls -l Dies erzeugt die Ausgaben in Ausgabe 19.7.1. drwxr-xr-x 6 tux users 1024 Mar 21 12:39 ./ drwxr-xr-x 4 tux users 1024 Mar 21 17:13 ../ drwxr-xr-x 2 tux users 1024 Nov 6 16:19 bin/ -rwxr-xr-x 1 tux users 4160 Mar 21 12:38 check* drwxr-xr-x 2 tux users 1024 Nov 6 16:23 etc/ drwxr-xr-x 2 tux users 1024 Nov 6 16:19 sbin/ drwxr-xr-x 12 tux users 1024 Nov 6 18:20 usr/ -rw-r--r-- 1 tux users 185050 Mar 15 12:33 xvi.tgz -rw-r--r-- 1 tux users 98444 Mar 14 12:30 xvnews.tgz Ausgabe 19.7.1: Ausgabe von ls -l Die Bedeutung der einzelnen Felder in Ausgabe 19.7.1 wird in Tabelle 19.3 erklärt. Rechte Das erste Zeichen dieses Feldes bezeichnet den Da- teityp. Hierbei steht `d' für Verzeichnis, `l' für Link und `-' für eine normale Datei. Die folgen- den 9 Zeichen geben die Zugriffsrechte für den Be- sitzer, die Gruppe und alle anderen Benutzer an (je- weils drei Zeichen). Hierbei steht `r' für lesen, `w' für schreiben, und `x' für ausführen. Die Rechtemas- ke `-rw-r-r-' bezeichnet demnach eine Datei, die vom Eigentümer, den Mitgliedern der Gruppe, und al- len anderen gelesen werden kann, aber nur vom Ei- gentümer verändert werden kann. Siehe Manual-Page von chmod (man chmod). Besitzer Der Eigentümer der Datei. Siehe Manual-Page von chown (man chown). Gruppe Die Gruppenzugehörigkeit der Datei. Siehe Manual- Page von chgrp (man chgrp). Größe Die Größe der Datei in Bytes. letzte Änderung Das Datum der letzten Änderung der Datei. Bei Da- teien, deren letzte Änderung über ein Jahr zurückliegt, wird anstelle der Uhrzeit das Jahr angegeben. Name Der Name der Datei oder des Verzeichnisses. Tabelle 19.3: Erklärung der Unix-Dateiattribute 481 19. Einstieg in Linux 19.7.2 Wildcards ­ ein kleiner Ausblick Verglichen mit DOS sind die durch die Befehlsinterpreter (z. B. bash) gege- benen Einsatzmöglichkeiten von Wildcards faszinierend". Wildcards beschränken sich unter Linux nicht nur auf den `*' und `?'. Beispielsweise können mit tux@erde: > ls *a???.? alle Dateien im aktuellen Verzeichnis ausgegeben werden, deren sechstletzter Buchstabe ein `a' und deren vorletztes Zeichen im Dateinamen ein `.' ist. Anstelle des einzelnen Zeichens `a' könnte auch eine ganzer Satz verschie- dener Zeichen stehen. Beispielsweise die Buchstaben `a', `b', `c', `d', `e', `f'. Auf unser Beispiel angewandt lautet der Befehl dann: tux@erde: > ls *[a-f]???.? Auch nach alphabetisch nicht aufeinanderfolgenden Zeichen kann wahlfrei gesucht werden: tux@erde: > ls *[1,3-5,M-P,a,k]???.? 19.7.3 Inhalt von Dateien: more und less Der Inhalt einer Datei kann mit den Befehlen more und less seitenweise angezeigt werden. Beim klassischen more kann nur nach unten" geblättert werden6; less ist wesentlich komfortabler und sollte deshalb durchweg be- vorzugt werden. Mit tux@erde: > less /etc/login.defs lädt man die Datei /etc/login.defs in den Viewer" less; das ist ziem- lich unspektakulär ­ gerade einmal wird zur 1. Seite des Dateiinhalts zusätz- lich eine inverse Statuszeile am unteren Rand mitgeteilt. Mit (der Leertaste) kann nun jeweils eine Seite nach vorne, mit b eine Seite zurück geblättert werden; vgl. auch die Aufzählung in Tabelle 19.4 auf der nächsten Seite. h Hilfe q Beenden e Eine Zeile vorwärts y Eine Zeile rückwärts f Eine Seite vorwärts b Eine Seite rückwärts d Eine halbe Seite vorwärts u Eine halbe Seite rückwärts g Zum Anfang der Datei gehen G Zum Ende der Datei gehen / Suche einleiten n Nächste Fundstelle anspringen Tabelle 19.4: Fortsetzung auf der nächsten Seite... 6 more unter Linux kann mehr ­ vgl. Manual-Page von more (man more) ;-) 482 19.7. Arbeiten mit Dateien v Datei in den Editor laden F Eine wachsende" (Log-)Datei beobachten ^c Vom F-Modus wieder auf normal" schalten Tabelle 19.4: Tasten des Viewers" less (Auswahl) Mit / leiten Sie einen Such-Auftrag nach einer Zeichenkette (z. B. yes) ein und schicken Sie diese dann ab mit .Tippen Sie n , dann wird das nächste Vorkommen von yes angezeigt. Interessant ist die Taste F ; damit können Sie verfolgen, wie z. B. bei einer Logdatei weitere Einträge hinzukommen. Mit Strg + c verlassen Sie die- sen Modus wieder. Mit h erhalten Sie eine Auflistung aller Features, die less zur Verfügung stellt; mit q verlassen Sie die Hilfe" wieder und mit einem weiteren Tas- tendruck q beenden Sie das Programm komplett und landen wieder auf der Kommandozeile am Prompt. Zum Verändern von Textdateien nehmen Sie einen Editor; der Standard- Editor eines Unix-Systems ist der vi, mit dem Sie sich in einer ruhigen Minute unbedingt vertraut machen sollten (vgl. Abschnitt 19.15 auf Seite 499). 19.7.4 Versteckte Dateien Eine spezielle Klasse von Dateien sind die versteckten Dateien. Die Datei- namen beginnen mit einem Punkt und werden von der Shell nur angezeigt, wenn ls mit der Option -a aufgerufen wird. Geben Sie einfach in Ihrem Benutzerverzeichnis den Befehl ls -a ein. Nun sollten auch die mit ei- nem Punkt beginnenden versteckten" Dateien wie ~/.profile und ~/ .xinitrc aufgelistet werden. Versteckte Dateien sind vor versehentlichem Löschen durch rm * (siehe Abschnitt 19.7.5) geschützt und müssen ggf. durch ein explizites Löschen mit rm <.dateiname> entfernt werden. Die Eingabe von rm .* löscht alle versteckten Dateien des aktuellen Ver- zeichnisses. Wird zusätzlich noch die Option -r (engl. recursive) verwen- det (rm -r .*) werden auch alle Dateien des übergeordneten Verzeich- nisses gelöscht, die ja die Form `../bla' haben, was auch durch den Ausdruck `.*' abgedeckt wird. Im Übrigen sollte man mit der Option -r immer sehr bewusst und vorsich- tig umgehen! 19.7.5 Kopieren, Umbenennen und Löschen von Dateien Der Befehl, um Dateien zu kopieren, lautet unter Linux cp: tux@erde: > cp quelldatei zieldatei Anstelle von kann auch ein vorhandenes Verzeichnis angegeben werden; dann wird in dem Zielverzeichnis die Quelldatei mit dem gleichen 483 19. Einstieg in Linux Namen abgelegt. Um also die Datei /etc/XF86Config aus dem Verzeich- nis /etc in das eigene Benutzerverzeichnis zu kopieren, kann folgender Be- fehl eingegeben werden: tux@erde: > cp /etc/XF86Config ~ Dateien können mit dem Befehl rm (engl. remove) gelöscht werden. Eine nützliche Option ist -r (engl. recursive), wodurch auch alle Unterverzeich- nisse und die darin enthaltenen Dateien gelöscht werden (vergleichbar mit dem seit DOS 6.0 verfügbaren Befehl deltree). Die Eingabe von tux@erde: > rm -r bin löscht z. B. das Verzeichnis bin im aktuellen Verzeichnis und alle sich darin befindlichen Dateien und Verzeichnisse. Diese Option ist mit äußerster Vor- sicht anzuwenden, da keine Möglichkeit besteht, versehentlich gelöschte Da- teien wiederherzustellen! Der Befehl mv (engl. move) verschiebt Dateien oder Verzeichnisse. Die Syn- tax ist identisch mit der von cp. So wird durch Eingabe des Befehls tux@erde: > mv xvnews.tgz XVNEWS.tgz die Datei xvnews.tgz aus dem aktuellen Verzeichnis auf die Datei mit dem Namen XVNEWS.tgz im aktuellen Verzeichnis verschoben", was einem einfachen Umbenennen gleichkommt. Interessanter wird es erst, wenn ganze Verzeichnisse verschoben werden: tux@erde: > mv bin ~/latex verschiebt das Verzeichnis bin (sofern ein solches im aktuellen Verzeichnis existiert) nach ~/latex. Alle Verzeichnisse und Dateien die vorher unter bin zu finden waren, befinden sich jetzt unter ~/latex/bin. Auch mit diesem Befehl sollte vorsichtig umgegangen werden, da schnell ganze Ver- zeichnisbäume an später nur schwer wiederauffindbare Stellen verschoben werden können. Das Verschieben eines kompletten Verzeichnisbaumes ist nur innerhalb eines Dateisystems (also einer Partition) möglich. 19.7.6 Suchen und Durchsuchen von Dateien Ein weiterer nützlicher Befehl: find. Um in allen Unterverzeichnissen des aktuellen Verzeichnisses nach der Datei emil zu suchen, sollte folgendes eingegeben werden: tux@erde: > find . -name "emil" Das erste Argument bezeichnet dabei das Verzeichnis, ab dem die Suche gestartet werden soll. Die Option -name verlangt einen zu suchenden String, in dem auch Wildcards erlaubt sind. Um also nach allen Dateien zu suchen, die die Zeichenkette `emil' im Namen enthalten, müsste die Eingabe von gerade folgendermaßen geändert werden: tux@erde: > find . -name "*emil*" Wie bei allen Befehlen verweisen wir für eine genauere Beschreibung auf die jeweilige Manual-Page. Es gibt noch die viel schnellere Möglichkeit, Dateien mittels locate auf- zufinden. Beachten Sie hierzu die Manual-Pages von locate und die dort referenzierten Manual-Pages. 484 19.7. Arbeiten mit Dateien Wenn nicht nach einem bestimmten Dateinamen, sondern nach einer Zei- chenkette in einer Datei gesucht werden soll, kann dazu der Befehl grep (engl. get regular expression pattern) verwendet werden. Die folgende Ein- gabe sucht in der Datei emil nach der Zeichenkette `detektive': tux@erde: > grep "detektive" emil Auf diese Weise lassen sich große Textmengen schnell nach bestimmten Zei- chenketten durchsuchen. Es können beliebig viele Dateinamen angegeben werden. Auch eine Suche mit Wildcards und regulären Ausdrücken wird un- terstützt. Als Ergebnis der Suche wird jede Zeile ausgegeben, in der die zu suchende Zeichenkette enthalten ist. grep lässt sich über viele Optionen sehr stark in seinem Suchverhalten be- einflussen. Lesen Sie deshalb bitte die Manual-Page von grep (man grep). 19.7.7 Symbolische Links Durch die Verwendung von symbolischen Links kann einer Datei quasi ein zusätzlicher Name gegeben werden. Dieser Name zeigt" dann auf diese Da- tei. Es kann z. B. vorkommen, dass verschiedene Versionen eines Program- mes aufgehoben werden sollen, dass aber die jeweils neueste Version immer unter dem gleichen Namen verfügbar sein soll. Die Lösung liegt in der Er- stellung eines symbolischen Links, der jeweils auf die benutzte Version zeigt. Symbolische Links verhalten sich wie die Dateien, auf die sie zeigen, sind also auch ausführbar. Die folgende Eingabe tux@erde: > ln -s check.2.4 check Erzeugt den symbolischen link check, der auf die Datei check.2.4 zeigt. Im Verzeichnis sieht dies etwa so aus: lrwxrwxrwx 1 tux users 1024 Mar 21 17:13 check - > check.2.4* Links können genau wie Dateien mit rm entfernt werden. Hierbei wird nur der Link und nicht die referenzierte Datei entfernt! 19.7.8 Daten archivieren und sichern Zum Erzeugen und Auspacken von Archiven dient der tar-Befehl (engl. tape archive). Ein Archiv kann einzelne Dateien und / oder ganze Verzeich- nisbäume einschließlich der darin liegenden Dateien enthalten. Dermaßen zusammengepackte Archive kann man auch komprimieren, was meist deren Größe erheblich reduziert. Üblicherweise gibt man komprimier- ten Archiven die Endung .tgz oder .tar.gz, unkomprimierten .tar. Die wichtigsten Anwendungsfälle des tar-Befehls sind: 1. Auspacken von Archiven (z. B. von den CDs) tux@erde: > tar xvfz archivdatei.tgz tar entpackt (x) nun das komprimierte (z) Archiv archivdatei. tgz (f) und legt dabei selbständig evtl. Unterverzeichnisse an. Bei jeder Datei, die gerade ausgepackt wird, wird deren Namen auf dem Bildschirm ausgegeben (v). 485 19. Einstieg in Linux 2. Erzeugen von Archiven tux@erde: > tar cvfz archivdatei.tgz datei1 verz1 tar erzeugt (c) das komprimierte (z) Archiv archivdatei.tgz (f), in dem die Datei datei1 und alle Dateien im Verzeichnis verz1 ein- schließlich seiner Unterverzeichnisse enthalten sind. Bei jeder Datei, die gerade eingepackt wird, wird deren Namen auf dem Bildschirm ausgege- ben (v). 3. Ansehen des Archivinhalts tux@erde: > tar tfz archivdatei.tgz tar gibt ein Inhaltsverzeichnis (t) des komprimierten (z) Archivs ar- chivdatei.tgz (f) aus. Die Option z gibt an, dass das Programm GNU Zip (gzip) verwendet wer- den soll, um komprimierte Archivdateien zu erzeugen bzw. auszupacken. tux@erde: > tar xvf archivdatei.tar entpackt also die unkomprimierte Archivdatei archivdatei.tar. Nähere Informationen liefert: tux@erde: > tar --help 19.8 Zugriffsrechte auf Dateien Nur der Benutzer `root' hat als Systemverwalter uneingeschränkte Zu- griffsrechte auf alle Dateien, d. h. er darf als einziger auch alle Zugriffsrechte setzen oder löschen. Das Konzept der Rechte Die Verteilung der Zugriffsrechte auf eine Datei werden als Rechtemaske beschrieben, die aus drei Teilen besteht: * Rechte des Besitzers * Rechte für Gruppenmitglieder * Rechte für alle anderen Jede dieser drei Kategorien wird bei der (langen) Darstellung eines Verzeich- niseintrags durch jeweils drei Zeichen angezeigt. Zusammen mit dem ersten Zeichen für den Dateityp (d, l, oder -) ergeben sich die 10 Flags für jede Datei. Jedes Flag wird durch ein Zeichen repräsentiert. Die möglichen Flags sind für alle drei Kategorien gleich: `r' für Lesen (engl. readable), `w' für Schreiben (engl. writable) und `x' für Ausführen (engl. executable). Ist ein Flag nicht gesetzt, so wird dies durch das Zeichen `-' gekennzeichnet. Betrachten wir als Beispiel den Verzeichniseintrag für die imaginäre Datei linux.info. -rw-r-xr-- 1 tux users 29524 Jun 29 13:11 linux.info Für die Datei linux.info bedeutet dies folgendes: Der Eigentümer der Datei (tux) darf sie ändern und lesen, die Mitglieder der Gruppe users dürfen sie nur lesen und ausführen, während alle anderen Systembenutzer 486 19.8. Zugriffsrechte auf Dateien - r w - r - x r - - Typ Eigentümer Gruppe Andere Abbildung 19.1: Darstellung der Rechte an Dateien linux.info nur lesen dürfen. Der führende `-' zeigt an, dass es sich um eine normale" Datei (engl. regular file) handelt. Ganz ähnlich verhält es sich mit Verzeichnissen. Dann steht vor den 9 Zei- chen, die die Rechte zuordnen, noch ein `d' (engl. directory) und könnte so aussehen: drwxr-xr-- 3 tux users 1024 Jun 29 13:11 info/ Wenn für ein Verzeichnis das `x'-Flag gesetzt ist, dann bedeutet dies, dass man in dieses Verzeichnis hineinwechseln kann. Also dürfen Benutzer, die nicht zur Gruppe users gehören, nicht in das Verzeichnis info wechseln. Ändern von Zugriffsrechten Die Änderung von Zugriffsrechten geschieht mit dem Befehl chmod (engl. change mode). Im wesentlichen benötigt chmod zwei Argumente: * die zu ändernden Zugriffsrechte, und * einen Dateinamen. Die Kategorien der drei möglichen Gruppen werden dabei durch `u' für den Eigentümer bzw. Benutzer (engl. user), `g' für die Gruppe (engl. group) und `o' für alle anderen (engl. others) angegeben, gefolgt von den zu ändernden Zugriffsrechten. Ein `-' oder `+' wird hierbei für das Entfernen oder Hin- zufügen von Rechten verwendet. Folgende Eingabe setzt z. B. die Rechte der Datei linux.info für Gruppenmitglieder auf lesbar, veränderbar und aus- führbar: tux@erde: > chmod g+rwx linux.info Wenn Rechte für alle drei Kategorien von Benutzern gesetzt werden sollen, genügt die Angabe der zu ändernden Rechte. Folgende Eingabe setzt die Rechte für die Datei linux.info so, dass niemand Schreiberlaubnis be- sitzt: tux@erde: > chmod -w linux.info Die Rechte für Lesen und Ausführen werden davon nicht betroffen. Zugriffsrechte können auch in einem Befehl entzogen und gesetzt werden. Folgende Eingabe setzt die Rechte der Datei linux.info des Eigentümers auf ausführbar, nicht lesbar, nicht veränderbar: tux@erde: > chmod u+x-rw linux.info Wenn man sich das Ergebnis ansieht: tux@erde: > ls -l linux.info ---xr-xr-- 1 tux users 29524 Jun 29 13:11 linux.info 487 19. Einstieg in Linux In diesem Zusammenhang interessante Befehle sind chown für Besitzer ändern" (engl. change owner) und chgrp, um die Gruppe zu ändern (engl. change group). Das Ändern von Rechten geht freilich nur dann, wenn das zugrundeliegen- de Dateisystem ein Rechtesystem unterstützt. So muss man bei msdos- oder vfat-Systemen bereits beim Mounten" die Rechte festlegen (vgl. Abschnitt 19.11.2 auf Seite 494). 19.9 Manual-Pages Über Befehle, Konfigurationsdateien und C-Bibliothekfunktionen geben Ih- nen die Manual-Pages Auskunft. Die verschiedenen Aufrufvarianten zeigt Ta- belle 19.5. man ruft die Manual-Page zu auf. man -f sucht nach und listet die gefundenen Manual- Pages. man -k sucht in allen Sektionen der Manpages nach einer Manual- Page zum Stichwort und listet die gefunde- nen Manual-Pages. man ruft die Manual-Page zu aus auf. So ruft der Befehl man 1 man die Manual-Page zum Befehl man aus der Sektion 1 auf. Tabelle 19.5: Aufrufe des Befehls man Zum Anzeigen der Manual-Pages verwendet der Befehl man das Tool less; vgl. zur Bedienung von less den Abschnitt 19.7.3 auf Seite 482. Sollten Sie das SuSE-Hilfesystem installiert haben, so können Sie darüber die Manual- Pages bequem mit einem Webbrowser einsehen. ­ Unter dem X Window System können Sie auch das Programm xman verwenden. Der gewöhnli- che man-Befehl hat dessen ungeachtet seine Daseinsberechtigung: man ist einfach schneller. 488 19.10. Informationen über den Systemzustand Die Manual-Pages sind auf verschiedene Sektionen aufgeteilt; vgl. Tabel- le 19.6 auf der nächsten Seite. 1 Beschreibt die Benutzerbefehle, allerdings sind viele bash- und tcsh-Befehle eingebaute Befehle, d. h. hier geben die Manual- Pages der benutzten bash oder tcsh Auskunft. 2 Die Systemaufrufe der verschiedenen Bibliotheken. 3 Die C-Bibliotheksfunktionen. 4 Die Beschreibung von Konfigurationsdateien. 5 Die Syntax wichtiger Dateien. 6 Beschreibung von Spielen. 7 Alles was mit Text, Textformatierung und anderen Formaten zu tun hat. 8 Die Befehle des Systemverwalters. 9 Die Beschreibung der Linux-Kernelroutinen. n n kommt angeblich von neu, hier sind sonstige Manual-Pages aufge- führt, die in eine der oberen Sektionen gehört, aber traditionell hier stehen oder zu keiner Sektion genau passen. Tabelle 19.6: Sektionen der Manual-Pages Beachten Sie, dass nicht zu jedem Stichwort oder Befehl eine Manual-Page vorhanden ist. Eventuell finden Sie dann unter /usr/doc/ mehr Informa- tion, z. B. unter /usr/doc/howto/en, /usr/doc/howto/en/mini oder im Verzeichnis /usr/doc/packages (paketbezogene Information). 19.10 Informationen über den Systemzustand Häufig ist es wichtig, Auskunft über den Zustand des Systems zu erhalten. Hierbei helfen z. B. die Befehle df, free, ps, top. 19.10.1 Der Befehl df df gibt Auskunft über den verfügbaren und benutzten Plattenplatz. Die Aus- gabe erfolgt wie in Ausgabe 19.10.1 abgebildet. Filesystem 1024-blocks Used Available Capacity Moun- ted on /dev/sda4 699392 659258 5165 99% /home /dev/sda1 102384 23955 73310 25% / /dev/sdb1 2097136 2070485 26651 99% /usr /dev/sda3 126976 106908 20068 84% /opt Ausgabe 19.10.1: Ausgabe des Befehls df 489 19. Einstieg in Linux 19.10.2 Der Befehl free free informiert über die Auslastung des Arbeitsspeichers und des swap- Speichers; vgl. Ausgabe 19.10.2 auf der nächsten Seite. total used free shared buffers cached Mem: 30900 29272 1628 25608 1012 6412 -/+ buffers: 28260 2640 Swap: 66524 176 66348 Ausgabe 19.10.2: Ausgabe des Befehls free Vgl. auch Anhang F auf Seite 537. 19.10.3 Der Befehl ulimit Mit dem Befehl ulimit (engl. user limits) ist es möglich, Limits für die Nutzung von Systemressourcen zu setzen, bzw. sich diese anzeigen zu las- sen. Insbesondere ist ulimit dazu geeignet, den zur Verfügung stehenden Speicher für Anwendungen zu begrenzen. Dadurch kann verhindert werden, dass eine Anwendung übermäßig viel (allen) Speicherplatz für sich beschlag- nahmt; dadurch könnte das System zum Stillstand kommen. Der Aufruf von ulimit kann mit verschiedenen Optionen geschehen. Um den Speicherverbrauch zu begrenzen, sind z. B. die Optionen in Tabelle 19.7 tauglich. -m max. Größe des physikalischen Speichers -v max. Größe des virtuellen Speichers (Swap) -s max. Größe des Stacks -c max. Größe der Core-Dateien -a Anzeige der gesetzten Limits Tabelle 19.7: ulimit: Ressourcen für den Anwender einstellen Systemweit können die Einstellungen in /etc/profile vorgenommen werden; Dort muss beispielsweise das Erzeugen von Core-Dateien freige- schaltet werden, die Programmierer zum Debuggen" benötigen. Als Anwen- der kann man die vom Systemadministrator in /etc/profile vorgege- benen Werte nicht erhöhen, aber man kann spezielle Einstellung in die eigene ~/.bashrc eintragen; vgl. Datei 19.10.1. Die Speicherangaben müssen in KB gemacht werden. Für detailliertere Informationen werfen Sie bitte einen Blick in die Manual- Page von bash (man bash). 490 19.10. Informationen über den Systemzustand # Begrenzung des realen Speichers: ulimit -m 98304 # Begrenzung des virtuellen Speichers: ulimit -v 98304 Datei 19.10.1: ulimit-Einstellungen in ~/.bashrc 19.10.4 Der Befehl w Der Befehl w zeigt alle momentan angemeldeten Benutzer im System an. Dieser Befehl liefert eine ganze Reihe nützlicher Informationen. Neben der Anzahl der angemeldeten Benutzer erfahren Sie, wie lange das System bereits läuft, wie sehr es momentan belastet ist und was die einzelnen Benutzer so tun (vgl. Ausgabe 19.10.3). 11:05am up 21 days, 21:10, 8 users, load avera- ge: 0.23, 0.10, 0.10 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 - 11:02am 3:34 0.10s 0.05s - bash tux tty3 - 11:04am 1:24 1.29s 1.22s emacs tux pts/1 :0.0 11Feb 0 19:42m 1:18 0.02s sed tux pts/2 :0.0 30Jan 0 18:35m 56.29s ? - tux pts/6 :0.0 31Jan 0 4.00s 1.47s ? - tux pts/3 :0.0 31Jan 0 2days 1.86s 1.44s bash tux pts/9 :0.0 1Feb 0 2days 3.52s ? - tux pts/10 :0.0 2Feb 0 59:19 9.10s 8.56s lynx tux pts/11 :0.0 2Feb 0 0.00s 26:49 0.01s rlogin venus tux pts/12 venus.kosmos.all 11:09am 0.00s 0.11s 0.04s w Ausgabe 19.10.3: Ausgabe von w 19.10.5 Der Befehl du Der Befehl du (engl. disk usage) gibt Auskunft über den von Unterverzeich- nissen und einzelnen Dateien belegten Speicherplatz. Mehr darüber kann man in der Manual-Page von du (man du) nachlesen. 19.10.6 Der Befehl kill Senden von Signalen an laufende Prozesse ( Prozess). Erfordert die Anga- be der Prozessnummer (engl. process id), kurz: PID, die mit ps (siehe Ab- schnitt 19.10.7) ermittelt werden kann. Der Befehl kill wird aufgerufen mit erde: # kill Sollte der entsprechende Prozess das Abbruchsignal abfangen, so kann er mit dem optionalen Parameter -9 dennoch beendet werden. Der Aufruf erde: # kill -9 beendet den Prozess mit der definitiv. 491 19. Einstieg in Linux 19.10.7 Der Befehl ps Der Befehl ps (engl. process status) zeigt die vom Benutzer gestarteten Pro- zesse an. Weitere Information zu dem Befehl liefert die Manual-Page von ps (man ps). Mit dem Aufruf ps -a werden auch die laufenden Prozesse der anderen Benutzer auf dem aktuellen Rechner angezeigt. Durch Angabe der Prozessnummer (1. Spalte der Ausgaben von ps) ist es möglich, laufende Prozesse gezielt abzubrechen (siehe Abschnitt 19.10.6). 19.10.8 Der Befehl pstree pstree zeigt den kompletten Prozessbaum" anschaulich an. Dies zeigt Ausgabe 19.10.4 auf der nächsten Seite. init-+-bash---startx---xinit-+-X | `-sh---fvwm-+-FvwmPager | |-FvwmWinList | |-GoodStuff | |-xclock | `-xeyes |-color_xterm---bash---xdvi.bin---gs |-2*[color_xterm---bash---vi] |-color_xterm---bash---pstree |-coolmail---coolmail---xterm---pine |-cron |-gpm |-inetd |-kflushd |-klogd |-kswapd |-5*[mingetty] |-4*[nfsiod] |-sh---master---slipto |-syslogd |-update |-xload `-xosview Ausgabe 19.10.4: Ausgabe von pstree 19.10.9 Der Befehl top Anzeige aller momentan laufenden Prozesse, der Systemauslastung u. v. m.; die Anzeige wird in zeitlichen Abständen aktualisiert. Beenden der Anzeige erfolgt mit q . 19.11 Dateisysteme unter Linux ­ mount und umount Der Umgang mit Dateisystemen ist bisweilen eine Kunst für sich. 492 19.11. Dateisysteme unter Linux ­ mount und umount 19.11.1 Übersicht Unter Linux stehen viele verschiedene Dateisysteme zur Verfügung. Eine Auswahl zeigt die Tabelle 19.8 auf der nächsten Seite. 493 19. Einstieg in Linux affs Ein auf dem Amiga verwendetes Dateisystem (engl. Amiga Fast Filesystem). ext2 (engl. Second extended Filesystem) Das Standard-Dateisys- tem unter Linux. hpfs Standard-Dateisystem von IBM OS/2 (engl. High Perfor- mance Filesystem). Dieses wird von Linux nur mit Lesezu- griff (engl. read-only) unterstützt. iso9660 Standard-Dateisystem auf CD-ROMs. minix Dieses Dateisystem hat seinen Ursprung in akademischen Lehrprojekten über Betriebssysteme und war das erste Dateisystem, welches für Linux verwendet wurde. Heute wird es unter Linux vornehmlich als Dateisystem für Dis- ketten verwendet. msdos Ursprünglich von DOS verwendetes Dateisystem, welches aber bis heute von diversen Betriebssystemen genutzt wird. ncpfs Dateisystem für das Einbinden von Novell-Volumes. nfs Hierbei befinden sich die Daten auf der Platte eines anderen Rechners und werden via Netzwerk transparent zugänglich gemacht (engl. Network Filesystem). proc Prozess-Dateisystem (virtuell). smbfs SMB (engl. Server Message Block) ist ein Protokoll, das von WfW, Windows NT und LAN Manager verwendet wird, um Dateien über ein Netzwerk verfügbar zu machen. sysv Von SCO-Unix, Xenix und Coherent (kommerzielle Unix- Systeme für PC) verwendetes Dateisystem. ufs Von BSD, SunOS und NeXTstep verwendetes Dateisys- tem; dies Dateisystem wird von Linux nur mit Lesezugriff (engl. read-only) unterstützt. umsdos Setzt auf einem gewöhnlichen fat-Dateisystem auf (engl. Unix on MSDOS) und erreicht durch Anlegen spezieller Da- teien die notwendige Unix-Funktionalität (Rechte, Links, lange Dateinamen); es ist jedoch sehr langsam. vfat Erweiterung des fat-Dateisystems hinsichtlich der Länge der Dateinamen (engl. Virtual FAT). Tabelle 19.8: Dateisystemtypen unter Linux 19.11.2 Ein- und Aushängen von Dateisystemen Mit dem Befehl mount, der normalerweise nur von `root' ausgeführt werden kann, wird ein Datenträger in das Linux-Dateisystem eingehangen. mount benötigt hierzu zwei Argumente: * den Namen des Datenträgers (entspricht der Device-Bezeichnung, z. B. /dev/hda3) * und ein Verzeichnis, unter dem der Datenträger eingebunden werden soll; das Verzeichnis muss bereits existieren. 494 19.11. Dateisysteme unter Linux ­ mount und umount Die Option -t gibt den Typ des einzuhängenden Dateisystems (siehe Tabelle 19.8) an. Ein Beispiel: der Aufruf von erde:/ # mount -t msdos /dev/hda2 /dosa stellt die DOS-Partition hda2 unter dem Verzeichnis /dosa zur Verfügung; das Verzeichnis /dosa muss zuvor angelegt werden (vgl. Abschnitt 19.6 auf Seite 480). Wenn bestimmte Geräte (engl. devices) immer wieder an der gleichen Stelle im Dateisystem eingehangen werden sollen (z. B. das Diskettenlaufwerk oder weitere CD-ROM-Laufwerke), sollte man einen Eintrag der /etc/fstab vornehmen; vgl. dazu die Manual-Page von mount (man 8 mount). Durch die Option -r wird z. B. ein Datenträger nur zum Lesen gemoun- tet" (engl. read-only). Schreiben von Daten ist dann auf diesem Datenträ- ger nicht erlaubt. Weitere Optionen sind in der Manual-Page von mount (man 8 mount) dokumentiert. Wenn Sie auf DOS-Partitionen auch als normaler Benutzer (nicht- `root') schreiben wollen, lesen Sie das Vorgehen bitte in http:// sdb.suse.de/sdb/de/html/kfr_18.html nach. mount führt Protokoll über die gemounteten Dateisysteme. Dieses Protokoll ist in der Datei /etc/mtab zu finden. Wird mount ohne Argumente auf- gerufen, so wird der Inhalt dieser Datei ausgegeben. So erhält man eine Liste aller gerade eingehangenen Dateisysteme. Durch umount wird ein Datenträger aus dem Linux-Dateisystem entfernt7. Als Argument zu umount kann entweder der Name der Gerätedatei oder der Name des Verzeichnisses, in welches der Datenträger eingebunden ist, angegeben werden. Um also z. B. /dev/hda2, eingehangen unter /dosa, auszuhängen, kann man alternativ eingeben: erde: # umount /dosa oder: erde: # umount /dev/hda2 Bei von Disketten oder von anderen Wechselmedien gemounteten" Datei- systemen ist es wichtig, vor dem Herausnehmen der Diskette den Befehl umount auszuführen. Wenn auf einem gemounteten Datenträger noch geöffnete Dateien exis- tieren, werden beim Aufruf von umount diese Daten zurückgeschrieben bzw. es wird ­ wenn dies nicht möglich ist ­ eine entsprechende Fehler- meldung ausgegeben. Will man ein Dateisystem aushängen, darf kein Benutzer mehr in einem Verzeichnis stehen (z. B. mit einer Shell), das unterhalb des auszuhängen- den Mountpoints liegt. 7 Eigentlich lautete der Befehl unmount, doch das `n' ist irgendwann im Laufe der Unix- Geschichte verlorengegangen. 495 19. Einstieg in Linux 19.12 DOS-Befehle unter Unix mit mtools Speziell für die Bearbeitung von DOS-Dateien, sowohl auf Festplatte als auch Diskette, stehen die mtools aus dem Paket mtools, Serie ap zur Verfügung. Dabei versucht jedes der Programme, das jeweilige Pendant unter DOS so gut und funktionell wie möglich zu emulieren. Alle mtools-Befehle heißen wie ihr DOS-Pendant, mit einem vorangestellten `m', wie z. B. mcopy. Die mtools-Befehle sollten nur verwendet werden, wenn die entsprechende Diskette nicht gemountet ist! DOS-Dateinamen setzen sich optional aus einem Laufwerksbuchstaben ge- folgt von einem Doppelpunkt, einem Unterverzeichnis (optional), sowie dem eigentlichen Dateinamen zusammen. Für die Trennung von Unterverzeich- nissen wird unter DOS ausschließlich der `\' verwendet. Mit den mtools unter Linux kann sowohl der `/' als auch der `\' verwendet werden. Bei Gebrauch des `\' oder von Wildcards wie z. B. `*' oder `?' müssen diese innerhalb von Anführungszeichen stehen, da sie sonst von der Shell zuerst interpretiert werden und gar nicht erst bis zum mtools-Befehl vordringen. Der einzelne `*' entspricht bei den mtools der Zeichenfolge `*.*' unter DOS. Anstelle des unter DOS gewohnten `/' zur Übergabe etwaiger Optio- nen ist ­ wie unter Linux üblich ­ das Minuszeichen `-' zu verwenden. Das Standardlaufwerk für die mtools ist das erste Diskettenlaufwerk (unter DOS `a:'). mtools nimmt das Wurzelverzeichnis der Diskette a:\ als voreingestelltes Verzeichnis. Soll ein anderes als das voreingestellte verwen- det werden, so wechseln Sie dorthin mittels mcd. Vergessen Sie bitte nicht, bevor Sie eine andere Diskette einlegen, wieder zurück ins Stammverzeichnis des Datenträgers zu wechseln, da sonst kein neuer Verzeichnisbaum eingele- sen werden kann. Bislang werden u. a. die folgenden (DOS-)Befehle von den mtools unter- stützt: mattrib Ändern der DOS-Dateiattribute (hidden, system etc.). mcd Wechsel in ein anderes Verzeichnis. mcopy Kopieren von/nach DOS nach/von Unix, auch rekursiv. Beachten Sie, dass hier auch immer das Ziel angegeben werden muss. mdel Löschen einer DOS-Datei. mdeltree Rekursives Löschen eines DOS-Verzeichnisses. mdir Anzeige eines DOS-Verzeichnisses. mformat Anlegen eines DOS-Dateisystems auf einer low-level-for- matierten Diskette. Das low-level-Formatieren geschieht mit dem Befehl fdformat. mlabel Umbenennen eines DOS-Datenträgers. Tabelle 19.9: Fortsetzung auf der nächsten Seite... 496 19.13. Unix-Befehle im Überblick mmd Anlegen eines DOS-Unterverzeichnisses. mrd Löschen eines DOS-Unterverzeichnisses. mread Einlesen einer DOS-Datei in ein Unix-System. mren Umbenennen einer existierenden DOS-Datei. mtype Zeigt den Inhalt einer DOS-Datei an. mwrite Low-level-Kopie einer Unix-Datei auf ein DOS-Dateisys- tem. Tabelle 19.9: Befehle aus dem Paket mtools Als Voreinstellung wird angenommen, bei Laufwerk a: handele es sich um ein 3.5-Zoll, bei Laufwerk B: um ein 5.25-Zoll-Diskettenlaufwerk. Dabei werden die Diskettenformate 720 KB und 1.44 MB, bzw. 360 KB und 1.2 MB unterstützt. In /etc/mtools.conf können diese Standardeinstellungen geändert wer- den. In jeweils einer Zeile sind die Einträge wie folgt gegliedert: * Laufwerksname (unter DOS), z. B. a: * Gerätedatei (Linux), z. B. /dev/fd0 * Kennziffer (12 Diskettenlaufwerk, 16 Festplatte) * Anzahl der Spuren, Leseköpfe und Sektoren Durch Änderung der Übergabeparameter können also auch zwei 3.5-Zoll- Diskettenlaufwerke verwendet werden. Man sollte jedoch nicht zweimal den gleichen DOS-Laufwerksbuchstaben oder dieselbe Gerätedatei angeben. 19.13 Unix-Befehle im Überblick Die wichtigsten Befehle sind überblicksartig in Tabelle 19.10 auf der nächs- ten Seite aufgelistet; optionale Parameter stehen in `[]': cd verz Wechsel ins Unterverzeichnis verz. cd .. Wechsel in das übergeordnete Ver- zeichnis. cd /verz Wechsel ins Verzeichnis /verz. cd [ ] Wechsel ins Benutzerverzeichnis. cp quelldatei zieldatei Kopiert quelldatei nach zieldatei. Tabelle 19.10: Fortsetzung auf der nächsten Seite... 497 19. Einstieg in Linux ln [-s] bezug name Erzeugt im aktuellen Verzeichnis den [symbolischen] Link name, der auf die Datei bezug zeigt. name gibt den Pfad an, in dem die (eigentlich im aktuellen Verzeich- nis) gesuchte Datei gefunden wer- den kann. Nur symbolische Links können über Dateisysteme hinweg gesetzt werden. Mit Hilfe symboli- scher Links können auch Verzeich- nisse gelinkt" werden. ls [verz] Listet alle Dateien und Verzeich- nisse im Verzeichnis verz auf (nur Dateinamen). ls -l [verz] Listet alle Dateien und Verzeich- nisse im Verzeichnis verz auf (ausführliche Anzeige im Langfor- mat); ohne Parameter: der Inhalt des aktuellen Verzeichnisses. ls -a [verz] Zeigt auch die versteckten Dateien an; (z. B. ~/.xinitrc). mkdir neuesverz Erzeugt das Verzeichnis neuesverz. less datei Zeigt eine Datei seitenweise an (Vorblättern mit der Leertaste, Rückwärtsblättern mit b ). mv vondatei nachdatei Verschiebt eine Datei oder benennt sie um. rm datei Löscht datei (auch Links!). rm -r verz Löscht das Verzeichnis verz re- kursiv (mit Unterverzeichnissen). rmdir verz Löscht das Verzeichnis verz (wenn leer). Tabelle 19.10: Übersicht der wichtigsten Unix-Befehle In Tabelle 19.11 finden Sie einige Befehle, die Suchaufgaben erledigen hel- fen. find . -name "datei" Sucht in allen Unterverzeichnissen des aktuellen Verzeichnisses nach datei. Tabelle 19.11: Fortsetzung auf der nächsten Seite... 498 19.14. Ausblick find . -name "*emil*" Sucht alle Dateien, in deren Namen die Buchstabenfolge `emil' enthal- ten ist. man befehl Liefert eine Beschreibung von befehl. grep muster dateien Durchsucht alle dateien nach dem angegebenen `muster', das natür- lich auch reguläre Ausdrücke" (sie- he Abschnitt 19.7.2 auf Seite 482 oder man regexp) enthalten kann. Tabelle 19.11: Übersicht von Suchbefehlen 19.14 Ausblick Die allgemeinen Verzeichnisse mit Befehlen unter Linux sind: * /bin * /sbin * /usr/bin * /usr/sbin * /usr/X11R6/bin Dort finden Sie viele weitere Befehle. Mit man erhalten Sie detaillierte Informationen zu den verfüg- baren Befehlen und Programmen. Voraussetzung ist die Existenz einer ent- sprechenden Manual-Page (siehe Abschnitt 19.9 auf Seite 488). Die Ausga- be erfolgt dann auf das momentane Standardausgabegerät (i. Allg. der Bild- schirm). Mit Hilfe so genannter Pipes, in der Eingabezeile der Shell symbolisiert durch das Zeichen `|', können Sie diese Ausgaben auch direkt auf den Drucker ausgeben oder gegebenenfalls direkt in Dateien schreiben lassen. Ein Beispiel: Sie möchten die Manual-Page zum Befehl ls ausdrucken lassen. Dies errei- chen Sie mit: tux@erde: > man -t ls | lpr Thematisch geordnete Einstiege zu den Manual-Pages bietet Ihnen das Hy- pertext-Hilfesystem Ihres SuSE Linux-Systems. Geben Sie einfach hilfe oder susehelp ein. Hier haben Sie auch die Möglichkeit, Querverweisen auf weitere Manual-Pages zu folgen (engl. hypertext). 499 19. Einstieg in Linux 19.15 Der Editor vi Die Bedienung des vi ist etwas gewöhnungsbedürftig. Er wird an dieser Stelle anderen Editoren vorgezogen, weil er zum einen auf jedem UNIX- ähnlichen Betriebssystem zur Verfügung steht und bei Linux zum standard- mäßigen Installationsumfang gehört; zum anderen, weil seine Bedienung ein- deutig ist und dadurch i. Allg. keine Mißverständnisse auftreten. Außerdem: wenn nichts geht, aber vi geht. Die nun folgende Kurzanleitung sollte Sie in die Lage versetzen, mit Hilfe des vi z. B. diverse Konfigurationsdateien zu editieren. Konzept: Der vi kennt 3 Betriebsarten (Modi): * Befehlsmodus (engl. command mode) Jeder Tastendruck wird als Teil eines Befehls interpretiert. * Einfügemodus (engl. insert mode) Tastendrücke werden als Texteingaben interpretiert. * Komplexbefehlsmodus (engl. last line mode) Für komplexere Befehle, die in der letzten Zeile editiert werden. Die wichtigsten Befehle des Befehlsmodus sind: i wechselt in den Eingabemodus (Zeichen werden an der aktuellen Cursorposition eingegeben). a wechselt in den Eingabemodus (Zeichen werden nach der aktuellen Cursorposition eingegeben). A wechselt in den Eingabemodus (Zeichen werden am Ende der Zeile angehängt). R wechselt in den Eingabemodus (überschreibt den alten Text). r wechselt zum Überschreiben eines einzelnen Zeichens in den Ein- gabemodus. s wechselt in den Eingabemodus (das Zeichen, auf dem der Cursor steht, wird durch die Eingabe überschrieben). C wechselt in den Eingabemodus (der Rest der Zeile wird durch den neuen Text ersetzt). o wechselt in den Eingabemodus (nach der aktuellen Zeile wird eine neue Zeile eingefügt). O wechselt in den Eingabemodus (vor der aktuellen Zeile wird eine neue Zeile eingefügt). x löscht das aktuelle Zeichen. dd löscht die aktuelle Zeile. dw löscht bis zum Ende des aktuellen Worts. cw wechselt in den Eingabemodus (der Rest des aktuellen Worts wird durch die Eingabe überschrieben). u nimmt den letzten Befehl zurück. Tabelle 19.12: Fortsetzung auf der nächsten Seite... 500 19.15. Der Editor vi J hängt die folgende Zeile an die aktuelle an. . wiederholt den letzten Befehl. : wechselt in den Komplexbefehlsmodus. Tabelle 19.12: Einfache Befehle des Editors vi Allen Befehlen kann eine Zahl vorangestellt werden, die angibt, auf wie viele Objekte sich der folgende Befehl beziehen soll. So können durch Eingabe von `3dw' drei Wörter auf einmal gelöscht werden. Durch Eingabe von `10x' erreicht man das Löschen von zehn Zeichen ab der Cursorposition, `20dd' löscht 20 Zeilen. Die wichtigsten Befehle des Komplexbefehlsmodus: :q! verlässt vi, ohne Änderungen zu speichern :w speichert unter :x speichert die geänderte Datei und verlässt den Editor :e editiert (lädt) :u nimmt den letzten Editierbefehl zurück Tabelle 19.13: Komplexe Befehle des Editors vi Das Drücken der Taste ESC im Eingabemodus wechselt in den Befehlsmo- dus. 501 19. Einstieg in Linux 502