Auf der KDE-Taskleiste finden Sie ein Icon, das einen Monitor und eine Muschel (shell) darstellt. Wenn Sie mit der Maus auf dieses Symbol klicken, öffnet sich das Konsole-Fenster, in dem Sie Befehle eingeben können. In der ersten Zeile sehen Sie den so genannten „Prompt“, der gewöhnlich aus dem Benutzer- und Rechnernamen sowie dem aktuellen Pfad besteht, aber auch individuell konfiguriert werden kann. Wenn der Cursor nach diesem Prompt steht, können Sie direkt Befehle an Ihr Computersystem schicken.
Befehle bestehen aus verschiedenen Bestandteilen. Zuerst kommt immer das Befehlswort und dann die Parameter oder Optionen. Jeder Befehl wird erst ausgeführt, wenn Sie Return drücken. Vorher können Sie problemlos die Kommandozeile editieren, Optionen einfügen oder Tippfehler korrigieren. Einer der am häufigsten gebrauchten Befehle ist ls, den Sie allein oder mit so genannten Argumenten verwenden können. Geben Sie in der Konsole nur ls ein, wird Ihnen der Inhalt des Verzeichnisses angezeigt, in dem Sie sich gerade befinden.
Optionen werden durch einen vorangestellten Bindestrich gekennzeichnet.
Wenn Sie also ls -l eingeben, wird Ihnen
der Inhalt desselben Verzeichnisses in detaillierter Form angezeigt. Sie
sehen neben den Dateinamen das Erstellungsdatum der Datei, die Dateigröße in
Bytes und weitere Angaben, auf die wir später eingehen werden. Eine der
wichtigsten Optionen überhaupt, die es zu sehr vielen Befehlen gibt, ist die
Option --help. Wenn Sie zum Beispiel ls
--help eingeben, werden Ihnen alle Optionen zum Befehl
ls
angezeigt.
Mit ls können Sie sich aber auch andere
Verzeichnisse ansehen. Dazu übergeben Sie das anzuzeigende Verzeichnis als
Parameter. Zum Anzeigen des Inhaltes des Unterverzeichnisses
Desktop zum Beispiel ls -l
Desktop.
Um effektiv mit der Shell zu arbeiten, braucht man Kenntnisse über die
Datei- und Verzeichnis-Struktur unter Linux. Verzeichnisse sind Ordner, in
denen Dateien, Programme oder auch Unterverzeichnisse abgelegt werden
können. Das Wurzelverzeichnis ist in der Hierarchie ganz oben und wird mit
/ angesprochen. Von hier aus gelangt man zu allen
anderen Verzeichnissen.
Im Verzeichnis /home befinden sich die
Verzeichnisse der einzelnen Benutzer, in denen sie ihre persönlichen Dateien
ablegen werden. Die Abbildung Abbildung 19.1, „Auszug aus einem Standard Verzeichnisbaum“
zeigt den Standard-Verzeichnisbaum unter Linux mit den Home-Verzeichnissen
der Beispielbenutzer yxz,
linux und tux. Der Verzeichnisbaum Ihres Linux-Systems
ist funktionell gegliedert (Filesystemstandard) und in der folgenden Liste
erhalten Sie eine Kurzbeschreibung zu den Standardverzeichnissen unter
Linux.
/Das Wurzel-Verzeichnis (root directory), Beginn des Verzeichnisbaums.
/homeDie (privaten) Verzeichnisse der Benutzer.
/devGeräte-Dateien (device files), die Hardwarekomponenten repräsentieren
/etcWichtige Dateien zur Systemkonfiguration
/etc/init.dEnthält Bootskripte.
/usr/binAllgemein zugängliche Kommandos.
/binKommandos, die bereits zum Hochfahren des Systems benötigt werden.
/usr/sbinKommandos, die dem Systemverwalter vorbehalten sind.
/sbinKommandos, die dem Systemverwalter vorbehalten sind und zum Hochfahren des Systems benötigt werden.
/usr/includeHeader-Dateien für den C-Compiler
/usr/include/g++Header-Dateien für den C++-Compiler.
/usr/share/docVerschiedene Dokumentationsdateien.
/usr/share/manDie Hilfe-Texte (Manual-Pages)
/usr/srcQuelltexte der Systemsoftware
/usr/src/linuxDie Kernel-Quellen
/tmp, /var/tmpFür temporäre Dateien.
/usrBeherbergt sämtliche Anwendungsprogramme
/varKonfigurationsdateien (zum Beispiel von /usr
verwiesen).
/var/logProtokolldateien
/var/admSystemverwaltung
/libShared Libraries (für dynamisch gelinkte Programme)
/procDas Prozessdateisystem
/sys„System“-Verzeichnisbaum, in dem sämtliche gesammleten Geräteinformationen dem Kernel zur Verfügung stehen.
/usr/localLokale, von der Distribution unabhängige Erweiterungen.
/optOptionale Software, größere Systeme (zum Beispiel KDE, GNOME, Netscape).
Zwei wichtige Funktionen der Shell erleichtern Ihnen die Arbeit wesentlich:
Wenn Sie einen bereits eingegeben Befehl noch einmal aufrufen wollen, drücken Sie die Taste ↑ so oft, bis der gewünschte Befehl angezeigt wird; zum vorwärts Blättern drücken Sie die Taste ↓. Zum Editieren der Befehlszeile bewegen Sie sich mit den Cursor-Tasten an die entsprechende Stelle und korrigieren Sie diese. Verwenden Sie Ctrl-R um in der History zu suchen.
Sie ergänzt einen Dateinamen, falls er bereits eindeutig identifiziert werden kann, nachdem Sie nur die ersten Buchstaben eingegeben haben. Drücken Sie dazu nach der Eingabe die Taste Tab. Wenn es mehrere Dateinamen mit den gleichen Anfangsbuchstaben gibt, erhalten Sie durch zweimaliges Drücken der Taste Tab eine Auswahlliste.
Sie wissen, wie ein Befehl aussieht, welche Verzeichnisse es unter SUSE LINUX gibt und wie Sie sich in der Bash die Arbeit etwas erleichtern können. Nun werden Sie Ihre Kenntnisse mit einem kleinen Übungsbeispiel umsetzen:
Öffnen Sie eine Konsole in KDE durch Klick auf das Monitor-Icon.
Geben Sie ls ein und sehen Sie den Inhalt Ihres Home-Verzeichnisses.
Legen Sie mit mkdir (make
directory) ein neues Unterverzeichnis mit dem Namen
test an, indem Sie mkdir test
eingeben.
Rufen Sie den Editor Kate auf, indem Sie
Alt-F2 drücken und in das Eingabefeld kate
eingeben. Es öffnet sich ein Fenster. Tippen Sie ein paar Zeichen ein und
speichern Sie die Datei unter dem Namen Testdatei
bitte mit großem T, da Linux zwischen Groß- und
Kleinschreibung unterscheidet.
Lassen Sie sich wieder den Inhalt Ihres Home-Verzeichnisses
anzeigen. Statt der nochmaligen Eingabe von ls drücken
Sie zweimal die Taste ↑. Jetzt steht wieder
ls am Prompt, und zum Ausführen des Befehls müssen Sie
nur noch Return drücken. Sie sehen das neue Verzeichnis
test in blauer Schrift und die
Testdatei in schwarzer Schrift, denn Verzeichnisse werden immer blau
dargestellt und Dateien immer schwarz.
Unsere Testdatei soll nun mit dem Befehl
mv (move) in das
Unterverzeichnis test verschoben werden. Zur
Erleichterung der Eingabe benutzen wir dazu die Expansionsfunktion: Geben
Sie mv T ein und drücken Sie die
Tab-Taste. Gibt es keine andere Datei mit diesem
Buchstaben in dem Verzeichnis, ergänzt die Shell die Zeichenkette
estdatei, ansonsten müssen Sie weitere
Buchstaben eingeben und zwischendurch die Tab Taste
betätigen. Setzen Sie hinter der ersetzten Zeichenkette ein Leerzeichen,
schreiben test und drücken zum Verschieben noch
Return.
Wenn Sie den Befehl ls eingeben, wird die
Testdatei nicht mehr angezeigt.
Um zu sehen, ob das Verschieben erfolgreich war, wechseln Sie mit
dem Befehl cd test in das Verzeichnis
test. Geben Sie ls ein; Ihnen
sollte jetzt die Testdatei angezeigt werden.
Durch die Eingabe von cd (change
directory) gelangen Sie immer wieder in Ihr
Home-Verzeichnis.
Sollten Sie eine Kopie der Datei benötigen, dann benutzen Sie den
Befehl cp (copy). Geben
Sie cp Testdatei Testsicherung ein, um die
Testdatei in Testsicherung zu
kopieren. Mit dem Aufruf von ls werden Ihnen beide
Dateien angezeigt.
Zur Bearbeitung von Dateien oder Verzeichnissen muss immer der richtige
Pfad angegeben werden. Dazu müssen Sie nicht den kompletten (absoluten)
Pfad
vom Wurzelverzeichnis zur entsprechenden Datei angeben,
sondern können von Ihrem aktuellen Verzeichnis ausgehen.
Zusätzlich können Sie Ihr Home-Verzeichnis direkt mit
~ ansprechen. Dies bedeutet, dass Sie zwei
Möglichkeiten haben, die
Datei Testdatei im Verzeichnis
test aufzulisten: relativ durch die Eingabe von
ls test oder absolut durch ls
~/test.
Zum Einsehen von
Home-Verzeichnissen anderer Benutzer, geben Sie ls ~ und
den Benutzernamen ein. In der schon erwähnten Verzeichnisstruktur wäre ein
Beispielbenutzer tux. Der Befehl
ls ~tux würde entsprechend den Inhalt des
Home-Verzeichnisses von tux
anzeigen.
Ihr aktuelles Verzeichnis können Sie durch einen Punkt darstellen, höhere Pfadebenen durch zwei Punkte. Mit der Eingabe von ls .. wird Ihnen der Inhalt des Mutterverzeichnisses zum aktuellen Verzeichnis angezeigt; durch ls ../.. der Inhalt des Verzeichnisses zwei Stufen in der Hierarchie höher.
Ein weiteres Beispiel soll Ihnen veranschaulichen, wie Sie sich in der Verzeichnisstruktur Ihres SUSE LINUX-Systems bewegen können.
Wechseln mit cd in Ihr Home-Verzeichnis. Legen
Sie ein weiteres Unterverzeichnis test2 über den
mkdir test2 an.
Wechseln Sie mit cd test2 nach
test2 und legen Sie ein Verzeichnis namens
Unterverzeichnis an. Nutzen Sie zum Wechseln die
Expansionsfunktion, indem Sie nur cd Un eingeben und
Tab drücken, um die Shell den Rest der Zeichenkette
ergänzen zu lassen.
Sie befinden sich im Unterverzeichnis und
sollen ohne Wechsel des Verzeichnisses die zuvor angelegte Datei
Testsicherung in das aktuelle Verzeichnis
verschieben. Sie müssen dazu den relativen Pfad zu der benötigten Datei
angeben. Vergessen Sie nicht den Punkt am Ende des Befehls mv
../../test/Testsicherung ., wodurch das aktuelle Verzeichnis
als Ziel der Verschiebung festgelegt wird. Mit zwei Punkten gelangen Sie
jeweils eine Verzeichnisebene höher, in unserem Beispiel in Ihr
Home-Verzeichnis.
Weitere Vorteile der Shell sind die vier sog. „Wildcards“ oder Jokerzeichen:
Ersetzt genau ein beliebiges Zeichen.
Ersetzt beliebig viele Zeichen.
Ersetzt genau ein Zeichen aus den in eckigen Klammern angegebenen
Zeichen (Zeichenkette set).
Umfasst genau ein beliebiges Zeichen, außer den in
set angegebenen.
Haben Sie in Ihrem Verzeichnis test die Dateien
Testdatei, Testdatei1,
Testdatei2 und dates und geben
ls Testdatei? ein, dann erhalten Sie die Dateien
Testdatei1 und Testdatei2. Mit
ls Test* erhalten Sie zusätzlich die Datei
Testdatei.
Der Befehl ls *dat* zeigt Ihnen alle Beispieldateien
an, während Sie mit dem set-Joker speziell die
Beispieldateien ansprechen können, die als letztes Zeichen eine Zahl haben:
ls Testdatei[1-9].
Am mächtigsten ist immer der *-Joker: Durch seine Verwendung können Sie
zum Beispiel Dateien eines Verzeichnisses in ein beliebiges Verzeichnis kopieren
oder komplett löschen. Der Befehl rm *date* bspw. löscht
alle Dateien in Ihrem Verzeichnis test, in deren Name
die Zeichenfolge date vorkommt.
Zwei kleine Programme ermöglichen es Ihnen, sich Textdateien direkt in
der Shell anzusehen. Sie brauchen also nicht erst einen Editor starten. Zum
Öffnen einer Datei Readme.txt geben Sie einfach
less Readme.txt ein. Im Konsole-Fenster wird Ihnen nun
der Text angezeigt. Mit der Leertaste kommen Sie immer eine Seite weiter,
allerdings können Sie auch die Tasten Bild auf und
Bild ab benutzen, um sich im Text vorwärts oder rückwärts
zu bewegen. Zum Beenden des Programms less
drücken Sie die Taste q.
Neben less gibt es auch das ältere Programm more, allerdings ist es weniger komfortabel, da Sie nicht vor- und zurückblättern können.
Das Programm less erhielt seinen Namen nach dem Motto „Weniger ist mehr“ und kann nicht nur zum Lesen von Textdateien benutzt werden, sondern kann zum Beispiel auch die Ausgabe von Befehlen komfortabel anzeigen. Lesen Sie dazu den Abschnitt Abschnitt 19.2.7, „Umleitungen“.
Normalerweise ist die Standardausgabe in der Shell Ihr Bildschirm bzw. das Konsole-Fenster, und die Standardeingabe erfolgt über die Tastatur. Wenn Sie die Ausgabe eines Befehls an ein Programm wie less übergeben wollen, müssen Sie dazu eine so genannte Pipeline (Rohrleitung) verwenden.
Um sich die Dateien im Verzeichnis test
anzuschauen, geben Sie den Befehl ls test | less ein. Das
Zeichen | erhalten Sie auf der
deutschen Tastatur, indem Sie Alt Gr und gleichzeitig die
Taste mit den Zeichen < und
> drücken. Sie sehen nun in
der Konsole den Inhalt des Verzeichnisses test mit
less angezeigt. Dies macht nur Sinn, wenn die
normale Ausgabe über ls zu unübersichtlich wird. Sehen
Sie sich zum Beispiel das Verzeichnis dev mit
ls /dev an, dann sehen Sie im Fenster nur einen kleinen
Teil des Inhaltes, wobei Sie stattdessen mit ls /dev |
less alle Dateien auflisten können.
Falls Sie die Ausgabe von Befehlen in einer
Datei abspeichern wollen, würde der Befehl im obigen Beispiel so aussehen:
ls test > Inhalt. Sie haben danach eine neue Datei mit
Namen Inhalt, die die Dateien und Verzeichnisse in
test enthält. Mit less Inhalt können
Sie sich die Datei anschauen.
Umgekehrt können Sie eine Datei als Eingabe für einen Befehl verwenden. Lassen Sie zum Beispiel die Textzeilen in Ihrer selbst geschriebenen Testdatei alphabetisch sortieren über sort < Testdatei. Die Ausgabe des Befehls sort erfolgt auf dem Bildschirm. Sie sehen nun den Text, den Sie zuvor geschrieben haben, sortiert nach den Anfangsbuchstaben in jeder Zeile. Dies kann sehr nützlich sein, wenn Sie zum Beispiel eine unsortierte Namensliste sortieren möchten.
Wollen Sie eine neue Datei mit der sortierten Liste,
dann müssen Sie die Ausgabe des sort-Befehls wiederum in
eine Datei lenken. Wenn Sie das nachvollziehen möchten, erstellen Sie in
einem Editor eine unsortierte Namensliste, und speichern Sie sie unter dem
Namen liste im Verzeichnis
test. Gehen Sie ins Verzeichnis
test und rufen Sie den
Befehl sort < liste > sortierteListe auf. Sehen Sie
sich mit less die neue Liste an.
Die Standard-Fehlerausgabe ist ebenfalls der Bildschirm. Wenn Sie diese
jedoch in eine Datei mit Namen Fehler umleiten möchten,
geben Sie im Anschluss an den Befehl ein: 2> Fehler.
Wenn Sie >& Ausgabe an einen Befehl anhängen,
erfolgt in die Datei Ausgabe sowohl die Standardausgabe
als auch die Fehlerausgabe. Wenn das Zeichen >
zweimal hintereinander anstatt nur einmal angegeben wird, also
>>, so wird die Ausgabe an eine
vorhandene Datei angehängt. Sollte die angegebene Datei nicht bestehen, so
wird sie neu erzeugt und mit dem Inhalt der umgeleiteten Ausgabe
gefüllt.
Nachdem Sie nun schon einige Dateien und Verzeichnisse angelegt haben,
wenden wir uns dem Thema Archivierung und Datenkompression zu. Angenommen,
Sie möchten das ganze Verzeichnis test in eine Datei
zusammenpacken lassen, damit Sie diese auf Diskette als Sicherungskopie
speichern oder per E-Mail verschicken können. Dazu benutzen Sie den Befehl
tar tape archiver. Mit
tar --help können Sie sich alle Optionen zu
tar ansehen, die wichtigsten werden allerdings auch hier
erklärt:
create neues Archiv anlegen.
table Inhalt eines Archives anzeigen.
extract Archiv entpacken.
verbose zeigt während des Einpackens alle Dateien auf dem Bildschirm an.
file Damit können Sie einen Dateinamen für die Archivdatei wählen. Beim Packen muss diese Option immer als letztes angegeben werden.
Um nun das Verzeichnis test mit allen Dateien und
Unterverzeichnissen in ein Archiv mit dem Namen
test.tar zu packen, brauchen wir auf jeden Fall die
Optionen: -c und -f. Da wir den
Fortschritt beim Archivieren mitverfolgen wollen, geben wir auch die Option
-v an, die sonst nicht notwendig wäre. Gehen Sie zuerst
mit cd in Ihr Home-Verzeichnis, wo sich das Verzeichnis
test befindet. Die Eingabe lautet nun: tar
-cvf test.tar test. Schauen Sie sich danach den Inhalt der
Archivdatei an: tar -tf test.tar. Übrigens bleibt das
Verzeichnis test mit allen Dateien und Verzeichnissen
unverändert auf Ihrer Festplatte. Um das Archiv wieder komplett auszupacken,
müssen Sie tar -xvf test.tar eingeben. Tun Sie das bitte
noch nicht, denn erst wollen wir noch die Archivdatei komprimieren, um
Speicherplatz zu sparen.
Dazu empfiehlt sich das weit verbreitete Programm
gzip. Geben Sie also ein: gzip
test.tar. Wenn Sie nun ls eingeben, sehen
Sie, dass die Datei test.tar verschwunden ist, und
stattdessen eine Datei test.tar.gz existiert. Diese
Datei ist viel kleiner und eignet sich daher besser zum Verschicken via
E-Mail oder passt leichter auf eine Diskette.
Und nun sollen Sie das Archiv im Verzeichnis test2
auspacken. Kopieren Sie dazu zuerst die Archivdatei mit cp
test.tar.gz test2 ins Verzeichnis test2 und
wechseln Sie mit cd test2 das Verzeichnis. Zum
„Entzippen“ der gepackten Archivdatei
mit der Endung .tar.gz wird der
Befehl
gunzip
benutzt, so dass die Eingabe gunzip test.tar.gz lautet.
Sie erhalten eine Datei test.tar, die noch mit
tar -xvf test.tar aufgelöst werden muss. Zum
Entpacken des Archives können Sie auch
gleich zum tar-Befehl die Option -z hinzufügen und das Archiv mit
tar -xvzf test.tar.gz auspacken. Durch Eingabe von
ls sehen Sie, dass Sie ein neues Verzeichnis
test mit dem gleichen Inhalt wie Ihr Verzeichnis
test in Ihrem Home-Verzeichnis haben.
Die mtools sind ein Satz von Befehlen, mit denen man
auf MS-DOS-Dateisystemen arbeiten kann. Das ist für die Arbeit mit
Disketten-Laufwerken interessant. Das Laufwerk kann wie unter MS-DOS als
a: angesprochen werden. Die
Befehle ähneln denen unter MS-DOS, allerdings mit einem vorangestellten
m:
zeigt den Inhalt der Diskette im Laufwerk a
an.
kopiert die Datei Testdatei auf die
Diskette.
löscht Testdatei auf
a:
formatiert Disketten im MS-DOS-Format (mit Hilfe des Befehls fdformat).
a: wird Ihr aktuelles Verzeichnis.
erzeugt das Unterverzeichnis test auf der
Diskette.
löscht das Unterverzeichnis test auf der
Diskette.
Sie haben nun in diesem Crash-Kurs die wichtigsten Grundlagen im Umgang mit der Shell gelernt. Damit Ihr Heimat-Verzeichnis nicht zu unübersichtlich wird, sollten Sie die Testdateien und -verzeichnisse nun mit den Befehlen rm und rmdir wieder löschen. Im Anschluss an dieses Kapitel finden Sie eine Liste mit den wichtigsten Befehlen und entsprechender Kurzbeschreibung.