Erfahrene Linux-Nutzer schwören auf flexible Kommandozeilentools, mit denen sie manche Aufgabe schneller bewältigen als in grafischen Programmen. Wir stellen interessante Anwendungen und Aufrufparameter vor, um auch Einsteiger zu einem Ausflug in die Shell zu ermutigen.
Tipp: Vim: Schneller arbeiten mit Mappings
Der Texteditor Vim und seine GUI-Variante Gvim bietet allerlei praktische Features und Funktionen, um wiederkehrende Aufgaben abzukürzen. Mit so genannten Mappings belegen Sie Tasten oder Tastenkombinationen neu und weisen diesen beliebige Kommandofolgen zu. Sie können diese zur Laufzeit definieren (damit gelten sie nur für die aktuelle Sitzung) oder dauerhaft in der Konfigurationsdatei ~/.vimrc in Ihrem Home-Verzeichnis verankern.
Angenommen, Sie möchten die Taste [F2] so belegen, dass sie im Kommandomodus das Syntax-Highlighting der aktuellen Datei neu definiert – Vim soll in diesem Beispiel LaTeX-Syntaxelemente hervorheben. Zur Laufzeit definieren Sie das Mapping so: Drücken Sie [Esc], um in den Kommandomodus zu wechseln, und geben Sie dann Folgendes ein:
:map <F2> :set syntax=tex <CR>
Sie bestätigen alles mit [Eingabe] und können das Mapping nun testen. Drücken Sie [Esc], um in den Kommandomodus zu wechseln. Danach betätigen Sie die Taste [F2]. Am unteren Rand sollte Vim nun anzeigen:
:set syntax=tex
Da Vim es auch ermöglicht, ein Kommando in der Shell auszuführen, ohne den Editor zu beenden oder mit [Strg]+[Z] in den Hintergrund zu schieben, können Sie auch ein Mapping einrichten, das mit Hilfe von wc[1] ermittelt, wie viele Zeilen, Wörter und Zeichen das Dokument enthält. In einer laufenden Sitzung definieren Sie das Kürzel (nachdem Sie mit [Esc] in den Kommandomodus gewechselt haben) beispielsweise so:
:map <F3> :! wc % <CR>
Drücken Sie nun im Kommandomodus [F3], unterbricht Vim die laufende Sitzung und führt wc für die aktuelle Datei aus. Von links nach rechts sehen Sie, wie viele Zeilen, Wörter und Zeichen die Datei hat (Abbildung 1). Mit [Eingabe] geht’s zurück in den Editor.

