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: Manpages formatiert ausdrucken
Ihr Linux-System steht mit Rat und Tat zur Seite, falls Sie Hilfe zur Funktion und den Optionen eines Kommandozeilentools suchen. Die so genannten Manpages betrachten Sie im Terminalfenster und auf der Konsole mit dem Kommando man. Um also beispielsweise die Hilfeseite zum Befehl ls (listet Verzeichnisinhalte auf) zu betrachten, tippen Sie:
man ls
Mit den Pfeiltasten und Bildlauftasten blättern Sie hoch und runter, mit [Umschalt]+[7] (also /) suchen Sie nach einem Begriff, und [Q] beendet das Programm.
Um eine Manpage auszudrucken, müssen Sie nicht groß in die Trickkiste greifen und nach Konvertierungsprogrammen suchen – man hat eine solche Funktion bereits eingebaut. Der Parameter -t erzeugt eine PostScript-Datei. In der Voreinstellung landet diese auf der Standardausgabe, scrollt also durch das Terminal. Sie können das Ganze daher mit dem Umleitungsoperator > in einer Datei ablegen. Um eine PostScript-Version der ls-Manpage zu erzeugen, geben Sie also Folgendes ein:
man -t ls > ls.ps
Das neu erzeugte PostScript-Dokument können Sie nun mit einem Betrachter wie Evince oder Okular am Bildschirm bewundern (Abbildung 1) oder über das Kommando lp (siehe Tipp ##) an den Drucker schicken.

Abbildung 1: Das Kommando “man” zeigt nicht nur die Hilfeseiten im Terminal an, sondern wandelt diese mit dem Parameter “-t” in hübsch formatierte PostScript-Dokumente um.
Tipp: Drucken auf der Shell mit “lp”
Das Programm lp druckt auf der Shell und nimmt mehrere Dateitypen entgegen, darunter PostScript-/PDF-Dokumente und verschiedene Bildformate. Als Option übergeben Sie beim Aufruf mindestens einen Dateinamen:
lp datei.ps
In der Voreinstellung schickt das Kommando die Daten an den Standarddrucker – haben Sie mehr als einen Drucker konfiguriert, lesen Sie im nächsten Tipp, wie Sie mittels lpstat die Statusinformation ausgeben und erfahren, wie das Standardziel heißt.
Um gleich mehrere Kopien einer Datei zu drucken, können Sie über die Option -n die Anzahl der Exemplare definieren, zum Beispiel lp -n 5 datei.ps. Auch die Papiergröße (zum Beispiel -o media=a4), die Ausrichtung (-o landscape für Querformat) oder einzelne Seiten eines längeren Dokuments (-P 2-4,16) können Sie über Parameter beim Start definieren.
lp liest auf Wunsch auch direkt von der Standardeingabe. Dazu geben Sie statt eines Dateinamens das Minuszeichen an. Um die PostScript-Manpage aus dem vorigen Tipp nicht in einer Datei abzulegen, sondern diese direkt an den Drucker zu schicken, geben Sie Folgendes ein:
man -t ls | lp -
Anstelle des Umleitungsoperators leiten Sie hier die Ausgabe des man-Befehls über eine Pipe (Tastenkombination [AltGr]+[<]) an das lp-Kommando weiter, das die Daten aus der Standardeingabe liest und direkt an den Standarddrucker schickt.
Tipp: Konfigurierte Drucker anzeigen: “lpstat”
Haben Sie mehrere Drucker für den Linux-Rechner konfiguriert, können Sie schnell auf der Shell nachschauen, welche das sind und wie der Standarddrucker heißt. Dazu verwenden Sie der Kommando lpstat – Root-Rechte oder sudo sind dazu nicht nötig:
$ lpstat -d -p System-Standardzielort: HP_LaserJet_P2055dn Drucker HP_Color_LaserJet_CP1515n ist inaktiv; aktiviert seit So 27 Nov 12:18:09 2011 Drucker HP_LaserJet_M1522nf_MFP ist inaktiv; aktiviert seit Di 27 Dez 17:24:17 2011 Drucker HP_LaserJet_P2055dn ist inaktiv; aktiviert seit Mo 13 Feb 13:21:09 2012
Sie sehen in der Beispielausgabe, dass der Standarddrucker der HP_LaserJet_P2055dn ist, das heißt, alle mit lp (siehe vorheriger Tipp) abgeschickten Dateien landen ohne weitere Parameter auf diesem Gerät. Die Option -p sorgt dafür, dass der Befehl alle bekannten Geräte darunter auflistet. Um einen anderen Drucker zu verwenden, setzen Sie den Namen hinter die Option -d:
lp -d HP_LaserJet_M1522nf_MFP datei.ps
Zusätzlich können Sie alle im vorigen Tipp gezeigten Parameter (und auch weitere, die Sie der Manpage entnehmen) anhängen.
Tipp: Standarddrucker auf der Shell definieren
Der letzte Tipp zeigt, wie Sie alle konfigurierten Drucker auf der Shell auflisten. Auch der Standarddrucker ist sichtbar. Um ein anderes Gerät aus dieser Liste als neuen Standard zu definieren, müssen Sie kein grafisches Einrichtungstool bemühen, sondern greifen auf der Shell einfach zum Kommando lpoptions. Hinter die Option -d schreiben Sie den Namen der Warteschlange, die Sie über den Befehl lpstat -d -p ausfindig gemacht haben:
$ lpstat -d System-Standardzielort: HP_LaserJet_P2055dn $ lpoptions -d HP_LaserJet_M1522nf_MFP auth-info-required=none copies=1 device-uri=ipp://192.168.2.6/... $ lpstat -d System-Standardzielort: HP_LaserJet_M1522nf_MFP
Wie Sie sehen, zeigt der erste Befehl den HP 2055dn als Standardziel, das zweite Kommando definiert dann den LaserJet M1522nf, und das dritte bestätigt, dass die Umstellung wirklich geklappt hat.
Tipp: Liste von Dateinamen erstellen und speichern
Datei- und Verzeichnisnamen listen Sie auf der Kommandozeile mit ls auf. Ohne zusätzliche Parameter und Optionen erhalten Sie eine mehrspaltige Ausgabe, in der alles alphabetisch sortiert erscheint:
$ ls Arbeitsfläche examples.desktop Öffentlich Bilder ls.ps Videos Dokumente manps.png Vorlagen Downloads Musik
Versteckte Dateien und Verzeichnisse, also solche, die mit einem Punkt anfangen, zeigt das Kommando so nicht mit an, um die Ausgabe übersichtlich zu halten. Interessieren Sie sich für diese Dateien, verwenden Sie den Parameter -a:
$ ls -a . .gnome2_private .. .gtk-bookmarks .aptitude .gvfs Arbeitsfläche .ICEauthority .bash_history .local .bash_logout ls.ps .bashrc manps.png ...
Wer die Liste der Datei- und Verzeichnisnamen ausdrucken oder in eine Datei schreiben möchte, kann die Ausgabe mit der Option -1 einspaltig machen:
$ ls -1 Arbeitsfläche Bilder Dokumente ...
Danach kommt der schon in Tipp ## erwähnte Umleitungsoperator > zum Einsatz. Der folgende Aufruf speichert die Liste in der Datei liste.txt:
ls -1 > liste.txt
(Bei dieser Umleitung können Sie die Option -1 auch weg lassen; ls erkennt, dass die Ausgabe nicht im Terminalfenster landen wird, und schaltet automatisch auf einspaltig um.) Alternativ schicken Sie alles über eine Pipe an das lp-Kommando, das wie in Tipp ## die Daten in Empfang nimmt und an den Standarddrucker schickt:
ls -1 | lp -
Tipp: Playlist auf der Shell erstellen und abspielen
Mit dem im vorigen Tipp gezeigten ls-Trick erzeugen Sie in Windeseile eine Playlist im M3U-Format und übergeben diese optional an einen Konsolenplayer oder laden sie in einem grafischen Abspielprogramm. M3U-Dateien sind einfache Textdateien, in denen zeilenweise die MP3-, FLAC- oder Ogg-Vorbis-Dateien gelistet sind. Die Namen der Songs dürfen dort entweder mit absolutem oder relativem Pfad oder als URL stehen. Eine einfache M3U-Datei mit allen MP3-Dateien aus dem aktuellen Verzeichnis erstellen Sie über folgendes Kommando:
ls *.mp3 > playlist.m3u
Alternativ nehmen Sie den Befehl find zur Hilfe, um beispielsweise alle MP3-Dateien aller Benutzer aufzuspüren und daraus eine Liste zu basteln. Das Kommando erwartet zuerst eine Ortsangabe, wo es suchen soll, also z. B. /home. Danach folgen die Suchkriterien hinter der Option -name. Der Einsatz von Wildcards ist dabei erlaubt – diese sollten aber in einfache Hochkommata (') eingeschlossen werden, damit die Shell sie nicht auswertet:
find /home -name '*.mp3'
Auf der Shell sehen Sie die Ausgabe des Befehls, der im Moment noch zusätzlich zu den Treffern diverse Fehlermeldungen für Unterverzeichnisse anderer Benutzer, die Sie nicht lesen dürfen, ausgibt. Um nur die Zeilen mit den Songs zu erhalten, leiten Sie die Fehlerausgabe (mit 2>) nach /dev/null – diese “Pseudodatei” hat keinen Inhalt, und alle Daten, die Sie hierhin schreiben, werden ignoriert:
find /home -name '*.mp3' 2> /dev/null > playlist.m3u
Die Playlist-Datei öffnen Sie anschließend mit Rhythmbox, Amarok & Co., und der ausgewählte Player spielt die Songs ab. Um eine so erstellte Liste mit MPlayer auf der Shell wiederzugeben, verwenden Sie dessen Option -playlist (Abbildung 2):
mplayer -playlist playlist.m3u
Übrigens spielt der MPlayer eine Datei auch ab, wenn sie die Endung .txt trägt oder gar keine Dateiendung hat, während einige grafische Player Wert auf die korrekte Dateinamenerweiterung legen.

Abbildung 2: Der MPlayer spielt Playlists über den Parameter “-playlist” ab. Die Dateiendung “.m3u” ist optional.
Tipp: Viele Verzeichnisse gleichzeitig erstellen
Mit dem Kommando mkdir (“make directory” = “erstelle Verzeichnis”) legen Sie neue Ordner an. So erzeugen Sie ein neues Verzeichnis namens Musiksammlung über den folgenden Aufruf:
mkdir Musiksammlung
Der Befehl versteht relative und absolute Pfadangaben. Um also z. B. Unterordner innerhalb von Musiksammlung zu erstellen, tippen Sie etwa:
mkdir Musiksammlung/Metal mkdir Musiksammlung/Metal/Metallica mkdir Musiksammlung/Metal/Therion
Das ist ganz schön viel Tipparbeit – vieles davon können Sie abkürzen. Der Parameter -p legt ganze Ordnerhierarchien an. Um also ein einem Rutsch die Ordner Musiksammlung, Musiksammlung/Metal und Musiksammlung/Metal/Metallica zu erzeugen, tippen Sie:
mkdir -p Musiksammlung/Metal/Metallica
Es gibt einen weiteren Trick, direkt mehrere Ordner unterhalb von Musiksammlung/Metal anzulegen. Dazu geben Sie nicht nur die Option -p an, sondern zusätzlich in geschweiften Klammern eine Gruppe von neuen Ordnernamen:
mkdir -p Musiksammlung/Metal/{Therion,Nightwish,Rhapsody}
Tipp: Vim: Effizienter arbeiten mit Sessions
In der letzten Folge der Shell-Tipps haben wir gezeigt, wie Sie mit dem flinken Texteditor Vim zwei Dateien in einem Fenster bearbeiten (Split View). Zur Auffrischung: Das Kommando :sp (bzw. :split) teilt das Fenster horizontal, :vsp (:vsplit) splittet vertikal. Mit [Strg]+[W],[W] wechseln Sie zwischen den beiden Viewports hin und her, und mit [Strg]+[W],[C] schließen Sie die aktive Ansicht. Nutzen Sie diese Funktion für größere Projekte, bietet der Vim eine praktische Funktion, um beim nächsten Start alle geöffneten Dateien wieder anzuzeigen und den Cursor an der richtigen Stelle zu platzieren – da, wo Sie zuletzt gespeichert haben.
Das Feature heißt Session, und der dazugehörige Befehl lautet :mksession. Geben Sie diesen im Kommandomodus des Editors ein und drücken Sie [Eingabe], passiert auf den ersten Blick nichts. Auf den zweiten Blick sehen Sie, dass im aktuellen Verzeichnis eine Datei namens Session.vim liegt, die alle Informationen zur aktuellen Session enthält. Beenden Sie den Vim und starten ihn dann mit vim -S neu, greift er auf dieses Session-File zu, um den letzten Zustand wiederherzustellen.
Existiert bereits eine Datei Session.vim, und Sie geben :mksession im Vim ein, beschwert sich der Editor: "Session.vim" existiert. Den Überschreibschutz hebeln Sie aus, indem Sie dem Befehl ein Ausrufezeichen anhängen und :mksession! eingeben. Alternativ speichern Sie die Session in einer eigenen Datei über :mksession meinprojekt.vim. Diese Sitzung öffnen Sie dann über vim -S meinprojekt.vim. Um eine bestehende Session im laufenden Editor zu laden, geben Sie hingegen :source meinprojekt.vim ein.
Tipp: Vim: Tabs und Zeilenenden sichtbar machen
Der Texteditor blendet auf Wunsch die Zeilenenden und auch die Tabulatoren ein. Die Anzeige der Steuerzeichen erhalten Sie, wenn Sie im Befehlsmodus :set list eintippen. Die Zeilenenden markiert der Vim als blaue Dollarzeichen, Tabulatoren erscheinen als blaue ^I (Abbildung 3). Möchten Sie das Feature dauerhaft nutzen, tragen Sie set list (ohne den Doppelpunkt) in die persönliche Konfigurationsdatei ein. Diese liegt in Ihrem Home-Verzeichnis und heißt .vimrc. Beachten Sie den Punkt am Anfang – die Datei ist versteckt. Um in einer laufenden Sitzung die Anzeige der Tabs und Zeilenenden zu deaktivieren, geben Sie :set nolist ein.

Abbildung 3: Über den Befehl “:set list” bringen Sie den Texteditor Vim dazu, die Zeilenenden und Tabulatoren deutlich hervorzuheben.
Tipp: Vim: Copy & Paste ohne Maus
Um eine Textpassage zu markieren, zu kopieren und an anderer Stelle einzufügen, müssen Sie nicht die Maus bemühen. Der Texteditor Vim bringt für solche Fälle den so genannten visuellen Modus mit (engl. “visual mode”). In diesem Zustand markieren Sie Bereiche zeichen-, zeilen- oder blockweise, um sie beispielsweise zu kopieren oder auszuschneiden. Drücken Sie [V], um in den visuellen Modus umzuschalten. In der linken unteren Ecke sehen Sie anschließend -- VISUELL --. Jetzt können Sie mit den Pfeiltasten durch den Text scrollen und Dinge markieren; so ausgewählte Bereiche erscheinen invers hervorgehoben.
Über [Umschalt]+[V] markieren Sie automatisch ganze Zeilen. Unten links steht dann -- VISUELL Zeile--. Blättern Sie nun hoch oder runter im Dokument, hebt der Vim immer ganze Zeilen hervor. Markierten Text löschen Sie über Druck auf [D]. Alternativ kopieren Sie das Hervorgehobene mit der Taste [Y]. Über [P] fügen Sie Text auf der Zwischenablage an der aktuellen Cursorposition ein. Um den visuellen Modus zu verlassen, betätigen Sie die Taste [Esc].
Glossar
-
PostScript
-
Seitenbeschreibungssprache, ein Vorläufer von PDF (Portable Document Format). Ein PostScript-Dokument beschreibt exakt Inhalt und Aufbau einer oder mehrerer Seiten. Viele Laserdrucker verstehen das PostScript-Format und können solche Dateien direkt ausgeben.
