Die Kommandozeile ist der direkteste Weg um Ihrem Rechner Befehle zu erteilen. Wenn Sie die GNU/Linux-Kommandozeile benutzen, werden Sie bemerken, dass diese sehr viel leistungsfähiger ist als andere Kommandozeilen, die Sie vorher verwendet haben. Diese Stärke wurde erreicht, weil Sie nicht nur auf alle X Anwendungen, sondern auch auf Tausende von Textwerkzeugen Zugriff haben, zu denen es keine gleichwertigen Programme mit grafischer Benutzeroberfläche gibt. Die mächtigkeit die durch Verwendung von Kommandozeilenoptionen entsteht lässt sich nur schwer in Form von Schaltflächen und Menüs nachbilden.
Zugegebenermaßen brauchen die meisten Anwender am Anfang ein wenig Hilfe. Das Erste, was Sie tun müsen, wenn Sie noch nicht im Konsolenmodus gearbeitet haben, ist einen Terminal-Emulator zu starten. Öffnen Sie das Mandrakelinux-Menü. Dort finden Sie eine Reihe von Emulatoren unter + . Wählen Sie einen aus, etwa oder . Abhängig von Ihrer Benutzeroberfläche existiert auch ein Symbol in der Startleiste, über das eine der Anwendungen gestartet werden kann. (Abbildung 1.2, „Das Terminal-Symbol in dem KDE Startleiste“).
Wenn Sie den Terminal-Emulator gestartet haben, benutzen Sie eigentlich eine shell. Das ist der Name des Programms, dass Ihnen die Interaktion mit dem Rechner erlaubt. Sie sehen jetzt eine Eingabeaufforderung (engl. Prompt ) vor sich:
[franz@localhost franz]$ |
Dies zeigt an, dass Ihr Benutzerkennzeichen franz und der Name Ihres Rechners localhost ist (das ist der Fall, wenn Ihr PC kein Teil eines Netzwerks ist). Hinter der Eingabeaufforderung ist Platz zum tippen Ihrer Befehle. Beachten Sie, dass das $-Zeichen am Ende der Eingabeaufforderung durch ein # ersetzt wird, wenn Sie als root angemeldet sind (das trifft nur auf den Auslieferungszustand Ihrer Distribution zu, da Sie ja alle diese Details in GNU/Linux nach Ihren Vorlieben anpassen können). Um in den Kontext des privilegierten Benutzerkennzeichens root zu wechseln, tippen Sie nach dem Aufrufen der shell den Befehl su.
# Geben Sie das Root-Passwort ein (es erscheint nicht auf dem Bildschirm) [franz@localhost franz]$ su Password: # mit exit oder Strg-D kommt man wieder zum unprivilegierten Benutzerkontext zurück [root@localhost franz]# exit [franz@localhost franz]$ |
An allen anderen Stellen des Buches wird die Eingabeaufforderung durch $ symbolisiert, egal, ob Sie ein normaler Benutzer oder root sind. Sie werden darauf hingewiesen wenn Sie sich als root anmelden müssen, um einen Befehl ausführen zu können. Also erinnern Sie sich dann an das Kommando su.
Wenn Sie eine shell zum ersten Mal starten, befinden Sie sich normalerweise im persönlichem Verzeichnis (home/). Um das Verzeichnis, in dem Sie sich gerade befinden. anzuzeigen, geben Sie das Kommando pwd (Abkürzung für Print Working Directory) ein:
$ pwd /home/franz |
Als nächstes werden wir einige grundlegende Befehle erläutern, die, wie Sie sehen werden, sehr nützlich sein können.
Der Befehl cd ist ähnlich wie unter DOS, allerdings mit einigen Extras. Dieser Befehl wechselt das aktuelle Verzeichnis. Sie können . und .. verwenden, was für das aktuelle und das übergeordnete Verzeichnis steht. Geben Sie nur cd ein, gelangen Sie in ihr persönliches Verzeichnis. cd - bringt Sie zum zuletzt verwendeten Verzeichnis zurück. Und letztlich können Sie zum persönlichen Verzeichnis von birgit gelangen, indem Sie cd ~birgit eingeben. (~ für sich allein steht für Ihr persönliches Verzeichnis). Beachten Sie, dass unprivilegierte Benutzerkennzeichen standardmäßig keinen Zugriff auf persönliche Verzeichnisse anderer Kennzeichen haben (es sei denn, deren Benutzer haben das ausdrücklich so eingerichtet). Eine Ausnahme bider wie immer daas privilegierte Kennzeichen root. Zum Üben werden Sie root und probieren diese Kommandos:
$ 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 nun Ihre Privilegien wieder ab und kehren in den Kontext eines einfachen Anwenders zurück: Geben Sie dafür den Befehl exit ein (oder verwenden Sie die Tastenkombination Strg-D).
Alle Prozesse haben ihre Umgebungsvariablen und die shell erlaubt es Ihnen, sich diese direkt mit echo anzeigen zu lassen. Einige interessante Variablen sind:
HOME: Diese Umgebungsvariable enthält eine Zeichenkette, die dem Pfad zu Ihrem perspersönlichen Verzeichnis entspricht.
PATH: Diese Variable beinhaltet eine Liste aller Verzeichnisse in denen die shell nach ausführbaren Dateien suchen soll, wenn ein Kommando eingeben wird. Beachten Sie, dass eine UNIX® shell standardmäßig nicht im aktuellen Verzeichnis nach ausführbaren Dateien sucht (im Gegensatz etwa zu DOS)!
USERNAME: Diese Variable beinhaltet Ihren Anmelde-Namen, also Ihr Benutzerkennzeichen.
PS1: Diese Variable entscheidet, wie Ihre Eingabeaufforderung aussieht. Es handelt sich oft um eine Kombination von speziellen Sequenzen. Sie können nähere Informationen dazu im bash(1) Handbuchauszug nachlesen. Geben Sie dazu das Kommando man bash im Terminal ein.
Um eine shell dazu zu bringen eine Variable auszugeben, müssen Sie ein $ vor den Variablennamen setzen. Hier ein Beispiel mit echo
$ echo Hello Hello $ echo $HOME /home/franz $ echo $USERNAME franz $ echo Hello $USERNAME Hello franz $ cd /usr $ pwd /usr $ cd $HOME $ pwd /home/franz |
Wie Sie bemerken, ersetzt die shell die Variable, bevor sie den Befehl ausführt. Ansonsten würde der Befehl cd $HOME nicht funktionieren. Tatsächlich, ersetzt die shell erst $HOME mit dem entsprechenden Wert (/home/franz), sodass die Eingabezeile cd /home/franz zeigt, was beabsichtigt war. Das gleiche passiert in dem Beispiel echo $USERNAME.
Wie schon gesagt, macht dieses Kommando folgendes: der Inhalt von einer oder mehreren Dateien wird auf die Standard-Ausgabe, normalerweise ist das der Bildschirm, ausgegeben:
$ 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 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 char-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 ist ein Wortspiel. Er bezieht sich auf den ersten Pager, den es unter UNIX® gab: more. Ein Pager ist ein Programm, das dem Benutzer erlaubt, große Textdateien seitenweise anzuzeigen (genauer: Bildschirmweise) Der Grund, warum wir less erklären, anstatt more ist, dass less sich viel intuitiver benutzen läßt. Sie sollten less benutzen, um große Dateien anzusehen, die sich nicht auf einem einzigen Bildschirm anzeigen lassen. Beispielsweise:
less /etc/termcap |
Um durch diese Datei zu „blättern“, benutzen Sie die Aufwärts- und Abwärtstaste. Benutzen Sie q um less zu beenden. less kann weit mehr, als das: durch drücken der Taste h erhalten Sie einen Hilfeschirm mit den verschiedenen Optionen angezeigt.
Der Befehl ls (LiSt) entspricht etwa dem Kommando dir unter DOS, kann jedoch viel mehr. Tatsächlich ist er leistungsfähiger, da Dateien unter UNIX® mehr Eigenschaften besitzen. Die Syntax für ls lautet:
ls [optionen] [datei|verzeichnis] [datei|verzeichnis...] |
Wenn kein Verzeichnis in der Kommandozeile angegeben wurde, listet ls alle Dateien im aktuellem Verzeichnis auf. Seine Optionen sind sehr zahlreich, sodass wir nur eine kleine Anzahl davon behandeln:
-a: Zeigt alle Dateien, einschließlich der versteckten Dateien Wie Sie vielleicht schon wissen, beginnen in UNIX® alle versteckten Dateien mit einem Punkt „.“. Bei der Option -A werden im Unterschied dazu die Dateien „.“ und „..“ (also die Verweise auf das aktuelle und das übergeordnete Verzeichnis) nicht angezeigt.
-R: listet rekursiv alle Dateien und Unterverzeichnisse von Verzeichnissen auf, die in der Kommandozeile angegeben wurden.
-l: gibt nähere Informationen für jede Datei an, wie etwa die Rechte, den Eigentümer und die Besitzergruppe, die Größe und die Zeit des letzten Zugriffs.
-i: zeigt die Nummer des Inode (die Nummer zur eindeutigen Identifikation einer Datei, siehe auch Kapitel Kapitel 9, GNU/Linux Dateisysteme) neben der Datei an.
-d: behandelt Verzeichnisse so, als wären sie normale Dateien, d.h. zeigt nur die Namen der Verzeichnisse, nicht aber deren Inhalt an.
ls -R: listet rekursiv den Inhalt des aktuellen Verzeichnisses auf.
ls -is images/ ..: listet die Inode-Nummer und die Größe in Kilobytes für jede Datei im Verzeichnis images/ und im Elternverzeichnis des aktuellen Verzeichnises auf.
ls -l images/*.png: listet alle Dateien im Verzeichnis images/ auf, deren Name mit .png endet, inklusive der Datei .png falls diese existiert.
Es gibt eine Menge von Tastenkombinationen (engl. Shortcuts), mit denen man viel Zeit spart. Wir setzen hier voraus, dass Sie die Standard- shell unter Mandrakelinux verwenden: bash. Die Mehrzahl der Tastenkombinationen sollten aber auch mit anderen Shells funbktionieren.
Zuerst: die Pfeil-Tasten. bash speichert eine Reihe von vorher getätigten Kommandos, die mit den Pfeil-Tasten erneut angezeigt werden können. Sie können maximal die Anzahl Befehle zurückblättern, die durch die Umgebungsvariable HISTSIZE festgelegt ist. Außerdem werden die Kommandos in Auslieferzustand Ihrer Distribution dauerhaft gespeichert, sodass Sie die in vorhergehenden Sitzungen eingegebenen Befehle nicht verlieren.
Die linke und rechte Pfeil-Taste bewegt den Blinker nach links bzw. rechts und erlauben Ihnen, Ihre Eingaben zu bearbeiten. Aber es gibt mehr Funktionen beim Editieren, als zu bestimmten Punkten zu springen. Strg-A und Strg-E brint Sie zum Anfang oder Ende der Zeile. Die Tasten Backspace und Entf bewirken das Erwartete. Backspace und Strg-H haben die gleiche Wirkung. Entf und Strg-D desgleichen. Strg-K löscht die Zeile von der Blikerposition bis zum Ende und Strg-W löscht das Wort vor dem Blinker (das Gleiche wie Alt-Backspace).
Strg-D in einer leeren Zeile schließt die aktuelle Sitzung, ein schnellerer Weg als die Eingabe von exit. Strg-C unterbricht den gerade laufenden Befehl, es sei denn, Sie editieren gerade Ihre Befehlszeile. In diesem Fall wird das Editieren abgebrochen und Sie finden sich an einer Eingabeaufforderung wieder. Strg-L löscht den Bildschirm. Strg-Z unterbricht einen Befehl temporär. Dieser Kürzel ist sehr hilfreich, wenn Sie das Zeichen „&“ hinter einem Befehl vergessen haben. Beispiel:
$ xpdf MeinDokument.pdf |
Hier können Sie Ihre shell nicht mehr benutzen, da sie durch den Prozess xpdf im Vordergrund blockiert ist. Geben Sie hier zuerst die Kombination Ctrl-Z und danach den Befehl bg ein. Damit schieben Sie den Prozess in den Hintergrund und haben wieder Zugriff auf die Shell.
Zuletzt zu erwähnen seien noch Strg-S und Strg-Q, mit denen die Ausgabe auf dem Bildschirm gesperrt und wieder hergestellt wird. Diese Kombinationen sind nicht sehr gebräuchlich. Allerdings könnten Sie aus Versehen Strg-S eingeben (S und D liegen immerhin dicht nebeneinander). Wenn Sie also schreiben und es erscheint nichts mehr auf dem Bildschirm, drücken Sie einfach die Kombination Strg-Q. Danach werden alle in der Zwischenzeit eingegebenen Zeichen auf einmal auf dem Bildschirm sichtbar.