Linux-Mandrake: Installationshandbuch; Benutzerhandbuch | ||
---|---|---|
Zurück | Kapitel 9. Grundlegende Unix Konzepte | Vor |
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-/Ausgabeschnittstelle, 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...
Wenn Sie eine solche Terminal-Emulation starten, erhalten sie eine 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.
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 :-)
Alle Prozesse haben bestimmte Umgebungsvariablen, die das Verhalten der Prozesse bestimmen. Die Shell erlaubt es Ihnen, sich deren Werte anzuschauen. Einige wichtige Exemplare sind:
HOME Enthält den Namen Ihres Heim-Verzeichnisses.
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!
USERNAME Enthält Ihr Benutzerkennzeichen.
UID Enthält Ihre Benutzerkennung.
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.
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 |
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 :-)
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:
-a: Listet alle Dateien auf, einschließlich der versteckten Dateien (unter Unix sind das die Dateien, deren Name mit einem Punkt (,,.``) beginnt). Die Option -A tut das selbe, lässt aber ,,.`` und ,,..`` weg.
-R: Listet rekursiv auf, d.h. alle Dateien und Unterverzeichnisse (sowie deren Dateien und Unterverzeichnisse, usw.)
-s: Zeigt die Dateigröße in Kilobyte
-l: ,,Langes Ausgabeformat`` – so ziemlich jede Information, die Sie über eine Datei bekommen können.
-i: Gibt die Inode-Nummer der Datei an.
-d: Listet Verzeichnisse als normale Dateien auf, anstatt ihren Inhalt anzuzeigen.
Einige Beispiele:
ls -R: Listet den Inhalt des aktuellen Verzeichnisses rekursiv auf.
ls -is Bilder/ ..: Listet die Dateien im Verzeichnis Bilder/ und dem Elternverzeichnis zusammen mit der Inode-Nummer und der Dateigröße in Kilobyte auf.
ls -al Bilder/*.png: Alle Dateien im Verzeichnis Bilder/, die auf .png enden (also auch eine Datei namens ,,.png``, sollte eine solche existieren), werden aufgelistet.
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.