9.4. Kurze Einführung in die Kommandozeile

Die Kommandozeile ist der direkteste Weg, Befehle an das System zu senden. Wenn Sie die Kommandozeile von Linux benutzen, werden Sie bald feststellen, dass diese wesentlich mächtiger als andere Umgebungen ist, die Sie vielleicht bisher benutzt haben. Die Linux-Kommandozeile erlaubt den Zugriff auf Tausende von Programmen, die keine grafischen Äquivalente haben. Das dies so ist, liegt daran, dass die Mehrzahl dieser Programme so viele Kommandozeilen-Parameter besitzt, dass diese nicht mehr sinnvoll durch Menüs und Schaltflächen repräsentiert werden können.

Zugegeben, der Umgang mit der Shell bedarf am Anfang etwas Hilfe. Diese wollen wir Ihnen mit diesem Kapitel geben. Befinden Sie sich unter X, starten Sie erstmal eine Terminal-Emulation (es handelt sich dabei um die Nachbildung einer textbasierten Ein-/Ausgabeschnittstel­le, wie sie früher an großen Unix-Rechnern Verwendung fanden). Unter KDE etwa konsole, dessen Symbol sie in Abbildung 9-3 sehen, in anderen grafischen Umgebungen Programme wie xterm oder rxvt. Sie sollten sich in einer ruhigen Stunde einmal die Handbuchauszüge des Systems zu diesen Programmen ansehen (Sie erhalten diese mit dem Befehl man <programmname>): da lässt sich nämlich eine ganze Menge einstellen...

Abbildung 9-3. Symbol des Programms konsole

Wenn Sie eine solche Terminal-Emulation starten, erhalten sie ei­ne Shell. Sie sehen nun eine Eingabeaufforderung, den sog. prompt:

[franz@linuxbox] ~ $

Wir nehmen hierbei an, dass Ihr Benutzerkennzeichen franz lautet, und Sie Ihrem Rechner den Namen linuxbox gegeben haben (Sofern Ihr Rechner nicht Teil eines bereits existierenden Netzwerks ist, werden Sie hier den Namen localhost sehen). Alles was nach dem Prompt kommt, müssen sie selbst eingeben :-) Falls Sie root sind, erscheint anstelle des ,,$`` ein ,,#`` (Das Aussehen dieser Eingabeaufforderung lässt sich natürlich Ihren Bedürfnissen anpassen). Das Kommando, mit dem Sie zum privilegierten Benutzerkennzeichen root wechseln können, heißt su:

# Geben Sie das root-Passwort ein;
# es wird auf dem Monitor nicht sichtbar sein
[franz@linuxbox] ~ $ su
Password: 
# exit bringt Sie wieder zurück zu Ihrem normalen
# Benutzerkennzeichen
[root@linuxbox] franz # exit
[franz@linuxbox] ~ $

Von hier an wird die Eingabeaufforderung durch ein ,,$`` repräsentiert, gleichgültig ob es sich um die Shell eines normalen Benutzers oder die von root handelt (ein ,,#`` hingegen wird einen Kommentar einleiten). Sie werden dann, falls nötig, erfahren, wann Sie sich als root anmelden müssen, also merken Sie sich den Befehl su :-)

Wenn Sie eine Shell starten, finden Sie sich in Ihrem Heim-Verzeichnis wieder. Um den aktuellen Verzeichnisnamen anzuzeigen, tippen Sie das Kommando pwd (Print Working Directory, engl. für ,,Drucke Arbeitsverzeichnis``):

$ pwd
/home/franz

Sie werden jetzt einige weitere, grundlegende Kommandos kennenlernen, die Sie bald nicht mehr missen möchten.

9.4.1. Navigieren im Verzeichnisbaum: cd

Der Befehl cd (Change Directory ,,Wechsle Verzeichnis``) ähnelt dem von DOS, hat allerdings einige Extras. Sie können ,,.`` (für das aktuelle Verzeichnis) und ,,..`` (für das übergeordnete Verzeichnis) verwenden. cd allein bringt Sie in Ihr Heimverzeichnis. Mit cd - wechseln Sie zurück zum zuletzt benutzten Verzeichnis. Mit cd ~karl schließlich können Sie in das Heim-Verzeichnis des Benutzers karl wechseln (,,~`` alleine steht für Ihr Heim-Verzeichnis). Standardmäßig können Sie als normaler Anwender die Heim-Verzeichnisse anderer Benutzer nicht einsehen (es sei denn, das System wurde dementsprechend konfiguriert), wie immer auch hier die Ausnahme..., root darf das. Wechseln Sie jetzt auf das privilegierte Kennzeichen und üben Sie etwas (beachten Sie, dass für das folgende Beispiel das Benutzerkennzeichen franz durch ein auf Ihrem System existierendes ersetzt werden muss):

$ pwd
/root
$ cd /usr/doc/HOWTO
$ pwd
/usr/doc/HOWTO
$ cd ../FAQ
$ pwd
/usr/doc/FAQ
$ cd ../../lib
$ pwd
/usr/lib
$ cd ~franz
$ pwd
/home/franz
$ cd
$ pwd
/root

Geben Sie Ihre Administratorenrechte nun wieder ab :-)

