2.4 Kurze Einführung in die Kommandozeile

Die Kommandozeile ist der direkteste Weg, dem System Befehle zu erteilen. Wenn Sie die Kommandozeile von GNU/Linux benutzen, werden Sie bald feststellen, dass diese wesentlich mächtiger als andere Umgebungen ist, die Sie vielleicht bisher benutzt haben. Die GNU/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-/Ausgabeschnittstelle, wie sie früher an großen Unix-Rechnern Verwendung fanden). Unter KDE etwa konsole, dessen Symbol sie in Abbildung 2-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 2-3: Symbol des Programms Konsole

Wenn Sie eine solche Terminal-Emulation starten, erhalten sie eine Shell. Diese ist dazu gedacht, Ihnen eine Interaktionsmöglichkeit mit Ihrem Betriebssystem bereit zu stellen. 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 und einen Befehl ausführen 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.

2.4.1 cd: Navigieren im Verzeichnisbaum

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 ~birgit schließlich können Sie in das Heim-Verzeichnis des Benutzers birgit 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 birgit durch ein auf Ihrem System existierendes ersetzt werden muss):

$ pwd
/root
$ cd /usr/share/doc/HOWTO
$ pwd
/usr/share/doc/HOWTO
$ cd ../FAQ-Linux
$ pwd
/usr/share/doc/FAQ-Linux
$ cd ../../../lib
$ pwd
/usr/lib
$ cd ~birgit
$ pwd
/home/birgit
$ cd
$ pwd
/root

Geben Sie Ihre Administratorenrechte nun wieder ab.

2.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 normalerweise nicht dazugehört!

  3. USERNAME Enthält Ihr Benutzerkennzeichen.

  4. UID Enthält Ihre Benutzerkennung.

  5. PS1 Enthält den Wert ihrer Standard-Eingabeaufforderung, oft eine Kombination von Platzhaltern. Lesen Sie den Handbuchauszug zu bash(1) 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.

2.4.3 cat: Den Inhalt einer oder mehrerer Dateien auf den Schirm schreiben:

Mit Hilfe des Kommandos cat kann man den Inhalt einer oder mehrerer Dateien auf der Standardausgabe, meistens 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 modules.conf shells
# Parallel-Port:
alias parport_lowlevel parport_pc
pre-install plip modprobe parport_pc ; echo 7 > /proc/parport/0/irq
# USB:
alias usb-interface usb-uhci
# Sound:
alias char-major-116 snd
alias char-major-14 soundcore
alias snd-card-0 snd-card-intel8x0
alias sound-slot-0 snd-card-0
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss
/bin/zsh
/bin/bash
/bin/sh
/bin/tcsh
/bin/csh
/bin/ash
/bin/bsh
/usr/bin/zsh

2.4.4 less: Lange Dateien betrachten

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 :-)

2.4.5 ls: Dateien auflisten

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 Attribute 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:

2.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 GNU/Linux-Standardshell, die Bash, benutzen, obwohl die Kürzel auch in anderen Shells funktionieren sollten.

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 vor dem MandrakeSoft Stern] 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. 2001.
http://www.mandrakelinux.com/