Know-how für die Kommandozeile

Aus EasyLinux 04/2010

Know-how für die Kommandozeile

© sxc.hu

Shell-Tipps

Erfahrene Linux-Nutzer schwören auf flexible Kommandozeilentools, mit denen sie manche Aufgabe schneller als in grafischen Programmen bewältigen. Wir stellen die wichtigsten Anwendungen vor, um auch Einsteiger zu einem Ausflug in die Shell zu ermutigen.

Tipp: Was steckt drin im Rechner?

Viele Fragen oder Probleme auf Linux-Mailinglisten betreffen die eingebaute Hardware des Rechners. Auch auf den EasyLinux-Mailinglisten [1] suchen viele Benutzer Rat, wenn es um Scanner, Drucker oder eingebaute WLAN-Karten geht. Häufig fragen die erfahrenen Nutzer direkt zurück: “Welcher WLAN-Chipset, welche Sound-/Grafikkarte, was für eine CPU ist das genau?”

Bevor Sie lange nach einem Handbuch des Computers suchen oder gar zum Schraubenzieher greifen, um hineinzuschauen, machen Sie lieber einen Ausflug auf die Shell. Das Programm hwinfo verrät Ihnen jede Menge über das Innenleben des Rechners und angeschlossene Geräte. Das gleichnamige Paket rüsten Sie im Zweifelsfall über den Paketmanager nach; sowohl OpenSuse als auch Ubuntu bringen es fertig gepackt mit.

Die ausführbare hwinfo-Datei befindet sich im Verzeichnis /usr/sbin/. Ist dieses nicht in Ihrem Pfad enthalten, rufen Sie das Kommando über den vollen Pfad (/usr/sbin/hwinfo) auf; andernfalls reicht es, wenn Sie hwinfo tippen. Ohne weitere Angaben wirft das Tool mit Informationen nur so um sich, und die Zeilen fliegen über den Bildschirm. Um die Ausgabe einzugrenzen, geben Sie daher an, für welche Hardwarekomponente Sie sich interessieren. Informationen zum Prozessor erhalten Sie z. B. über hwinfo --cpu.

Alternativ übergeben Sie als Parameter z. B. --memory, um mehr über das BIOS, die Soundkarte, den Bildschirm, Maus oder Trackpad sowie den Arbeitsspeicher zu erfahren. Welche Hardware das Tool kennt und unterstützt, verrät das folgende Kommando:

hwinfo --help

Die Liste hinter der Angabe hw_item is one of (Hardware-Gegenstand ist) zeigt die verfügbaren Parameter an.

Tipp: Aktualisierungs-Intervall für “top” verändern

Der Prozessmonitor top zeigt in Windeseile Informationen zu laufenden Programmen auf der Shell an. Wie sehr die Anwendungen CPU und Arbeitsspeicher beanspruchen, die Prozess-ID und den Nice-Level präsentiert das Tool übersichtlich in einer Art Tabelle. In regelmäßigen Abständen aktualisiert der Prozessmonitor dabei die Angaben. In der Voreinstellung geschieht dies nach jeweils drei Sekunden.

Ist Ihnen das zu schnell oder langsam, verändern Sie das Aktualisierungsintervall. Rufen Sie top auf und drücken Sie dann die Taste [D] (für delay, Verzögerung). In der Zeile vor der hervorgehobenen steht nun:

Change delay from 3.0 to:

Im Klartext heißt das “Verändere Verzögerung von 3.0 auf”. Hinter dem Doppelpunkt geben Sie nun einen neuen Wert ein, zum Beispiel 1, wenn Sie möchten, dass top jede Sekunde neue Werte anzeigt. Drücken Sie hier jedoch einfach nur die Eingabetaste, belässt der Prozessmonitor es beim aktuellen Wert.

Tipp: Verzögerung für “top” schon beim Start definieren

Sind Sie sicher, dass Sie immer in einem bestimmten Intervall aktualisieren möchten und wollen das nicht jedes Mal von Hand über [D] und Eingabe des neuen Werts einstellen, legen Sie das Verhalten einfach schon beim Programmstart fest:

top -d 1

Tipp: Komplette Prozessliste in “top”

