Shell-Tipps

Know-how für die Kommandozeile

07.10.2012
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: Vim: Bessere Orientierung in den Textdateien

In welcher Zeile befindet sich der Cursor? In welcher Spalte ist er? Wie viel Prozent des Dokuments habe ich schon gelesen? Antworten auf diese Fragen gibt die Vim-Option ruler (Abkürzung ru). Um die Positionsangaben für die Statusleiste zu aktivieren, wechseln Sie mit [Esc] in den Befehlsmodus. Anschließend geben Sie :set ru ein, und am unteren, rechten Fensterrand erscheinen die Informationen.

Das erste Zahlenpaar gibt dabei die Zeilen- und Spaltennummern an. So bedeutet 48,5 z. B., dass der Cursor in Zeile 48 steht, und zwar auf dem fünften Zeichen von links. Am ganz rechten Rand der Statuszeile sehen Sie den Hinweis Top bzw. Anfang, eine Prozentangabe oder Bot bzw. Ende, was ebenfalls bei der Orientierung in langen Dateien hilft (Abbildung 1).

Abbildung 1: Zur besseren Orientierung blenden Sie im Texteditor Vim unten rechts eine Positionsangabe ein.

Um das Vim-Lineal wieder loszuwerden, stellen Sie der Option ein no voran: Mit :set noru blenden Sie die Positionsangaben aus. Wenn Sie dauerhaft mit dem Ruler arbeiten möchten, können Sie die Anweisung set ru auch in die Konfigurationsdatei des Editors eintragen. Bearbeiten Sie dazu die versteckte Datei .vimrc in Ihrem Home-Verzeichnis und schreiben Sie den Befehl (ohne den Doppelpunkt am Anfang) in eine eigene Zeile.

Tipp: Informationen zu DVDs auslesen

Was ist drauf auf der Film-DVD? Wie lang sind die Titel? Welche Codecs werden verwendet? Sind Untertitel dabei, und wenn ja: welche? Alle diese Fragen und noch einige mehr beantwortet auf der Kommandozeile das Programm lsdvd aus dem gleichnamigen Paket. Ubuntu-Anwender finden es im Universe-Repository, OpenSuse-Benutzer in der PackMan-Quelle. Nach der Installation geben Sie einfach den Befehl lsdvd ohne weitere Optionen ein, um allgemeine Informationen zur DVD im ersten Laufwerk für alle Tracks anzuzeigen. Das Listing Beispielausgabe für "lsdvd" zeigt eine Beispielausgabe für eine DVD aus der Stargate-Serie.

Beispielausgabe für "lsdvd"

huhn@pangolin:~$ lsdvd
libdvdread: Using libdvdcss version 1.2.12 for DVD access
Disc Title: STARGATE
Title: 01, Length: 00:42:26.280 Chapters: 08, Cells: 08, Audio streams: 08, Subpictures: 32
Title: 02, Length: 00:42:26.050 Chapters: 08, Cells: 08, Audio streams: 02, Subpictures: 03
Title: 03, Length: 00:42:26.010 Chapters: 08, Cells: 08, Audio streams: 02, Subpictures: 03
Title: 04, Length: 00:42:26.010 Chapters: 08, Cells: 08, Audio streams: 02, Subpictures: 03
Longest track: 01

Das Tool kennt zahlreiche Optionen, mit denen Sie detailliertere Angaben darstellen. So zeigt lsdvd -a beispielsweise Hinweise zum Audiocodec, lsdvd -c verrät mehr zu den einzelnen Kapiteln, lsdvd -s zu den Untertiteln und Sprachen und lsdvd -v zum Videocodec. Der Schalter -x kombiniert alle möglichen Optionen und präsentiert alle Detailinformationen.

Tipp: "lsdvd": Angaben für einzelne Tracks

Ist die im vorigen Tipp gezeigte Darstellung für die gesamte DVD im Laufwerk zu umfangreich und wollen Sie nur Informationen zu einem einzigen Titel sehen, schränken Sie das Ganze ein. Dazu geben Sie zusätzlich hinter -t die Tracknummer an:

