Shell-Tipps

Know-how für die Kommandozeile

09.10.2013
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: Leerzeilen ausschneiden mit "cat"

Mit dem Befehl cat (engl. concatenate, aneinanderhängen) geben Sie unter anderem Textdateien auf der Konsole aus. So schickt der Befehl cat datei.txt direkt an die Standardausgabe (Abbildung 1, oben). Wie Sie sehen, hat der Text einige überflüssige Leerzeilen. Zusammen mit dem Aufrufparameter -s eliminieren Sie diese (Abbildung 1, unten) und sorgen dafür, dass eine beliebige Anzahl leerer Zeilen zu einer einzigen zusammenschrumpft.

Abbildung 1: Über den Befehl "cat -s" verwandeln Sie viele leere Zeilen einer Datei in eine einzige.

Tipp: Flotte Sprüche auf der Shell: "fortune"

Hier kommt ein echter Klassiker, der schon fast so alt ist wie Unix selbst. Das kleine Tool fortune ist ein virtueller Glückskeks (englisch "fortune cookie") und muntert Shell-Fans mit Zitaten, Anekdoten, Quizfragen usw. auf. Das Programm ist bei allen von EasyLinux unterstützten Distributionen im Paketarchiv. Unter Ubuntu installieren Sie die Sprüchesammlung über das Paket fortunes, unter OpenSuse heißt es lediglich fortune. Während OpenSuse als zusätzliche Sprüche lediglich fortune-mod-bofh-excuses mit Entschuldigungen für den BOFH (Bastard Operator from Hell [1], Abbildung 2) ausliefert, finden Sie bei Ubuntu zahlreiche weitere Pakete, darunter fortunes-de mit deutschen Redewendungen, fortunes-debian-hints (Debian-Tipps) und fortunes-spam (Zitate aus Spam-Mails).

Abbildung 2: Die Texte über den "Bastard Operator from Hell" gibt es auch in Buchform – einzelne Zitate finden Sie in den "Fortunes".

Sie rufen den Sprücheklopfer mit dem Kommando fortune auf den Plan. Das Programm schreibt seine Ausgabe direkt ins Terminal hinein (Abbildung 3). Es nimmt dabei nach dem Zufallsprinzip etwas aus der Sammlung unterhalb von /usr/share/games/fortunes. Welche Unterkategorien es dort gibt, erfahren Sie mit dem Parameter -f:

$ fortune -f
100,00% /usr/share/games/fortunes
     9,71% riddles
    32,70% fortunes
     3,34% debian-hints
    34,37% bofh-excuses
    19,88% literature
Abbildung 3: Der Befehl "fortune" schreibt einen flotten Spruch ins Terminal und sucht dabei etwas aus den Paketen in "/usr/share/games/fortunes" aus.

Um gezielt etwas aus einer bestimmten Abteilung zu wählen, schreiben Sie deren Namen hinter das Kommando:

$ fortune literature
When in doubt, tell the truth.
                -- Mark Twain

Es gibt kurze und lange Glückskekse in der Sammlung, die Sie gezielt über fortune -s bzw. fortune -l ausgeben. Alles bis zu 160 Zeichen empfindet das Programm in der Voreinstellung als kurz. Möchten Sie die Länge neu definieren, setzen Sie die Option -n ein und geben dahinter die Zeichenanzahl an:

fortune -n 200 -s

Vorsicht bei der Wahl der Zeichenzahl: Wählen Sie einen zu hohen oder zu niedrigen Wert, dann produziert fortune laut Manpage nur noch eine "never-ending trash loop" ("eine endlose Müllschleife").

Tipp: Ubuntu/Debian: Deutsche und englische Sprüche

Haben Sie unter Ubuntu oder Debian zusätzlich das Paket fortunes-de für die deutschen Kekse installiert, erhalten Sie bei der Auflistung mit dem Parameter -f nur noch Informtionen zur deutschen Sammlung:

$ fortune -f
100,00% de
     0,21% anekdoten
     0,12% vornamen
     0,20% asciiart