9.4.2. Einige Umgebungsvariablen und das Kommando echo

Alle Prozesse haben bestimmte Umgebungsvariablen, die das Verhalten der Prozesse bestimmen. Die Shell erlaubt es Ihnen, sich deren Werte anzuschauen. Einige wichtige Exemplare sind:

  1. HOME Enthält den Namen Ihres Heim-Verzeichnisses.

  2. PATH Enthält eine Liste aller Verzeichnisse, in denen nach ausführbaren Dateien gesucht wird. Beachten Sie, dass das aktuelle Verzeichnis ,,.`` aus Sicherheitsgründen nicht dazugehört!

  3. USERNAME Enthält Ihr Benutzerkennzeichen.

  4. UID Enthält Ihre Benutzerkennung.

  5. PS1 Enthält den Wert ihrer Standard-Eigabeaufforderung, oft eine Kombination von Platzhaltern. Lesen Sie den Handbuchauszug zu bash bzw. das Kapitel 16 (,,Woher Sie Dokumentation bekommen``) für mehr Informationen.

Um den Wert einer Variablen einzusehen, müssen Sie ihren Namen mit einem ,,$`` einleiten. Der Befehl echo gibt die Informationen nun aus:

$ echo "Hallo"
Hallo
$ echo "$HOME"
/home/franz
$ echo "$USERNAME"
franz
$ echo "Hallo $USERNAME"
Hallo franz
$ cd /usr
$ pwd
/usr
$ cd $HOME
$ pwd
/home/franz

Wie Sie sehen, ersetzt die Shell die Variable durch ihren Wert, bevor sie den Befehl ausführt. Andernfalls hätte cd $HOME nicht funktioniert. Die Shell hat erst $HOME durch den entsprechenden Wert, /home/franz, ersetzt und somit die Zeile zu cd /home/franz erweitert. Das selbe gilt für echo "$USERNAME" usw.

9.4.3. Den Inhalt einer oder mehrerer Dateien auf den Schirm schreiben cat

Mit Hilfe des Kommandos cat kann man den Inhalt einer oder mehrerer Dateien auf den Schirm ausgeben:

$ cat /etc/fstab
/dev/hda5 / ext2 defaults 1 1
/dev/hda6 /home ext2 defaults 1 2
/dev/hda7 swap swap defaults 0 0
/dev/hda8 /usr ext2 defaults 1 2
/dev/fd0 /mnt/floppy auto sync,user,noauto,nosuid,nodev 0 0
none /proc proc defaults 0 0
none /dev/pts devpts mode=0620 0 0
/dev/cdrom /mnt/cdrom auto user,noauto,nosuid,exec,nodev,ro 0 0
$ cd /etc
$ cat conf.modules shells
alias parport_lowlevel parport_pc
pre-install plip modprobe parport_pc ; echo 7 > /proc/parport/0/irq
#pre-install pcmcia_core /etc/rc.d/init.d/pcmcia start
#alias car-major-14 sound
alias sound esssolo1
keep
/bin/zsh
/bin/bash
/bin/sh
/bin/tcsh
/bin/csh
/bin/ash
/bin/bsh
/usr/bin/zsh

9.4.4. Lange Dateien betrachten: less

Der Name less (less, engl. für ,,weniger``) ist eine Anspielung auf die erste Anzeigehilfe, die es unter Unix gab: more (more, engl. für ,,mehr``). Das Programm ermöglicht es einem Benutzer, lange Dateien Schirm-für-Schirm (,,Seite für Seite``) durchzusehen. less hat more mittlerweile weitgehend ersetzt, da es mehr Funktionen bietet und intuitiver zu bedienen ist. Zum Beispiel:

less /etc/termcap