Abbildung 1: Sie können aus dem Vim heraus Shell-Kommandos ausführen, ohne den Editor zu verlassen oder zu unterbrechen (hier “wc”).
Um die beiden Beispiel-Mappings aus diesem Tipp dauerhaft für den Vim einzurichten, bearbeiten Sie die Konfigurationsdatei ~/.vimrc und tragen dort die beiden folgenden Zeilen ein:
map <F2> :set syntax=tex <CR> map <F3> :! wc % <CR>
Wie Sie sehen, verwendet der Editor seine eigene Syntax, um die Tasten zu bezeichnen. Die Tabelle Tastennamen in Vim beschreibt, wie Sie einzelne Tasten in Vim ansprechen.
Tastennamen in Vim
| <F1>, <F2> usw. | Funktionstasten [F1],[F2] usw. |
| <CR> | Eingabetaste (“carriage return”) |
| <Space> | Leertaste |
| <Esc> | Taste [Esc] |
| <Tab> | Tabulator |
| <Del> | Taste [Entf] |
| <BS> | Rückschritttaste |
| <Up> | [Pfeil hoch] |
| <Down> | [Pfeil runter] |
| <Left> | [Pfeil links] |
| <Right> | [Pfeil rechts] |
| <PageUp> | [Bild hoch] |
| <PageDown> | [Bild runter] |
| <C-A> | Kombination [Strg]+[A] (C = “control”) |
| <C-F1> | Kombination [Strg]+[F1] |
| <S-F1> | Kombination [Umschalt]+[F1] (S = “shift”) |
| <C-PageUp> | Kombination [Strg]+[Bild hoch] |
| <S-Down> | Kombination [Umschalt]+[Pfeil runter] |
| <bar> | das Pipezeichen |, das Sie sonst mit \| escapen müssten |
Beim Definieren eigener Tastenbelegungen oder ganzer Abfolgen sollten Sie sich gut überlegen, welche Taste das Mapping auslöst. Gut geeignet sind beispielsweise die Funktionstasten [F2] bis [F12] – [F1] ist bereits vom Vim belegt und blendet die Onlinehilfe ein. Kombinationen aus [Umschalt] und Funktionstaste sind ebenfalls kein Problem, also z. B. [Umschalt]+[F2],[Umschalt]+[F3] und so weiter.
Tipp: Vim: Mappings anzeigen und löschen
Alle temporär oder dauerhaft definierten Tastenbelegungen zeigen Sie an, indem Sie im Editor [Esc] drücken und dann :map eingeben. Vim listet nun alle Mappings auf. Am unteren Rand steht der Hinweis: Press ENTER or type command to continue bzw. Betätigen Sie die EINGABETASTE oder geben Sie einen Befehl ein – sobald Sie [Eingabe] drücken, verschwindet die Liste der Tastenbelegungen wieder, und Sie können weiterarbeiten.
Mappings, die Sie in der Vim-Konfigurationsdatei ~/.vimrc fest verankert haben, können Sie löschen oder durch Voranstellen eines Anführungszeichens (") auskommentieren und damit temporär deaktivieren. Benötigen Sie die Einstellung später wieder, reicht es, das Kommentarzeichen " zu entfernen.
Zur Laufzeit eingerichtete Belegungen werden Sie los, indem Sie den Editor schließen und neu starten. Alternativ geben Sie im Kommandomodus :unmap, gefolgt von der Tastenkombination (in Vim-Syntax, also z. B. <F2> für [F2]). :unmap können Sie auch verwenden, um eine Belegung aus der Konfigurationsdatei nur für die aktuelle Vim-Sitzung abzuschalten.
Tipp: Midnight Commander in anderem Look
In der Voreinstellung startet der Dateimanager Midnight Commander [2] mit einer zweigeteilten Ansicht, einem blauen Hintergrund und einer grünen Menüzeile. Verzeichnisse erscheinen in weißer, fetter Schrift und Dateien in normaler weißer Schrift. Dateien mit besonderen Attributen färbt das Tool ebenfalls anders ein: So erscheinen ausführbare Dateien beispielsweise in Grün, markierte in Gelb usw. Gefällt Ihnen der Farbmix nicht, öffnen Sie mit einem Mausklick das Menü Optionen am oberen Rand und wählen Appearance (deutsch “Erscheinung”) – dieser Menüpunkt ist aber nicht in jeder mc-Version verfügbar: In unseren Tests fehlte sie bei OpenSuse 13.1, war unter OpenSuse 13.2 und Kubuntu 14.10 aber vorhanden.
Klicken Sie neben Skin auf den Eintrag Default, um das Menü auszuklappen. Dort warten zahlreiche weitere Looks, die Sie antesten können (Abbildung 2). Nach dem Bestätigen über OK merkt sich das Programm die Einstellung und sieht auch nach dem nächsten Neustart so aus.

Abbildung 2: Der Dateimanager Midnight Commander wechselt über Skins sein Aussehen und präsentiert sich in ganz unterschiedlichen Looks.
Tipp: Keine Farbe für den Midnight Commander
Sie mögen den bunten Hintergrund und die eingefärbten Datei- und Verzeichnisnamen des Midnight Commanders nicht? Kein Problem. Mit dem Aufrufparameter -b (Langform --nocolor) schalten Sie in den Schwarz-Weiß-Modus um. Lediglich die beiden Menüzeilen sind nun grau hinterlegt, der Rest erscheint in den Farben des Terminals. Abbildung 3 zeigt den Midnight Commander nach dem Start über -b in einem hellgelben Terminalfenster mit schwarzer Schrift.

Abbildung 3: Sie mögen keine Farben im Dateimanager? Dann starten Sie den Midnight Commander einfach über “mc -b”.
Tipp: Verzeichnisse auf der Shell kopieren
Zum Kopieren auf der Kommandozeile verwenden Sie für gewöhnlich den Befehl cp. Dahinter geben Sie die Quelle und das Ziel an. Um beispielsweise eine Datei namens test.txt ins Verzeichnis Dokumente/ zu bewegen, tippen Sie:
cp test.txt Dokumente
Der Versuch, auf gleiche Art und Weise ein Verzeichnis in ein anderes hineinzukopieren, scheitert allerdings:
cp Uni Dokumente cp: Verzeichnis »Uni« ausgelassen
Die Option -r (rekursiv) beim Aufruf schafft Abhilfe, denn sie erfasst Verzeichnisse mit allen enthaltenen Unterverzeichnissen und Dateien rekursiv. Setzen Sie zusätzlich den Parameter -v ein, um eine ausführliche Rückmeldung zu erhalten:
$ cp -rv Uni Dokumente 'Uni' -> 'Dokumente/Uni' 'Uni/Immatrikulation.pdf' -> 'Dokumente/Uni/Immatrikulation.pdf' 'Uni/almamater.jpg' -> 'Dokumente/Uni/almamater.jpg'
Tipp: Zip-Archive betrachten und entpacken
Linux-Anwender verpacken und komprimieren ihre Daten in der Regel in .tar.gz– oder tar.bz2-Archiven. Zum Einsatz kommen dabei die Programm tar und gzip oder bzip2[3]. Windows-Benutzer verschicken dagegen gerne Zip-Archive, die Sie genauso komfortabel auf der Shell auspacken können. Erhalten Sie eine .zip-Datei per Mail, schauen Sie am besten zuerst mit der Option -l nach, was sich im Archiv befindet:
$ unzip -l kde-bilder.zip
Archive: kde-bilder.zip
Length Date Time Name
--------- ---------- ----- ----
641743 2014-03-02 15:05 bild07.png
239998 2014-03-02 15:09 bild08.png
60550 2014-03-02 15:42 bild10.png
--------- -------
942291 3 files
Das Listing zeigt an, dass das Archiv drei PNG-Bilder enthält. Sie erfahren zudem, wie groß die einzelnen Dateien sind, wann sie zuletzt verändert wurden und wie viel Platz sie – einzeln und insgesamt – nach dem Auspacken belegen werden.
Um die Dateien im aktuellen Ordner zu entpacken, lassen Sie einfach die Option -l weg. Sollen die Bilder hingegen in einem anderen Verzeichnis landen, geben Sie dieses hinter der Option -d an. Um den Inhalt von kde-bilder.zip beispielsweise in das Verzeichnis Bilder/kde/ zu entpacken, geben Sie Folgendes ein:
$ unzip -d Bilder/kde/ kde-bilder.zip Archive: kde-bilder.zip inflating: Bilder/kde/bild07.png inflating: Bilder/kde/bild08.png inflating: Bilder/kde/bild10.png
Die Archivdatei bleibt beim Entpacken erhalten.
Eine weitere praktische Option ist -t: Damit testen Sie vor dem Auspacken, ob alle Daten im Archiv in Ordnung sind (Abbildung 4).

Abbildung 4: Das Tool “unzip” startet über “-t” einen Testlauf. In diesem Fall gibt es gute Nachrichten: Alle Dateien sind in Ordnung.
Tipp: Einen Titel fürs Xterm setzen
Gehören Sie zu den Nutzern, die lieber im Xterm als in KDEs Konsole oder im Gnome-Terminal arbeiten? Der schlanke Terminalemulator gehört zum X.Org-Projekt (also direkt zum X-Server, dem Basisprogramm für die Verwendung grafischer Oberflächen), braucht wenig Ressourcen und läuft daher auch auf alten Rechnern flott. In der Voreinstellung zeigt die Titelleiste des ersten Xterms xterm, im zweiten xterm <2>, im dritten xterm <3> usw. Ist Ihnen das zu langweilig, benennen Sie die Fenster einfach nach ihren Aufgaben, z. B. Mail mit Mutt oder Texteditor (Vim). Dazu geben Sie im laufenden Xterm am Prompt einen Befehl der folgenden Form ein:
echo -ne "\033]2;Mail mit Mutt\007"
Alternativ bestimmen Sie den Namen schon beim Start des Terminals. Dabei hilft die Aufrufoption -T (wie “Titel”), und das vollständige Kommando lautet:
xterm -T "Texteditor (Vim)"
Unter OpenSuse funktioniert der Trick nicht, denn diese Distribution konfiguriert die Shell so vor, dass mit dem Tool ppwd nach jeder Befehlseingabe die Informationen aus dem Prompt (Benutzer- und Rechernername sowie Arbeitsverzeichnis) als Titelzeile an das Terminalfenster geschickt werden. Das können Sie aber abstellen, indem Sie den Shell-Prompt verändern, der in der Shell-Variable PS1 gespeichert ist. Unter OpenSuse hat diese den Inhalt \[$(ppwd)\]\u@\h:\w>, wodurch die Ausgabe von ppwd mit jedem neuen Prompt angezeigt wird, was wiederum die Titelzeile anpasst. Um diese Funktion los zu werden, ändern Sie einfach PS1:
PS1='u@\h:\w> '
Diese Änderung könnten Sie auch dauerhaft erreichen, indem Sie den Befehl in die Startdatei .bashrc in Ihrem Home-Verzeichnis eintragen – dann funktioniert allerdings in keinem Fenster mehr die automatische Anzeige des Arbeitsverzeichnis.
Auf einen weiteren Stolperstein stoßen Sie, wenn Sie versuchen, denselben Trick auch für die KDE-Konsole (statt für das Xterm) anzuwenden – hier bleibt der Fenstertitel unverändert. In den KDE-Konsole-Einstellungen können Sie aber Änderungen des Fenstertitels explizit freigeben, indem Sie im Bereich Allgemein ein Häkchen vor Fenstertitel in der Titelleiste anzeigen setzen und die Änderungen mit OK bestätigen (Abbildung 5).

Abbildung 5: Unveränderliche Fenstertitel in der KDE-Konsole stellen Sie über eine Option des Terminalprogramms ab.
Übrigens: Wenn Sie unter OpenSuse das Tool ppwd von Hand aufrufen, gibt es – scheinbar – nichts aus. Das liegt aber daran, dass das Programm Steuercodes für das Terminalprogramm erzeugt, die in der Shell nicht sichtbar sind. Um sich davon zu überzeugen, leiten Sie die Ausgabe durch hexdump. Listing 1 zeigt die Ausgabe, wobei jedes Zeichen in Form einer Hexadezimalzahl erscheint. Ganz am Anfang und auch weiter hinten sehen Sie das Escape-Zeichen, das den ASCII-Wert 27 (in Hexadezimschreibweise: 1b) hat; es leitet Escape-Sequenzen für die Steuerung des Terminals ein.
Listing 1
Ausgabe von “ppwd”
$ ppwd | hexdump -C 00000000 1b 37 1b 5d 32 3b 65 73 73 65 72 40 68 70 71 75 |.7.]2;esser@hpqu| 00000010 61 64 69 37 3a 7e 07 1b 5d 31 3b 68 70 71 75 61 |adi7:~..]1;hpqua| 00000020 64 69 37 07 1b 38 |di7..8| 00000026
Tipp: Praktische Optionen für den Xterm-Start
Außer dem im letzten Tipp gezeigten Parameter -T können Sie dem Xterm beim Start weitere Wünsche in Form von Optionen mitgeben. So beeinflussen Sie beispielsweise die Vorder- (-fg) und Hintergrundfarbe (-bg). Auch die Farbe des Cursors können Sie über -cr setzen. Einen Scrollbalken erhalten Sie über -sb. Dieser ist in der Voreinstellung am linken Rand. Soll die Leiste rechts erscheinen, verwenden Sie hingegen -sb -rightbar. Die Schriftgröße verändern Sie über -fn. Dahinter geben Sie die gewünschte Größe an, z. B. 7x14, 10x20, 12x24 usw. Der komplette Aufruf lautet dann beispielsweise so:
xterm -T "Heikes buntes Xterm" -sb -rightbar -bg yellow -fg red -cr purple -fn 10x20
Abbildung 6 zeigt ein Xterm, das wir mit den Parametern aus dem letzten Listing gestartet haben.