...

Die englischen Sprüche und Zitate sowie alle weiteren aus den Paketen fortunes-bofh-excuses, fortunes-debian-hints usw. scheint das Tool komplett zu ignorieren. Eine Lösung ist der Aufruf mit dem vollen Pfad zur Sammlung (Listing 1). Alternativ nutzen Sie das von den Entwicklern mitgelieferte Skript, das zwischen den verschiedenen Datenbanken hin- und herwechselt. Die folgende Schritt-für-Schritt-Anleitung zeigt, wie's geht:

Listing 1

"fortune" auf Englisch und Deutsch

$ fortune -f /usr/share/games/fortunes /usr/share/games/fortunes/de
 7,45% /usr/share/games/fortunes
     0,72% riddles
     2,44% fortunes
     0,25% debian-hints
     2,56% bofh-excuses
     1,48% literature
92,55% /usr/share/games/fortunes/de
     0,20% anekdoten
     0,11% vornamen
...
  1. Öffnen Sie ein Terminalfenster und werden Sie über Eingabe von sudo -s zum Administrator. Wechseln Sie mit cd ins Verzeichnis /usr/games. Dort liegt die ausführbare Datei fortune, welche die Kekse ins Terminal schreibt.
  2. Kopieren Sie das Skript fortunes-enge aus dem Verzeichnis /usr/share/doc/fortunes-de/examples ebenfalls nach /usr/games und machen Sie es ausführbar:

    cp /usr/share/doc/fortunes-de/examples/fortunes-enge .
    chmod +x fortunes-enge
  3. Starten Sie einen Testlauf:

    $ ./fortunes-enge -c
    (/usr/share/games/fortunes/de/zitate)
    %
    Die Liebe zur Ehrlichkeit ist die Tugend des Zuschauers,
    nicht die der handelnden Personen.
                    -- George Bernard Shaw
    $ ./fortunes-enge -c
    (/usr/share/games/fortunes/fortunes)
    %
    You will gain money by a speculation or lottery.

    Wie der Parameter -c verrät, nimmt das Tool einmal etwas aus der deutschen Zitatsammlung und beim zweiten Mal etwas aus der englischen Hauptdatei.

  4. Hat das alles geklappt, können Sie das Programm fortan einfach über fortunes-enge statt über fortune starten.

Da sich das Verzeichnis /usr/games in der Voreinstellung im Pfad der Benutzer befindet, können diese nun einfach den Befehl fortunes-enge zusammen mit allen von fortune bekannten Aufrufparametern eingeben, und der Sprücheklopfer wechselt zwischen deutschen und allen anderen Wörterbüchern ab. Auf Debian-Systemen ist /usr/games nicht im Pfad des Administrators:

# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Um das Verzeichnis aufzunehmen, bearbeiten Sie als Benutzer root die eigene Bash-Konfiguration (Datei /root/.bashrc) und tragen dort die folgende Zeile ein:

export PATH=$PATH:/usr/games

Danach melden Sie sich ab und wieder an. Alternativ lesen Sie die Konfiguration über source /root/.bashrc neu ein.

Tipp: "fortune" beim Einloggen

Gefallen Ihnen die Terminalsprüche so gut, dass Sie automatisch beim Start eines Terminals ein flottes Zitat sehen möchten, dann bearbeiten Sie einfach die Bash-Konfigurationsdatei ~/.bashrc mit einem Texteditor Ihrer Wahl. In der Regel reicht es aus, relativ an den Anfang der Datei

/usr/games/fortune

zu schreiben. Haben Sie, wie im vorigen Tipp gezeigt, das Skript fortunes-enge aktiviert, dann lautet die Zeile:

/usr/games/fortunes-enge

Öffnen Sie das nächste Mal ein Terminalfenster oder melden sich per SSH auf dem Rechner an, begrüßt dieser Sie (Abbildung 4).

Abbildung 4: Über einen Eintrag in der Datei "~/.bashrc" rufen Sie "fortune" bei jedem Login auf der Konsole auf.

