Erfahrene Linux-Nutzer schwören auf flexible Kommandozeilentools, mit denen sich manche Aufgabe schneller bewältigen lässt als in grafischen Programmen. Wir stellen die wichtigsten Anwendungen vor, um auch Einsteiger zu einem Ausflug in die Shell zu ermutigen.
Tipp: Vorhandene “alias”-Einträge anzeigen
Mit einem Alias für die Bash definieren Sie praktische Kurzbefehle und Abkürzungen für Kommandos, die Sie sich nicht merken können oder wollen. Auf den meisten Distributionen ist beispielsweise die Abkürzung ll definiert. Was sich dahinter verbirgt, erfahren Sie mit dem Befehl alias und dem Namen des Kurzbefehls:
$ alias ll alias ll="ls -l"
Alle Alias-Definitionen zeigen Sie an, indem Sie den Befehl alias ohne weitere Argumente eingeben (Listing 1).
Listing 1
Aliase
$ alias alias ..='cd ..' alias …='cd ../..' alias ll='ls -l' alias la='ls -la' alias ltr='ls -ltr' alias rd='rmdir' alias md='mkdir' alias grep='grep --color' alias asteroid='ssh huhn@asteroid.huhnix.org' alias xterm='xterm -bg black -fg white &' alias go='cd ~/easy/2010/02/' …
Tipp: Eigene Alias-Definitionen erstellen
Mit dem Kommando alias können Sie auch eigene Abkürzungen erstellen. Geben Sie dazu nach alias und dem neuen Kurzbefehl ein Gleichheitszeichen und dahinter (in Hochkommata eingeschlossen) die Langform ein. Um beispielsweise den grep-Alias zu erweitern und neben dem Parameter zur Einfärbung der Fundstellen (--color) standardmäßig das Ignorieren von Groß-/Kleinschreibung (-i) zu setzen, geben Sie das folgende Kommando ein:
alias grep="grep -i --color"
Beachten Sie, dass der neue Alias nur in der aktuellen Shell gültig ist. Um ihn dauerhaft verfügbar zu machen, tragen Sie ihn in die Bash-Einrichtungsdatei ein. Dazu bearbeiten Sie die Datei .bashrc aus Ihrem Home-Verzeichnis im Texteditor Ihrer Wahl. Die veränderte Konfiguration ist in neuen Shell-Sitzungen aktiv; in laufenden Shells erwecken Sie sie über das Kommando source ~/.bashrc zum Leben.
Tipp: Alias temporär und dauerhaft deaktivieren
Um einen Bash-Kurzbefehl abzuschalten, stehen Ihnen mehrere Möglichkeiten zur Verfügung. Eine dauerhafte Lösung ist beispielsweise, den entsprechenden alias-Eintrag aus der Bash-Konfigurationsdatei ~/.bashrc zu löschen. Alternativ kommentieren Sie die Zeile in der Einrichtungsdatei aus, indem Sie ein Rautezeichen voranstellen:
#alias grep="grep --color"
Letztere Methode hat den Vorteil, dass Sie den Alias jederzeit wieder aktivieren können, indem Sie das #-Zeichen löschen. Vergessen Sie nicht, nach jeder Änderung an der Datei ~/.bashrc die Bash-Einrichtungsdatei neu einzulesen (source ~/.bashrc) oder eine neue Shell zu starten, damit die Änderungen greifen.
In einer laufenden Shell-Sitzung hebeln Sie außerdem mit dem Befehl unalias einen vorhandenen Alias aus. Geben Sie hinter dem Kommando einfach den Namen des Kurzbefehls an, z. B.:
unalias grep
Sollten Sie die Abkürzung grep="grep --color" irgendwann wieder benötigen, geben Sie diese entweder wieder als Alias in der laufenden Sitzung (alias grep="grep --color") ein, oder Sie lesen die Bash-Konfiguration mit source ~/.bashrc ein, falls der grep-Alias dort definiert ist.
Noch eleganter ist das Ganze, wenn Sie einen Backslash zu Hilfe nehmen. Tippen Sie einfach \grep, um den Alias grep="grep --color" für einen einzelnen Aufruf von grep abzuschalten.
Tipp: Vim: Schlaue Undo-/Redo-Funktion
Um im Texteditor Vim einen Arbeitsschritt rückgängig zu machen, tippen Sie [U], und die Tastenkombination [Strg]+[R] stellt den Schritt wieder her. Kombinationen mit Ziffern sind wie im Vim üblich erlaubt. Tippen Sie also im Bearbeitungsmodus 5u, um die letzten fünf Änderungen zurückzunehmen; die Eingabe von 5 gefolgt vom Shortcut [Strg]+[R] stellt alle fünf Schritte wieder her. Darüber hinaus steht der Shortcut [Umschalt]+[U] zur Verfügung, der alle Änderungen der aktuellen Zeile zurücknimmt.
Vielleicht sind Sie dabei auch schon öfter über folgendes Problem gestolpert: Sie schreiben etwas, gehen mit [U] einen Schritt zurück, schreiben etwas anderes, und irgendwann möchten Sie zum Zustand vor dem ersten Undo zurück. Mit der “normalen” Undo-Funktion erreichen Sie diesen nicht, denn Vim ordnet die Arbeitsschritte in einer Art Baumstruktur an. Sie können immer nur im aktuellen Zweig zurück- und vorgehen. Gehen Sie bis zu einem bestimmten Punkt zurück und dann nicht wieder vor, sondern fangen einen neuen Zweig an, erreichen Sie die ersten Zustände im Baum über die üblichen Tastenkommandos nicht mehr ohne Weiteres.
Wie viele solcher Undo-/Redo-Zweige es im aktuellen Dokument gibt, verrät Ihnen das Kommando undolist. Wechseln Sie mit [Esc] in den Bearbeitungsmodus und geben Sie nach einem Doppelpunkt diesen Befehl ein. Sie sehen dann beispielsweise eine Ausgabe wie die folgende:
number changes time
2 2 15:54:35
68 67 09:55:28
71 69 6 seconds ago
Das vorliegende Dokument hat also drei solcher Zweige, der neueste wurde vor sechs Sekunden geändert. Um durch alle Zustände zurück und wieder vor zu wandern, stehen die beiden Shortcuts [G] und [G]+[+] zur Verfügung. Mit diesen Kombinationen erreichen Sie also alle Schritte des gesamten Baums und nicht nur des aktuellen Zweigs, denn die beiden Befehle gehen in der Zeit zurück und vor.
Ähnlich arbeiten die beiden Befehle :earlier und :later. Ohne weitere Angaben entsprechen sie [G] und [G]+[+]. Alternativ schreiben Sie hinter den Befehl eine Zeitangabe, zum Beispiel :earlier 40s (springe zum Zustand vor 40 Sekunden), :earlier 10m (Zustand vor zehn Minuten) oder :earlier 3h (Zustand vor drei Stunden). Genau so arbeitet :later. Geben Sie also :later 30m ein, um den Text anzuzeigen, wie er 30 Minuten später aussah. Wenn Sie die erste bzw. letzte Änderung erreicht haben und es nicht weiter zurück oder vor geht, meldet Vim Already at oldest/newest change (Bereits bei der ältesten/neuesten Änderung) in der Statuszeile.
Tipp: Skripte, Logdateien & Co. per WWW verteilen
Systemweite und eigene Einrichtungsdateien, Shell-Skripte, Auszüge aus Logfiles oder Ähnliches können Sie zwar auf Mailinglisten oder ins Chatfenster posten, unterbrechen aber damit oft den Lesefluss und machen die Nachrichten unübersichtlich. Über einen Dienst wie Pastebin [1,2] stellen Sie die Dateien unkompliziert anderen Anwendern zur Verfügung. Die Vorteile dieser Webanwendungen liegen auf der Hand: Ihre Textschnipsel stehen in Windeseile unter kurzen URLs im WWW bereit, und die meisten Pastebin-Systeme bieten darüber hinaus für die wichtigsten Programmiersprachen Syntax-Highlighting an. Optional archivieren Sie die Texte im Web für eine bestimmte Dauer oder für immer.
Die Bedienung von Pastebin ist kinderleicht:
- Kopieren Sie den gewünschten Text mit der linken Maustaste.
-
Wechseln Sie zum Browserfenster, öffnen Sie die Adresse http://pastebin.de/ und kopieren Sie alles mit der mittleren Maustaste ins Textfeld (Abbildung 1).
- Wählen Sie aus dem Drop-down-Menü Syntax-Highlighting den gewünschten Hervorhebungsmodus aus.
- Vergeben Sie optional einen Benutzernamen im Feld Paste-Name.
- Entscheiden Sie sich in den Checkboxen daneben für die Archivierungsdauer und schicken Sie alles über Senden ab.
Anschließend erscheint die Ausgabe hübsch formatiert und nummeriert, und der Webdienst blendet eine kurze URL ein, die Sie an andere Nutzer verteilen können, damit sie zu Ihrem Text gelangen. Tipp: Stellen Sie zwei Klammeraffen vor eine Zeile (@@), um diese in Gelb hervorzuheben.
Tipp: Pastebin von der Shell aus erreichen
Einige Arbeitsschritte aus dem vorigen Tipp sparen Sie mit dem Kommandozeilentool pastebinit ein. Sie finden den praktischen Helfer bei allen von EasyLinux unterstützten Distributionen im gleichnamigen Paket, das Sie im Zweifelsfall über den Paketmanager nachrüsten.
Geben Sie in ein Terminalfenster das Kommando pastebinit ohne weitere Parameter gefolgt von [Eingabe] ein. Der Cursor springt in die nächste Zeile. Wie gewohnt, fügen Sie den gewünschten Text dort nun über die mittlere Maustaste ein. Über [Strg]+[D] teilen Sie dem Programm mit, dass der Vorgang abgeschlossen ist, und nach kurzer Zeit erscheint eine URL auf der Standardausgabe, unter der Sie den Text erreichen. Alternativ brechen Sie den Vorgang mit der Tastenkombination [Strg]+[C] ab.
In der Voreinstellung nutzt das Programm die Webseite http://pastebin.com/. Die Manpage listet verschiedene andere Pastebin-Dienste, die Sie alternativ ansprechen können. Dazu verwenden Sie die Option -b gefolgt von der URL. Um beispielsweise etwas bei Ubuntus Pastebin-Dienst zu veröffentlichen, starten Sie das Programm über den folgenden Aufruf:
pastebinit -b http://paste.ubuntu.com/
Tipp: Ganze Dateien über “pastebinit” online stellen
Wollen Sie statt einzelner Textpassagen ganze Dateien online stellen, können Sie sich das Kopieren und Einfügen von Hand sparen. Das Tool pastebinit nimmt nach der Aufrufoption -i Dateinamen entgegen. Um z. B. ein kleines Shell-Skript namens fotos.sh aus Ihrem Home-Verzeichnis online zu stellen, schreiben Sie:
pastebinit -i ~/fotos.sh
In der Voreinstellung verzichtet der praktische Helfer auf besondere Hervorhebungen. Das Syntax-Highlighting aktivieren Sie über den Schalter -f und geben dahinter den gewünschten Auszeichnungsmodus an. Für Shell-Skripte bietet sich beispielsweise -f bash an (Abbildung 2). Welche Sprachen ein Pastebin-Dienst versteht, verrät in der Regel seine Webseite.