Abbildung 6: Das Xterm beeinflussen Sie schon beim Start über verschiedene Aufrufparameter. Zugegeben – eine Augenweise ist das grelle Terminal allerdings nicht.
Tipp: Xterm: Die Pop-up-Menüs aufrufen
Einige der vorgestellten Optionen erreichen Sie auch über die Xterm-Menüs. Drücken von [Strg] und ein Klick mit der linken Maustaste ins Terminal öffnen die Main Options (Hauptfunktionen), [Strg] und die mittlere Maustaste die VT Options (Aussehen) und [Strg] und ein Rechtsklick die Abteilung VT Fonts (Schriftbild). In der ersten Kategorie finden Sie beispielsweise Menüeinträge, um die Toolbar zu verstecken, das Xterm neu zu zeichnen, die Terminalausgabe in einem Protokoll zu speichern oder auszudrucken usw. Auch das Verhalten der Tasten [Entf],[Rückschritt] und [Alt] können Sie in den Main Options ändern. Ganz unten finden Sie Funktionen, die verschiedene Signale an Prozesse schicken [4].
Bei den VT Options gibt es Funktionen, die den Scrollbalken ein- und ausschalten, das Terminal invertiert darstellen, den warnenden Piepston gegen eine visuelle Benachrichtung (Flackern) austauschen und mehr. Im Menü der rechten Maustaste erreichen Sie schließlich Möglichkeiten, die Schriftgröße zur Laufzeit zu verändern und auf die UTF-8-Kodierung umzuschalten (wenn diese nicht bereits der Standard ist) (Abbildung 7).