So übersichtlich der Prozessmonitor für die Shell ist – eines fehlt einfach: ein Scrollbalken, mit dem man ganz nach unten blättern kann. Zwar stehen verschiedene Sortierkriterien zur Verfügung, und mit der Tastenkombination [Umschalt]+[R] kehren Sie die Sortierreihenfolge um, zeigen also die letzten Einträge oben an. So richtig praktisch ist das dennoch nicht, denn eine komplette Übersicht fehlt.

Ein kleiner Trick schafft Abhilfe. Mit der Aufrufoption -b schalten Sie top in den so genannten Batch-Modus. In diesem können Sie keinerlei Benutzereingaben vornehmen, und top wird so oft aktualisieren, wie Sie hinter einem weiteren Parameter, -n definiert haben. Einen Schnappschuss der momentan laufenden Prozessliste erhalten Sie also über den folgenden Befehl:

top -n 1 -b

Die recht lange Liste können Sie wahlweise über ein angehängtes | less zeilenweise betrachten oder auch in eine Datei umleiten und diese später in aller Ruhe in einem Texteditor analysieren oder per Mail verschicken:

top -n 1 -b > top_ausgabe.txt

Tipp: Unterschiede zwischen Bildern herausfinden

Die Kommandozeilentools aus dem ImageMagick-Paket bieten jede Menge interessante und praktische Funktionen. Mit dem Programm compare suchen Sie Unterschiede in zwei Bildern. Das Ergebnis (die “Differenz”) speichern Sie in einer dritten Bilddatei und betrachten es dann mit dem ebenfalls in der ImageMagick-Suite enthaltenen Tool display:

compare tux_normal.jpg tux_albern.jpg compare.jpg
display compare.jpg

Abbildung 1 zeigt das Ergebnis dieses Vergleichs – wie Sie sehen, hat compare veränderte Bereiche deutlich sichtbar in Rot markiert.

Abbildung 1: Suchbild einmal anders: Das Tool "compare" aus der ImageMagick-Suite vergleicht Ihre Bilder und berechnet die Differenz. Die Montage im Filmstreifen erstellen Sie über Gimp.

Abbildung 1: Suchbild einmal anders: Das Tool “compare” aus der ImageMagick-Suite vergleicht Ihre Bilder und berechnet die Differenz. Die Montage im Filmstreifen erstellen Sie über Gimp.

Das Programm arbeitet äußerst genau und zeigt zum Beispiel auch dann Veränderungen an, wenn Sie ein Bild nur in Gimp öffnen und in einer anderen JPEG-Qualität abspeichern. Damit compare nicht alles so genau nimmt, können Sie daher die Option -fuzz 5% ans Kommando anhängen.

Tipp: Unterschiede im fliegenden Wechsel

Mit convert, einem weiteren ImageMagick-Werkzeug, erstellen Sie aus den beiden Bildern mit den Unterschieden in einem einzigen Schritt eine animierte GIF-Datei. Dazu geben Sie hinter dem Befehl convert zunächst an, wie schnell der nächste Bildwechsel erfolgen soll. Der Parameter -delay nimmt Zehntelsekunden entgegen – damit es nicht allzu sehr flackert, sollten Sie hier also mindestens 50 definieren. Danach kommen im Aufruf wieder die beiden Bilder mit den Unterschieden und zum Schluss der Name des neuen, animierten Bilds im GIF-Format:

convert -delay 50 tux_normal.jpg tux_albern.jpg compare.gif

Betrachten Sie dieses neue Bild beispielsweise in einem Webbrowser, um den fliegenden Wechsel so richtig genießen zu können.

Tipp: Festplattenaufteilung anzeigen

Wie groß ist die Festplatte? Wie viele Partitionen enthält sie? Welche Dateisysteme haben diese? Diese und andere Fragen beantwortet das Programm fdisk, wenn Sie es mit dem Parameter -l aufrufen (Abbildung 2). Dieser veranlasst das Tool dazu, eine Auflistung der aktuellen Belegung anzuzeigen. Um fdisk zum Sprechen zu bringen, rufen Sie es mit Administratorrechten auf, also z. B.:

sudo fdisk -l

Beschwert sich die Shell darüber, dass das Kommando nicht bekannt ist, verwenden Sie den vollen Pfad, also /sbin/fdisk -l.

Wie Sie in Abbildung 2 sehen, enthält der Rechner eine 160 GByte große Festplatte (/dev/sda). Diese ist in drei primäre Partitionen (/dev/sda1, /dev/sda2 und /dev/sda3) und eine erweiterte Partition (/dev/sda4) aufgeteilt. Die erweiterte Partition enthält vier logische, davon eine Swap-Partition.