Tipp: Farbe für die Logdateien: "ccze"

Werfen Sie auf Ihrem Linux-Rechner ruhig öfter mal einen Blick in die Logdateien im Verzeichnis /var/log. Viele Programme, sämtliche Dienste und auch der Kernel schreiben solche Protokolle, die Sie (meist nur) mit Root-Rechten betrachten können. So finden Sie eventuelle Fehler in Konfigurationen, Ausfälle oder Probleme von Daemons und verfolgen, was im Hintergrund passiert. Einige Anwendungen wie etwa apache, samba oder cups erstellen ein eigenes Unterverzeichnis in /var/log, andere (z. B. aptitude, der Kernel und X.Org) legen ihre Dateien direkt dort ab.

Die Linux-Logs sind reine Textdateien, das heißt, Sie können sie mit jedem Texteditor, mit einem Pager wie less oder more oder auch mit tail -f betrachten. Letzteres aktualisiert die Anzeige sogar selbständig [2]. Die KDE- und Gnome-Desktops bringen jeweils ein grafisches Programm mit, das die Protokolle mehr oder weniger hübsch aufbereitet, Meldungen einfärbt und die Anzeige sortiert. Das KDE-Werkzeug heißt ksystemlog, unter Gnome hilft gnome-system-log; vor beide Befehle stellen Sie jeweils sudo, um Administratorrechte zu erlangen.

Farbe gibt's jedoch auch leichter auf der Shell. Installieren Sie dazu das Paket ccze, das Sie bei Ubuntu und OpenSuse in den Repositories finden. Anschließend schauen Sie sich an, welche Logfiles das Tool unterstützt (Listing 2). Aber auch, wenn ein Protokoll dort nicht aufgeführt ist, färbt das Programm Schlüsselwörter ein. Die Datei /etc/cczerc gibt Aufschluss über die Standardfarben. Kopieren Sie die systemweite Konfiguration in Ihr Home-Verzeichnis und legen Sie diese dort unter dem Namen ~/.cczerc ab, wenn Sie eigene Anpassungen vornehmen möchten. Die Voreinstellung eignet sich besonders für Terminals mit weißer oder heller Schrift auf schwarzem Hintergrund (Abbildung 5).

Abbildung 5: Das Tool "ccze" färbt Protokolle ein. Im Bild sehen Sie die Datei "/var/log/auth.log", die alle An- und Abmeldungen notiert.

ccze können Sie beim Aufruf den Namen einer Logdatei als Argument übergeben; dazu lesen Sie diese mit dem Umleitungsoperator < ein [3]:

ccze < /var/log/auth.log

Eleganter ist das Ganze, wenn Sie das Werkzeug mit tail kombinieren und so eine übersichtlich eingefärbte Logdatei ständig beobachten:

tail -f /var/log/auth.log | ccze

In diesem Fall leiten Sie die Ausgabe des tail-Befehls über die Pipe (Tastenkombination [AltGr]+[<]) direkt an ccze weiter.

Listing 2

Anzeige der "ccze"-Plug-ins

$ ccze -l
Available plugins:
Name      | Type    | Description
------------------------------------------------------------
apm       | Partial | Coloriser for APM sub-logs.
distcc    | Full    | Coloriser for distcc(1) logs.
dpkg      | Full    | Coloriser for dpkg logs.
exim      | Full    | Coloriser for exim logs.
fetchmail | Partial | Coloriser for fetchmail(1) sub-logs.
ftpstats  | Full    | Coloriser for ftpstats (pure-ftpd) logs.
httpd     | Full    | Coloriser for generic HTTPD access and error logs.
icecast   | Full    | Coloriser for Icecast(8) logs.
oops      | Full    | Coloriser for oops proxy logs.
php       | Full    | Coloriser for PHP logs.
postfix   | Partial | Coloriser for postfix(1) sub-logs.
procmail  | Full    | Coloriser for procmail(1) logs.
...

Tipp: HTML-Bericht mit "ccze" erstellen