Strg gedrückt halten und mit einer der drei Maustasten ins Xterm klicken, öffnen sich Menüs (hier das Menü der rechten Maustaste).” width=”270″ height=”300″ />
Abbildung 7: Wenn SieStrg gedrückt halten und mit einer der drei Maustasten ins Xterm klicken, öffnen sich Menüs (hier das Menü der rechten Maustaste).Glossar
-
Escape-Sequenzen
-
Der Begriff der Escape-Sequenz ist historisch: Bei der Kommunikation mit Hardware (z. B. Druckern) führt das Escape-Zeichen mit ASCII-Wert 27 dazu, dass folgende Zeichen nicht als reguläre (etwa: zu druckende) Zeichen, sondern als ein Steuerungsbefehl für das Gerät interpretiert werden. Nach dem Ende der Escape-Sequenz geht es dann mit normalen Zeichen weiter.
Infos
[1] Artikel zu wc: Andrea Müller, “Shell-Tipps”, EasyLinux 06/2005, S. 68. ff, http://www.easylinux.de/2005/06/068-shell-tipps/
[2] Artikel zu Midnight Commander: Andreas Kneib, “Der programmierbare Dateimanager”, LinuxUser 07/2002, S. 58 ff., http://linux-community.de/2411
[3] Artikel über tar und bzip2: Heike Jurzik, “Komprimierkünstler”, EasyLinux 07/2004, S. 84 ff., http://www.easylinux.de/2004/07/084-guru-tar/
[4] Artikel zu Prozessen und Signalen: Hans-Georg Eßer, “Prozesse, hört die Signale!”, EasyLinux 04/2013, S. 74 ff., http://linux-community.de/30727