Zur Navigation benutzen Sie einfach die entsprechenden Pfeiltasten. q beendet (,,quittiert``) das Programm. Doch less kann noch etliches mehr: geben Sie h für die recht umfangreiche Hilfe ein. Hier geht es jedoch nur darum, dass Sie lange Dateien lesen können, und das können Sie ja jetzt, nicht wahr :-)

9.4.5. Dateien auflisten: ls

Das Kommando ls (LiSt) entspricht dir unter DOS, kann aber wiederum eine ganze Menge mehr. Der Grund hierfür ist wohl in der Tatsache zu suchen, dass Dateien unter Unix mehr Atribute besitzen :-) Die Syntax lautet wie folgt:

ls [Optionen] [Datei|Verzeichnis] [Datei|Verzeichnis...]

Wird ls ohne Dateinamen oder Verzeichnis aufgerufen, listet es die Dateien des aktuellen Verzeichnisses auf. Es kennt viele, viele Optionen; hier folgen nur einige wenige:

Einige Beispiele:

9.4.6. Nützliche Tastenkombinationen

Um Ihnen einige Tipparbeit zu ersparen, wurden viele Tastenkürzel definiert. Dieser Abschnitt wird Ihnen einige vorstellen. Es wird hierbei angenommen, dass Sie die Linux-Standardshell, die Bash, benutzen, obwohl die Kürzel auch in anderen Shells funktionieren sollten. Im folgenden werden zur Beschreibung der Kürzel einige Abkürzungen verwendet: Strg-<x> steht für Strg+<x> (drücken Sie die Strg Taste, halten Sie sie gedrückt und betätigen Sie die Taste <x>. Lassen Sie anschließend beide Tasten wieder los).

Zunächst zu den Pfeiltasten. Die Bash speichert die zuletzt benutzten Befehle ab. Diese können Sie mittels der Pfeil-Auf- und Pfeil-Ab-Tasten wieder abrufen. Die Größe dieses Speichers wird mittels der Variable HISTSIZE festgelegt. Er überdauert sogar das Ende einer Sitzung und kann daher beim Beginn einer neuen Sitzung immer noch abgerufen werden.

Die Pfeil-Rechts- und Pfeil-Links-Tasten bewegen den Cursor innerhalb der aktuellen Kommandozeile und ermöglichen es Ihnen so, diese zu editieren. Es gibt jedoch noch weitere Editierkürzel: Strg-a und Strg-e bringen Sie beispielsweise an den Anfang bzw. das Ende der aktuellen Zeile. Die Löschtasten Rücktaste und Entf arbeiten wie gewohnt, löschen also das Zeichen vor, bzw. nach der aktuellen Cursorposition. Ein Äquivalent zur Rücktaste stellt die Tastenkombination Strg-h dar, zur Entf-Taste das Kürzel Strg-d. Strg-k löscht die Zeile von der aktuellen Cursorposition bis zum Ende, Strg-w das Wort vor dem Cursor.

Mit der Tastenkombination Strg-d beenden Sie die aktuelle Sitzung, erzielen also das gleiche Ergebnis wie mit dem Kommando exit, sparen sich aber einige Buchstaben :-) Strg-c unterbricht das gerade laufende Programm, es sei denn, Sie sind gerade beim Editieren einer Kommandozeile: in diesem Fall wird der Editiervorgang abgebrochen und Sie erhalten eine neue Eingabeaufforderung. Strg-l erzeugt einen leeren Schirm.

Abschließend sollen hier noch die Kürzel Strg-s und Strg-q vorgestellt werden: diese Kombinationen suspendieren, bzw. reaktivieren den Zeichenfluss. Sie werden sehr selten benutzt, doch sollten Sie einmal zufällig Strg-s drücken und daher keine Ausgabe mehr auf Ihrem Terminal erscheinen, können Sie sie mit Strg-q wieder aktivieren. Dann wird der gesamte Text, den Sie zwischen dem ungewollten Strg-s und dem dann betätigten Strg-q eingegeben haben, auf einmal ausgegeben.


Tux on Star from MandrakeSoft Linux ist ein eingetragenes Warenzeichen von Linus Torvalds. Alle anderen Warenzeichen und Copyrights sind das Eigentum ihrer Inhaber.
Sofern nichts anderes Angaben ist, unterliegen die Inhalte der Seiten sowie alle Bilder dem Copyright von MandrakeSoft S.A. und MandrakeSoft Inc. 2000.
http://www.linux-mandrake.com/