huhn@pangolin:~$ lsdvd -t 2 -x
Disc Title: STARGATE
Title: 02, Length: 00:42:26.050 Chapters: 08, Cells: 08, Audio streams: 02, Subpictures: 03 ...

Wie Sie sehen, konzentriert sich das Tool nun ausschließlich auf den zweiten Titel und lässt die anderen außen vor.

Tipp: Verschiedene Ausgabeformate für "lsdvd"

In der Voreinstellung formatiert lsdvd seinen Output so, dass Sie ihn auf der Kommandozeile gut lesen können. Die Standardeinstellung des Tools ist somit -Oh ("human readable", also "für Menschen gut lesbar"). Möchten Sie das Programm in einem eigenen Skript nutzen, können Sie hinter -O (großes "O", nicht die Ziffer Null!) verschiedene andere Buchstaben verwenden, um die Ausgabe an Ihre Bedürfnisse anzupassen. So formatiert der Schalter -Op beispielsweise in der Perl-Syntax, -Oy als Python-Code, -Or im Ruby-Stil und -Ox in XML (Abbildung 2).

Abbildung 2: "lsdvd" zeigt an, was auf der DVD ist. Mit der Option "-Ox" stellen Sie die Informationen im XML-Format dar.

Tipp: Nachricht an andere Benutzer schicken

Arbeiten Sie auf einem Rechner, an dem mehrere Benutzer (etwa per SSH) angemeldet sind, verwenden Sie das Kommando wall, um schnell und unkompliziert eine Nachricht auf deren Terminals oder Konsolen zu senden. Um beispielsweise die anderen Anwender darüber zu informieren, dass Sie am Nachmittag Geburtstagskuchen spendieren, geben Sie wall ein und drücken [Eingabe]. Danach tippen Sie Ihre Nachricht, und wenn Sie fertig sind, schicken Sie das Ganze mit der Tastenkombination [Strg]+[D] ab:

$ wallHey, ich habe Geburstag und Kuchen mitgebracht!Party in der Firmenkueche um 15 Uhr. :)[Strg-D]

Um alles für jeden gut lesbar zu machen, verzichten Sie am besten auf Umlaute und andere Sonderzeichen. Bei den anderen Benutzern erscheint dann die Meldung sofort auf allen Terminals:

Rundsendenachricht von huhn@pang
     (/dev/pts/2) at 10:19 ...
Hey, ich habe Geburstag und Kuchen mitgebracht!
Party in der Firmenkueche um 15 Uhr. :)

Die anderen sehen nicht nur die Uhrzeit (10:19 Uhr), sondern auch den Namen des Terminals (/dev/pts/2), von dem aus der Benutzer huhn die Botschaft losgeschickt hat.

Tipp: Dateien mit "wall" einlesen

Alternativ können Sie mit wall auch vorbereitete Texte versenden. Dazu lesen Sie mit dem Umleitungsoperator < eine fertige Datei ein [1]:

wall < kuchen.txt

In diesem Fall ist es nicht erforderlich, die Eingabe mit [Strg]+[D] abzuschließen. wall verschickt den Text und gibt das Terminal bzw. die Konsole direkt im Anschluss wieder frei.

Tipp: Anzeige von "wall"-Nachrichten unterbinden

Damit ein Benutzer wall-Nachrichten von anderen sehen kann, muss das Terminal dies erlauben. Unter OpenSuse und Ubuntu ist das die Voreinstellung. Sie überprüfen die Konfiguration durch Eingabe von mesg:

$ mesg
is y

Wer ungestört auf der Shell arbeiten möchte, der kann die Ausgabe mit dem Kommando mesg n unterbinden. Im Hintergrund passiert dabei Folgendes: Für das aktuelle Terminal (genauer gesagt für die zugehörige Gerätedatei) entzieht der Befehl die Schreibrechte für Gruppen [2]. Überprüfen können Sie das, indem Sie zunächst herausfinden, wie die Gerätedatei des aktuellen Terminals heißt:

$ who am I
huhn  pts/2  2012-09-11 08:59 (:0)

Schauen Sie sich dann die Berechtigungen der dazugehörigen Gerätedatei /dev/pts/2 an:

$ ls -l /dev/pts/2
crw--w---- 1 huhn tty 136, 2 Sep 11 11:21 /dev/pts/2

Nach dem Befehl mesg n sind die Schreibrechte nicht mehr gesetzt:

$ mesg n
$ ls -l /dev/pts/2
crw------- 1 huhn tty 136, 2 Sep 11 11:24 /dev/pts/2

Mit mesg y lassen Sie entsprechend die Benachrichtigungen wieder zu. Beachten Sie, dass der mesg-Befehl immer nur das aktuelle Terminal beeinflusst. Der Administratoraccount ist von diesen Einstellungen übrigens nicht betroffen: root darf auch an "stummgeschaltete" Terminals schreiben.

Tipp: Welche Benutzer empfangen "wall"-Nachrichten?

Linux als echtes Mehrbenutzersystem erlaubt die gleichzeitige Anmeldung mehrerer Anwender. Um in Erfahrung zu bringen, wer gerade – remote oder lokal – eingeloggt ist, können Sie das Kommando who verwenden:

$ who
max   tty1    2012-09-11 10:07
huhn  pts/1   2012-09-11 08:42 (192.168.2.3)
mini  pts/4   2012-09-11 11:39 (localhost)

In der Voreinstellung zeigt das Programm in der ersten Spalte den Benutzernamen an, dann den Namen des Terminals, Uhrzeit und Datum der Anmeldung sowie woher der Login erfolgte. Wenn Sie wissen möchten, ob die angemeldeten Benutzer wall-Nachrichten zulassen, um ihnen wie im vorigen Tipp gezeigt eine Botschaft zukommen zu lassen, verwenden Sie den Parameter -T:

$ who -T
max   - tty1    2012-09-11 10:07
huhn  - pts/1   2012-09-11 08:42 ...
mini  + pts/4   2012-09-11 11:39 ...

Die Ausgabe zeigt, max und huhn möchten ihre Ruhe haben, wohingegen mini Nachrichten empfängt.

Tipp: Den "echten" Pfad herausfinden

Am Anfang steht das Wurzelverzeichnis / – von dort aus leiten sich weitere Verzeichnisse mit Unterordnern und Dateien ab. Wenn Sie in einem Dateimanager wie Dolphin oder Nautilus auf die Baum- oder Listenansicht umschalten, erkennen Sie gut die Verwandtschaftsverhältnisse (Abbildung 3). Dateien und Verzeichnisse finden Sie im Baum über einen Pfad – den absoluten oder den relativen.

Abbildung 3: Der Gnome-Dateimanager Nautilus zeigt in der Listenansicht die Baumstruktur von Verzeichnissen und Dateien an.

Der absolute Pfad nennt ausgehend vom Wurzelverzeichnis alle Unterorder. Heißt Ihr Benutzeraccount beispielsweise petronella, und liegt in Ihrem Home-Verzeichnis ein Ordner Musik, der den Ordner Jethro_Tull und darin das Verzeichnis Crest_of_a_Knave mit insgesamt neun MP3-Dateien enthält, heißt der absolute Pfad zum ersten Song etwa /home/petronella/Musik/Jethro_Tull/Crest_of_a_Knave/01-Steel_Monkey.mp3.

Um einen relativen Pfad anzugeben, beginnen Sie im aktuellen Verzeichnis, auch mit dem Punkt . abgekürzt. Mit dem Kommando pwd finden Sie zunächst heraus, wo im Dateibaum Sie sich befinden:

$ pwd
/home/petronella/Musik/Jethro_Tull

Um die Datei 01-Steel_Monkey relativ anzusprechen, gehen Sie zwei Schritte nach unten:

$ mplayer Crest_of_a_Knave/01-Steel_Monkey
...
Playing Crest_of_a_Knave/01-Steel_Monkey.mp3
Audio only file format detected.
...