Das Programm färbt nicht nur einfach Logdateien ein, sondern erzeugt über ein integriertes CSS-Stylesheet auch Berichte im HTML-Format. Sie verwenden ccze wie im vorigen Tipp beschrieben und geben zusätzlich den Parameter -h an:

ccze -h < /var/log/syslog > syslog.html

Damit die HTML-Datei nicht einfach im Terminal landet, leiten Sie diese mit dem Operator > in eine Datei um, die Sie dann im Browser betrachten können (Abbildung 6).

Abbildung 6: Mit der "ccze"-Option "-h" konvertieren Sie Logdateien in bunte HTML-Dateien. Die farbliche Gestaltung regelt ein CSS-Stylesheet.

Tipp: Vim: Aus Klein mach Groß (und umgekehrt)

Wer blind tippt und aus Versehen die Feststelltaste erwischt, findet beim nächsten Blick auf den Monitor einige Zeilen oder ganze Absätze mit vertauschten Groß- und Kleinbuchstaben im Dokument. Löschen und neu schreiben? Das muss nicht sein, denn der Texteditor Vim kehrt im Kommandomodus mit der Tilde die Groß- und Kleinschreibung der Buchstaben um. Die Tilde ~ erreichen Sie auf gewöhnlichen deutschen Tastaturen in der Regel über [AltGr]+[+]; eventuell müssen Sie zusätzlich die Leertaste drücken, wenn in der X-Server-Konfiguration die Option nodeadkeys auskommentiert ist.

Um ein einzelnes Zeichen umzukehren, wechseln Sie mit [Esc] in den Kommandomodus, navigieren mit dem Cursor über den Buchstaben und drücken [AltGr]+[+] (gegebenenfalls mit einem Leerzeichen). Wollen Sie einen ganzen Absatz so bearbeiten, nehmen Sie den "Visual Mode" zu Hilfe: Dazu gehen Sie an den Anfang des Blocks, wechseln mit [Esc] in den Kommandomodus und drücken dann [Strg]+[V]. In der Statuszeile am unteren Rand erscheint nun -- VISUELL BLOCK --. Bewegen Sie sich ans Ende des Absatzes, zeigt Vim ihn komplett hervorgehoben an. Geben Sie nun die Tilde ein, erscheinen alle großen Buchstaben klein und umgekehrt.

Glossar

CSS

Cascading Style Sheets sind Gestaltungsvorlagen für HTML- oder XML-Dokumente. Die Markup-Sprache (also HTML oder XML) beschreibt nur die inhaltliche Untergliederung eines Dokuments und die Bedeutung der Bestandteile. Alle Angaben zur Gestaltung (Farben, Layout, Schrifttyp und -größe usw.) legt dann das Stylesheet fest. CSS-Definitionen dürfen innerhalb der HTML- oder XML-Dateien stehen oder als externe Dateien referenziert werden.

nodeadkeys

Mit einem Eintrag der Form XKBVARIANT="nodeadkeys" in der X-Server-Konfiguration sorgen Sie dafür, dass es keine "toten" Tasten gibt und ein Druck auf ['] oder [^] direkt das jeweilige Zeichen erzeugt. Schreiben Sie häufig Texte mit Akzenten, kommentieren Sie den XKBVARIANT-Eintrag aus oder lassen ihn ganz weg. Dann können Sie mit ['],[E] das Zeichen "é" erzeugen; allerdings müssen Sie für ein "'"-Zeichen erst ['] und dann die Leertaste drücken.

Infos

[1] Bastard Operator from Hell: http://de.wikipedia.org/wiki/Bofh

[2] Guru-Training zu tail, grep & Co.: Heike Jurzik, "Schriftführer des Systems", EasyLinux 05/2006, S. 90 ff., http://www.easylinux.de/2006/05/090-guru/

[3] Guru-Training zu Umleitungen: Heike Jurzik, "Genial gelenkig", EasyLinux 09/2005, S. 84 ff., http://www.easylinux.de/2005/09/084-umleitungen/

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 4 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

Kommentare