Erfahrene Linux-Nutzer schwören auf flexible Kommandozeilentools, mit denen sie manche Aufgabe schneller bewältigen als mit grafischen Programmen. Wir stellen die wichtigsten Anwendungen vor, um auch Einsteiger zu einem Ausflug auf die Shell zu ermutigen.
Know-how für die Kommandozeile
Tipp: Farbe für “grep”
Das Programm grep[1] sucht in Texten nach bestimmten Mustern; zum Beispiel gibt
grep Heike datei.txt
alle Zeilen der Datei datei.txt aus, die das Suchmuster “Heike” enthalten. Übersichtlicher wird das Ganze, wenn Sie grep die Option --color mit auf den Weg geben (Abbildung 1). Standardmäßig präsentiert grep dann die Treffer in Rot.
Wenn Sie eine andere Farbe bevorzugen, setzen Sie die Umgebungsvariable GREP_COLOR wie in Abbildung 1 zu sehen neu. Die Angabe des ANSI-Farbcodes 34 (über so genannte Escape-Sequenzen) sorgt dafür, dass die Fundstellen nun blau erscheinen. Andere Werte für die grep-Farbcodes sind zum Beispiel: 30 (schwarz), 31 (rot), 32 (grün), 33 (gelb), 34 (blau), 35 (magenta), 36 (cyan) und 37 (weiß).
Damit die Einstellungen einen Neustart des Systems überleben, tragen Sie in die Konfigurationsdatei der Bash (~/.bashrc) die Zeile
export GREP_COLOR=34
ein. Die Änderungen greifen entweder beim nächsten Anmelden oder wenn Sie die neuen Einstellungen mit source in der aktuellen Shell einlesen:
source ~/.bashrc
Tipp: Noch mehr Tricks mit Farben
Den im vorigen Tipp gezeigten Farben (genaugenommen handelt es sich um die Vordergrundfarben) fügen Sie auf Wunsch weitere Attribute hinzu. Dadurch erscheinen die Elemente in der Textausgabe fett, unterstrichen oder blinkend. Es sind folgende Attribute möglich: 00 (keine), 01 (fett), 04 (unterstrichen), 05 (blinkend), 07 (invertiert) und 08 (unsichtbar).
Um eine solche Eigenschaft mit einer Farbe zu kombinieren, setzen Sie das Attribut, durch ein Semikolon abgetrennt, vor oder hinter die Farbe, beispielsweise:
export GREP_COLOR="04;34"
Achten Sie darauf, den Ausdruck in Anführungszeichen zu setzen, da die Shell das Semikolon andernfalls fehlinterpretiert.
Auch für die Hintergrundfarbe stehen zweistellige Codes zur Verfügung, die Sie wiederum durch ein Semikolon abtrennen: 40 (schwarz), 41 (rot), 42 (grün), 43 (gelb), 44 (blau), 45 (magenta), 46 (cyan) und 47 (weiß).
Nach dem folgenden Befehl
export GREP_COLOR="04;34;41"
präsentiert grep die Ausgabe in Blau, unterstrichen und auf einem roten Hintergrund.
Tipp: Mehrere Ordner auf einmal anlegen
Mit dem Programm mkdir (englisch “make directory” = “erstelle Verzeichnis”) legen Sie Ordner an. Um etwa im aktuellen Verzeichnis einen Ordner namens briefe zu erstellen, tippen Sie:
mkdir briefe
Wollen Sie die Post noch weiter sortieren, helfen Unterverzeichnisse weiter. Die Befehle
mkdir briefe/sportverein mkdir briefe/sportverein/vorstand
legen weitere Ordner unterhalb von briefe an. Dabei muss das jeweils übergeordnete Verzeichnis allerdings existieren: Gibt es den Ordner sportverein noch nicht, beschwert sich mkdir. Als praktisch erweist sich in diesem Fall der Aufrufparameter -p, der mkdir anweist, ganze Ordnerhierarchien in einem Rutsch anzulegen:
mkdir -p briefe/sportverein/vorstand
erstellt alle drei Verzeichnisse auf einmal.
Tipp: Texteditoren: Direkt zur Zeile springen
Viele der beliebten Texteditoren unter Linux bieten eine Funktion an, mit der Sie direkt beim Start zu einer bestimmten Zeile springen. Beschwert sich ein Programm beim Aufruf beispielsweise, dass irgendetwas in Zeile 20 der Konfiguration hakt, öffnen Sie die Quellcode-Datei direkt an dieser Stelle. Wer den Editor Nano verwendet, tippt:
nano +20 datei
Genauso geht es mit dem Joe (joe +20 datei), dem Easy Editor (ee +20 datei), dem Vim (vim +20 datei) und dem Emacs (emacs +20 datei).
Tipp: Zeitzonen überwinden mit Date
Das Kommando date zeigt Datum, Uhrzeit und Zeitzone auf der Kommandozeile an; dem Systemverwalter hilft es außerdem, diese neu zu setzen. Mit einem kleinen Trick bringen Sie date dazu, die Uhrzeit an fernen Orten der Welt anzuzeigen. Dabei hilft die Umgebungsvariable [2]TZ (englisch “time zone” = “Zeitzone”). Werfen Sie einen Blick ins Verzeichnis /usr/share/zoneinfo/, um herauszufinden, welche Zeitzonen das System kennt. Wer beispielsweise Freunde in New York hat, findet mit dem folgenden Kommando heraus, wie früh oder spät es dort gerade ist:
$ TZ=America/New_York date Do Sep 13 08:41:15 EDT 2007
Tipp: Shell-Gedächtnis: “.bash_history” und “fc”
Die Bash merkt sich bereits eingegebene Befehle in der so genannten History (genauer in der Datei ~/.bash_history). So zaubern Sie Kommandos schnell wieder auf den Schirm und wiederholen oder modifizieren sie. [Pfeil hoch] zeigt den zuletzt getippten Befehl an; drücken Sie die Taste mehrmals, um weitere vergangene Befehle anzuzeigen. Entsprechend geht es mit [Pfeil runter] wieder nach vorne. Die alten Kommandos können Sie modifizieren und natürlich via [Eingabe] abschicken und so noch einmal ausführen.
Mit den Tastenkombinationen [Strg]+[R] und [Strg]+[S] durchsuchen Sie die History nach längst Vergangenem: Ein Druck auf [Strg]+[R] verändert den Shell-Prompt:
(reverse-i-search)`':
Nun geben Sie Teile des gesuchten Kommandos ein. Die Bash vervollständigt Ihre Anfrage bereits während der Eingabe automatisch, so dass manchmal wenige Buchstaben genügen, um einen vergangenen Befehl aufzuspüren. Ein erneuter Druck auf [Strg]+[R] sucht weiter in der Liste. Um ein gefundenes Kommando auszuführen, drücken Sie [Eingabe]. Alternativ geben Sie [Esc] ein, um den Befehl vor dem Ausführen noch zu verändern und die Suche zu verlassen. Genauso arbeiten Sie mit [Strg]+[S] bei der Vorwärtssuche.
Diese einzelnen Befehle reißen allerdings die vergangenen Arbeitsabläufe auseinander. Das Bash-Builtinfc hilft dabei, die Beziehungen zwischen ganzen Befehlssequenzen abzubilden. Standardmäßig zeigt fc -l die letzten 17 Kommandos an. Zusammen mit einer angehängten Ziffer bestimmen Sie genau, wie viele Zeilen fc ausgibt. So offenbart
fc -l -10
die letzten zehn Befehle (Abbildung 2).
Glossar
-
Escape-Sequenzen
-
Damit die Konsole nicht darstellbare Zeichen anzeigt, geben Sie für diese ersatzweise eine bestimmte Zeichensequenz ein.
-
Builtin
-
Ein Builtin ist kein eigenständiges Binärprogramm, sondern ein eingebauter Befehl, den die Shell mitliefert. Builtins haben keine eigene Manpage, sondern ihre Dokumentation ist in der Regel Teil der Bash-Dokumentation (man bash). Eine kurze Hilfe rufen Sie zudem über
bash -c helpauf.
[1] Artikel zu Grep: Elisabeth Bauer, “Text fischen”, EasyLinux 10/2004, S.74 ff., http://www.easylinux.de/2003/10/074-grep/
[2] Umgebungsvariablen auf der Shell: Heike Jurzik, “Gut eingerichtet”, LinuxUser 05/2007, S. 88 ff., http://www.linux-user.de/ausgabe/2007/05/088-zubefehl/index.html