Abbildung 2: Ein Shell-Kommando reicht, und das selbst geschriebene Shell-Skript steht mit Syntax-Highlighting im Web zur Ansicht bereit.
Tipp: “pastebinit” in Kombination mit anderen Tools
Noch schneller geht’s, wenn Sie die Ausgabe eines Programms direkt an pastebinit weiterreichen. Um beispielsweise die letzten 20 Zeilen des Logfiles /var/log/messages online zu stellen, geben Sie den folgenden Befehl ein:
tail -20 /var/log/messages | pastebinit
Beachten Sie, dass Sie auf den meisten Distributionen dafür Administratorrechte benötigen, denn die Logdatei /var/log/messages ist für normale Benutzer nicht lesbar. Der erste Befehl der Kette (tail) schreibt die letzten Zeilen einer Datei auf die Standardausgabe; über -20 definieren Sie die Zeilenanzahl. (Das Gegenstück zum tail-Kommando heißt übrigens head und gibt die ersten Zeilen von Dateien aus.) Über das Pipe-Zeichen (|, Tastenkombination [AltGr]+[<]) schicken Sie die Ausgabe von tail ohne Umweg über das Terminal an das Programm pastebinit[3].
Tipp: Case sensitivity für “find” abschalten
Das Programm find durchsucht das System nach Dateien [4]. Wer sich an den Dateinamen oder Teile davon erinnert, schränkt die Suche ein. So sucht das Kommando
find /home -name "*.JPG"
im gesamten Home-Verzeichnis nach Dateien, die auf .JPG enden. Beachten Sie die Anführungszeichen, die verhindern, dass die Shell das Wildcard-Zeichen * interpretiert. Leider findet das Programm so keine Bilder, deren Endung .jpg lautet. Um auch die Dateien mit Kleinbuchstaben in die Suche einzubeziehen, verwenden Sie statt des Parameters -name die Option -iname. Der folgende Befehl findet alle JPEG-Dateien im gesamten Home-Verzeichnis – egal, ob ihre Dateiendungen groß oder klein geschrieben sind:
find /home -iname "*.JPG"
Tipp: Informationen zu PDF-Dokumenten anzeigen
Mit welchem Programm wurde die PDF-Datei erstellt? Wie viele Seiten enthält sie? Ist sie verschlüsselt oder nicht? Um diese und andere Fragen zu beantworten, müssen Sie PDF-Dokumente nicht extra im Betrachter öffnen. Das Kommandozeilentool pdfinfo verrät auf der Shell Details zur Datei (Abbildung 3).
Die erste Beispieldatei wurde von Heike Jurzik (Author) mit OpenOffice Impress 3.1 erstellt, die zweite mit dem Acrobat Distiller unter Mac OS X. Für das zweite Dokument zeigt pdfinfo außer dem Erstellungsdatum (CreationDate) außerdem an, dass die Datei auch noch einmal verändert wurde (ModDate). Vor allem die Information, ob eine Datei verschlüsselt ist oder nicht (Encrypted), ist häufig wichtig: Aus verschlüsselten PDF-Dateien können Sie ohne Weiteres keinen Text oder Bilder extrahieren. Die ferwendete Version des PDF-Formats ist unter Umständen ebenfalls interessant, denn nicht alle PDF-Betrachter kommen mit den neueren PDF-Versionen zurecht.
Tipp: Bilder aus PDF-Dateien extrahieren
Ein weiteres praktisches Werkzeug für die Verarbeitung von PDF-Dokumenten auf der Shell ist pdfimages. Wie der Name vermuten lässt, fischt das Tool Bilder aus PDF-Dokumenten heraus. Dazu geben Sie außer dem Namen der PDF-Datei ein Präfix für die gefundenen Abbildungen an:
pdfimages datei.pdf bilder
Anschließend landen die Grafiken unter dem Namen bilder-001.ppm, bilder-002.ppm und so weiter im aktuellen Verzeichnis. Die Dateiendung .ppm steht für das Format Portable Pixmap (PPM). Enthält das Dokument keine farbigen Bilder, extrahiert pdfimages die Grafiken hingegen im Portable-Bitmap-Format (Endung .pbm).
Auf Wunsch speichert das Tool die Bilder auch im JPEG-Format. Dazu geben Sie als weiteren Parameter -j im Aufruf an. Das Speichern im JPEG-Format mit
pdfimages datei.pdf -j bilder
bedeutet allerdings einen Qualitätsverlust, während die PPM- oder PBM-Grafiken die Bilder in der maximal möglichen Qualität extrahieren.
Infos
[1] Deutsche Pastebin-Seite mit Highlighting und Archiv: http://pastebin.de/
[2] Englisches Pastebin-Original: http://pastebin.com/
[3] Tipps und Tricks zur Bash: Heike Jurzik, “Befehlsgewaltig”, EasyLinux 01/2005, S. 79 ff., http://www.easylinux.de/2005/01/079-bash/
[4] Artikel zu find: Elisabeth Bauer, “Meisterdetektive”, EasyLinux 01/2004, S. 72 ff., http://www.easylinux.de/2004/01/072-find/