Abbildung 2: "fdisk" zeigt die Größe und die Aufteilung von Festplatten an.

Abbildung 2: “fdisk” zeigt die Größe und die Aufteilung von Festplatten an.

Tipp: Buchstabendreher in der Bash reparieren

Selbst mit Tab-Completion und geschickten Fingern kommt es häufig zu Buchstabendrehern, und so haben Sie schnell dc statt cd getippt. Bevor Sie nun zeichenweise löschen, um den Vertipper auszumerzen, gehen Sie einfach mit dem Cursor hinter den zweiten Buchstaben und drücken [Strg]+[T]. Die Bash vertauscht dann die beiden Zeichen, der Cursor bleibt an Ort und Stelle, und Sie können direkt weiter schreiben.

Tipp: Zeilennummern für “grep”

Das Kommando grep durchsucht Ihre Texte nach bestimmten Zeichenketten. Dazu geben Sie zunächst den Befehl selbst, dann das Gesuchte und dann die Datei bzw. mehrere Dateien an. So fahndet der folgende Befehl nach dem Wort “Shell” in der Datei “artikel.txt”:

$ grep Shell artikel.txt
Shell-Tipps
... die Shell zu ermutigen.
Ausflug auf die Shell. ...
Programme auf der Shell ...

Das Programm gibt in der Voreinstellung jeweils die ganze Zeile aus, was dem Ganzen mehr Kontext verleiht und beim Wiederfinden hilft. Praktischer wären jedoch zusätzlich Zeilennummern. Verwenden Sie einfach die Aufrufoption -n, um den Treffern die Zeilennummern voranzustellen:

$ grep -n Shell artikel.txt
4:Shell-Tipps
9:die Shell zu ermutigen.
22:Ausflug auf die Shell ...
59:Programme auf der Shell ...

Tipp: Drucken auf mehreren Seiten mit “a2ps”

Die Druckdialoge der Desktopumgebungen machen es vor: Wollen Sie ein Bild, eine Browserseite oder ein einfaches Textdokument zu Papier bringen, können Sie in der Regel auswählen, wie viele Seiten Sie /verkleinert) auf einem Blatt unterbringen möchten. Papiersparend können Sie jedoch auch auf der Shell drucken – ideal, wenn Sie etwa eine Konfigurationsdatei ressourcenschonend an den Drucker schicken möchten. Sie müssen diese nicht erst umständlich im Texteditor öffnen und dann im Druckdialog die Aufteilung auswählen, schneller geht’s mit a2ps.

Der einfache Aufruf

a2ps /etc/cups/cupsd.conf

schickt die Konfigurationsdatei des Druckservers CUPS an den Standarddrucker und fasst dabei zwei Seiten auf einem Blatt zusammen. Das ist noch nicht alles: a2ps bringt auch mehr unter oder druckt einseitig. Dazu definieren Sie hinter dem Kommando eine Ziffer, das Tool versteht Zahlen zwischen 1 und 9. Darüber hinaus ist es möglich, das Ergebnis in einer PostScript-Datei zu speichern, bevor Sie es drucken. Der folgende Befehl fasst 4 Seiten pro Blatt zusammen und speichert die Konfigurationsdatei zur Tab-Completion der Bash in der Datei bc.ps (Abbildung 3):