Befinden Sie sich hingegen im Verzeichnis Musik/Jethro_Tull und wollen eine Datei im Home-Verzeichnis erreichen, gehen Sie zwei Schritte nach oben, wenn Sie den relativen Pfad meinen. Das übergeordnete Verzeichnis kürzen Sie durch zwei Punkte ab:

mplayer ../../test.mp3

Benötigen Sie aus irgendeinem Grund den absoluten Pfad von Dateien, etwa für ein selbst geschriebenes Skript, können Sie das Tool realpath zu Hilfe nehmen. Bei OpenSuse ist es seit Version 12.2 im Paket coreutils enthalten, Ubuntu-Anwender rüsten es gegebenenfalls durch Installation des Pakets realpath nach. Der Einsatz ist einfach; geben Sie hinter dem Befehl realpath einfach eine Pfadbezeichnung an, die Sie in den "echten" Pfad umwandeln möchten:

$ realpath ../../test.mp3
/home/petronella/test.mp3
$ realpath ~max/Bilder/*
/home/max/Bilder/1.png
/home/max/Bilder/2.png
/home/max/Bilder/3.png

Tipp: Mailadresse zu GnuPG-Schlüssel hinzufügen

Der Schwerpunkt dieser Ausgabe ist "Verschlüsselte Kommunikation", und die Artikel in der Titelstrecke erklären neben der grundsätzlichen Funktionsweise von GnuPG auch die Verwendung in grafischen Tools wie Enigmail und KGpg. Auf der Shell steht Ihnen das Tool gpg mit zahlreichen Optionen zur Verfügung, um auf den Schlüsselbund zuzugreifen, ein neues Schlüsselpaar zu erstellen und so weiter. Zusätzlich bietet das Programm einen Schlüsseleditor, mit dem Sie Fingerabdrücke anzeigen, Schlüssel und Benutzer-IDs auflisten, Signaturen prüfen, einen Schlüssel auf die Smartcard schieben, das Verfallsdatum ändern und vieles mehr.

Die folgende Schritt-für-Schritt-Anleitung zeigt, wie Sie zu einem vorhandenen Schlüssel eine weitere Mailadresse beziehungsweise zusätzliche Identitäten hinzufügen. Danach gilt der Schlüssel für alle diese Mailadressen:

  1. Starten Sie den Editor über gpg --edit-key und geben Sie dahinter die Schlüssel-ID oder den Namen an. Dass Sie danach im Schlüsseleditor sind, erkennen Sie am veränderten Prompt Befehl>.
  2. Geben Sie nun das Kommando ein, um eine neue Identität zu ergänzen. Tippen Sie dazu adduid, gefolgt von [Eingabe], und Sie sehen die Aufforderung:

    Ihr Name ("Vorname Nachname"):
  3. Als Nächstes fragt das Tool nach der Mailadresse. Auch diese bestätigen Sie nach dem Hinzufügen über die Eingabetaste. Zu guter Letzt dürfen Sie noch einen Kommentar beifügen, beispielsweise dienstl. Adresse o. Ä.
  4. Nachdem Sie noch einmal [Eingabe] gedrückt haben, zeigt der Schlüsseleditor eine Zusammenfassung:

    Ändern: (N)ame, (K)ommentar, (E)-Mail oder (F)ertig/(B)eenden?

    Über [N] modifizieren Sie gegebenenfalls den Namen, über [K] den Kommentar und über [E] die E-Mail-Adresse. Mit [B] beenden Sie den Vorgang, ohne zu speichern. Drücken Sie hingegen [F], fordert Sie das Programm auf, die Passphrase einzugeben, um den geheimen Schlüssel zu entsperren. Danach zeigt das Tool eine Zusammenfassung der Daten an, und Sie können über die Befehle save und quit die Änderungen speichern und das Programm verlassen. (hge)

Infos

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

[2] Guru-Training zu Zugriffsrechten: Heike Jurzik, "Zutritt verboten!", EasyLinux 12/2005, S. 78 ff., http://www.easylinux.de/2005/12/078-chmod/

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 3 Heftseiten

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

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

Kommentare