$ a2ps -4 /etc/bash_completion -o bc.ps
[/etc/bash_completion (plain): 26 pages on 7 sheets]
[Total: 26 pages on 7 sheets] saved into the file `bc.ps'
[41 lines wrapped]
Abbildung 3: Das praktische Tool "a2ps" schickt Texte, Bilder und vieles mehr wahlweise direkt an den Drucker oder auch speichert sie im PostScript-Format.

Abbildung 3: Das praktische Tool “a2ps” schickt Texte, Bilder und vieles mehr wahlweise direkt an den Drucker oder auch speichert sie im PostScript-Format.

Tipp: “a2ps”-Ausdrucke besser formatieren

Verschiedene Aufrufoptionen stehen in a2ps zur Verfügung, die Ihre Druckerzeugnisse aufhübschen oder einfach anders gestalten. Gerade für die im vorherigen Tipp gezeigten Konfigurationsdateien oder auch für selbstgeschriebene Skripte wäre es doch praktisch, Zeilennummern voranzustellen. Nichts leichter als das:

a2ps --line-numbers=1 /etc/cups/cupsd.conf

Dieses Kommando schickt die CUPS-Einrichtungsdatei wiederum direkt an den Standarddrucker und stellt jeder Zeile eine Ziffer voran. Um hingegen nur alle fünf Zeilen eine Zeilennummer einzufügen, verwenden Sie den Parameter --line-numbers=5.

Für Brillenträger sicherlich praktisch ist die Möglichkeit, die Schriftgröße zu beeinflussen. Fügen Sie die Option --font-size= hinzu und wählen Sie nach dem Gleichheitszeichen eine Schriftgröße aus. In der Voreinstellung verwendet das Tool 9 für den einseitigen Druck im Hochformat, 6.4 für zwei Seiten pro Blatt im Hochformat und 6.8 für das Querformat.

Weiterhin können Sie den Header beeinflussen (-B schaltet ihn aus, --header=text setzt einen eigenen Text), den Titel (--center-title=text, --left-title=text oder --right-title=text) und die Fußzeile (--footer=text für das gesamte Dokument, --left-footer=text für die linke und --right-footer=text für die rechte Hälfte). Ein Inhaltsverzeichnis auf der letzten Seite erstellt a2ps ebenfalls auf Kommando. Die entsprechende Option heißt --toc=text.

Tipp: Geteilte Anzeige im Mailprogramm “mutt”

Mehr Übersicht für den beliebten Konsolenmailer verspricht der folgende Tipp. Im so genannten Index zeigt mutt die Mails des aktuellen Folders an, normalerweise mit dem Datum, dem Namen des Absenders und dem Subject. (Sie können die Übersicht auch an eigene Wünsche anpassen und hier ganz andere Dinge anzeigen lassen.) Wählen Sie eine Nachricht mit [Eingabe] aus, öffnet sich die Pager-Ansicht, und Sie können die Mail lesen, beantworten usw.

In der Voreinstellung wechselt mutt zwischen Index und Pager hin und her. Mit einem kleinen Eintrag in der Konfigurationsdatei (~/.muttrc) richten Sie den Mailer allerdings so ein, dass er in einer Art Split View oben im Bild den Mailindex und unten die geöffnete Nachricht anzeigt. Die Zeile

set pager_index_lines=10

sorgt dafür, dass der Index bis zu zehn Nachrichten in der Inbox präsentiert, während Sie im unteren Fensterbereich bequem durch die Mails navigieren und sie lesen können (Abbildung 4).

Abbildung 4: Geteilte Ansicht ist doppelte Freude: Blenden Sie ein paar Index-Zeilen auch im Pager von Mutt ein.

Abbildung 4: Geteilte Ansicht ist doppelte Freude: Blenden Sie ein paar Index-Zeilen auch im Pager von Mutt ein.

Glossar

Pfad

Im Suchpfad stehen alle Verzeichnisse, in denen die Shell nach ausführbaren Programmen sucht. Auf diese Weise müssen Sie ein Programm wie ls nicht über die volle Angabe /bin/ls aufrufen, sondern ls reicht. Den Suchpfad speichert die Bash in der Umgebungsvariable PATH. Sie lesen den Inhalt aus, indem Sie am Prompt echo $PATH tippen.

Prozess-ID

Jeder Prozess besitzt eine Identifikationsnummer (ID), die so Prozess-ID. Darüber können Sie auch mehrere “Instanzen” desselben Programms unterscheiden.

Nice-Level

Der Nice-Level eines Prozesses gibt an, wie viel Rechenzeit ihm das Betriebssystem (im Vergleich zu anderen Prozessen) geben soll – Prozesse mit einem hohen Nice-Level (größer als 0) erhalten weniger Rechenzeit als die übrigen, verhalten sich also “nett” (nice).

Batch-Modus

Die automatische Abarbeitung mehrerer Vorgänge, auch Stapelverarbeitung genannt. Ziel ist es, viele Jobs nacheinander auszuführen, ohne von Hand eingreifen zu müssen. So heißen auch Shell-Skripte unter DOS/Windows “Batch”-Dateien (mit Endung .bat).

Infos

[1] EasyLinux-Mailinglisten: http://www.easylinux.de/Kontakt/Mailinglisten

EasyLinux 04/2010 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben