claim.gif
Linux Magazin Linux User Easy Linux Ubuntu User International Linux Community
Erschienen in EasyLinux 01/2004   »   Ausgabe bestellen

Tipps & Tricks für die Shell

Shell-Tipps

von Andrea Müller


Diesen Monat steht der Komfort im Mittelpunkt. Mit praktischen Tastenkombinationen, farblich ansprechenden Anwendungen und komfortablen Tools macht die Arbeit auf der Kommandozeile noch mehr Spaß.

Tipp: CD-Player für die Shell

Um CDs zu hören, braucht man keine grafische Anwendung: cdp ist ein leicht bedienbarer CD-Player für die Shell. Bei Red Hat Linux gehört er zur Standardausstattung, SuSE-Nutzer müssen die Anwendung nachinstallieren. Besitzer der Professional-Version erledigen das mit einem schnellen yast -i cdp in der KDE-Konsole. Wer die Personal-Edition nutzt, besorgt sich das Paket vom FTP-Server des Distributors [1,2]. Während dieser Artikel entstand, war SuSE Linux 9.0 noch nicht über FTP verfügbar, so dass der Link nur auf den Ordner zeigt, in dem Sie das Paket inzwischen finden sollten. Klicken Sie die heruntergeladene Datei im Konqueror an und installieren Sie cdp über den Button Installiere Paket mit YaST.

Legen Sie eine Audio-CD ein und starten Sie den Player mit dem Befehl cdp. Das Programm greift auf /dev/cdrom zu, hinter dem sich üblicherweise das CD-Laufwerk verbirgt. Haben Sie mehrere Laufwerke eingebaut, erwischt cdp eventuell das falsche. Bei Problemen probieren Sie deshalb einfach die Laufwerke durch. Sie steuern cdp mit dem Nummernblock der Tastatur, den Sie über Druck auf [Num] aktivieren. Neben den einzelnen Stücken auf der CD und der Gesamtspielzeit zeigt das Programm rechts oben die Tastaturbelegung an (Abbildung 1). Vergleichen Sie die Anordnung einfach mit dem Nummernblock. Da das für Notebook-Besitzer nicht ganz so einfach ist, finden Sie die wichtigsten Befehle auch in Tabelle 1.

Abb. 1: Der Shell-Player cdp spielt Audio-CDs ab und lässt sich komplett über den Ziffernblock steuern.
Tabelle 1: Tastaturkommandos für cdp
ShortcutFunktion
1Abspielen beenden
2Pause/Pause beenden
3Abspielen
4Zum Anfang des vorigen Liedes
5Aktuellen Titel neu starten
6Zum Anfang des nächsten Liedes
7Schnellrücklauf
8CD auswerfen und cdp beenden
9Schnellvorlauf
1Abspielen beenden
0cdp beenden (CD wird trotzdem bis zum Ende abgespielt)

Tipp: Top-Prozessliste in bunt

Normal präsentiert sich der Prozessmonitor top in schlichtem Schwarz-Weiß, doch wer SuSE Linux verwendet, bringt mit einem Trick Farbe in seine Prozessliste. Die bei Red Hat Linux mitgelieferte, ältere top-Version beherrscht die Farbspielereien noch nicht.

Starten Sie den Systemmonitor mit dem Befehl top und drücken Sie [Z], um in den Farbauswahldialog zu gelangen. Acht Farben (0-7) stehen zur Auswahl, um die vier Elemente Statusanzeige (S), Überschrift (H), Prozessliste (T) und Meldungen (M) einzufärben. Hinter Selected: target steht der Kennbuchstabe des gerade aktiven Elements und hinter color die ausgewählte Farbe. Um beispielsweise die Prozessliste einzufärben, geben Sie [S] ein, was nun hinter target erscheint. Tippen Sie nun die Nummer der gewünschten Farbe, etwa [2] für grün. Analog dazu legen Sie auch die Farben für die anderen Elemente fest. Anhand der Vorschau (Abbildung 2) kontrollieren Sie direkt an Ort und Stelle, ob die Farben passen.

Abb. 2: Versteckt: Das Farbmenü des Prozessmonitors top.

Am besten kommen die Farben zur Geltung, wenn Sie die KDE-Konsole mit schwarzem Hintergrund betreiben (Einstellungen / Farbschema / Weiß auf Schwarz). Mit [Enter] schließen Sie den Konfigurationsdialog und aktivieren die neuen Einstellungen. Speichern Sie sie danach mit [Umschalt-W], damit top zukünftig direkt in Ihren Lieblingsfarben startet. Wird es Ihnen doch einmal zu bunt, wechseln Sie mit [z] zwischen der klassischen Ansicht und der farblich aufgepeppten Variante hin und her.

Tipp: Dateisuche unter SuSE Linux mit pin

Wer Software mit dem rpm-Befehl über die Kommandozeile installiert, trifft früher oder später auf Fehlermeldungen über fehlende Pakete oder Dateien. Wenn RPM meldet

error: failed dependencies:
libzvt.so.2 is needed by\
xchat-1.8.11-2easy

ist guter Rat teuer: Woher soll man wissen, in welchem der fast 1000 Pakete auf der CD sich diese eine Datei versteckt? Für solche Probleme liefert SuSE Linux den praktischen Helfer pin mit. Das Programm durchsucht ein Archiv, in dem die Informationen über alle RPM-Pakete auf Ihren CDs hinterlegt sind. Sie rufen die Anwendung in der Form pin Suchbegriff auf, also z. B. pin libzvt.so.2. Starten Sie das Programm zum ersten Mal, liegt das Archiv noch nicht auf der Festplatte und pin fordert Ihr Administratorpasswort an. Geben Sie es ein und legen Sie danach entweder die erste Installations-CD oder Ihre DVD ein. Das Programm kopiert das Archiv in das Verzeichnis /var/lib/pin und startet gleich danach die Suchaktion. Seine Ergebnisse präsentiert das Tool in der Pager-Anwendung less (Abbildung 3). Mit [Bild auf] und [Bild ab] bewegen Sie sich durch längere Trefferlisten.

Abb. 3: pin zeigt Ihnen, dass die libzvt.so.2 im Paket gnome-libs liegt.

pin gibt in seinen Suchergebnissen den vollen Pfad zu den gefundenen Paketen an, so dass Sie genau erfahren, welche CD Sie für die Nachinstallation brauchen. Das Anzeigeprogramm less beenden Sie mit einem Druck auf [q]. pin benötigt nur beim ersten Aufruf Administratorrechte, um die Archivdatei auf Ihre Festplatte zu kopieren, zukünftige Suchläufe führen Sie als normaler Benutzer durch.

Tipp: Shortcuts für die Kommandozeile

Wer schon den einen oder anderen Ausflug auf die Kommandozeile unternommen hat, kennt bestimmt den Trick, mit den [Pfeil hoch]- und [Pfeil runter]-Tasten durch früher eingegebene Befehle zu blättern. Es gibt aber noch weitere Tastaturkürzel, mit denen Sie Ihre Arbeit beschleunigen. Tabelle 2 listet die wichtigsten auf.

Tabelle 2: Tastaturkürzel in der Shell
TastenkombinationFunktion
[Strg-a]Cursor zum Anfang der Eingabezeile bewegen
[Strg-e]Cursor zum Ende der Eingabezeile bewegen
[Alt-b]Zum Anfang des vorigen Worts springen
[Alt-f] Zum Ende des Worts springen
[Strg-l]Bildschirminhalt löschen
[Strg-k]Von der aktuellen Position bis zum Ende der Zeile löschen
[Strg-u]Von der aktuellen Position bis zum Anfang der Zeile löschen
[Strg-w]Wort vor der Cursor-Position löschen
[Strg-d]Sitzung beenden, analog zu dem Befehl exit
[Strg-s]Rückwärts in der History suchen -- die Shell vervollständigt, während Sie tippen
[Alt-.]Setzt das letzte Wort des vorherigen Befehls an der aktuellen Cursor-Position ein -- sehr praktisch bei langen Pfaden.
[Strg-o]Schickt den getippten Befehl ab und setzt ihn zum Editieren in die neue Eingabezeile
[Strg-y]Mit [Strg-k], [Strg-u] oder [Strg-w] gelöschten Text einfügen. Eingefügt wird der zuletzt gelöschte Text. Mit [Alt-y] nach dem Einfügen rotieren Sie den so genannten kill ring, kommen also auch an den vorletzten gelöschten Eintrag ran.
[Alt-l]Von der aktuellen Cursor-Position bis zum Wortende Groß- in Kleinbuchstaben umwandeln
[Alt-t]Wort unter dem Cursor tauscht die Position mit dem vorigen Wort

Tipp: Grafische Programme aus der Shell starten

Genauso, wie Sie Programme über den KDE-Schnellstarter mit [Alt-F2] aufrufen, lassen sie sich auch per Kommandozeile starten. Geben Sie dazu den Programmnamen, gefolgt von einem Kaufmanns-Und (&) ein. Zum Beispiel rufen Sie mit kmail & das KDE-Mail-Programm auf. Das &-Zeichen sorgt dafür, dass der Befehl in einer Sub-Shell im Hintergrund ausgeführt wird: So erhalten Sie sofort wieder einen Prompt und können weitere Kommandos absetzen.

Tipp: Befehle verknüpfen

Um mehrere Befehle gleichzeitig einzutippen, verbinden Sie sie mit einem Semikolon (;), also cp dokument.txt backup/ ; cp bilder/urlaub.png backup/. Der Aufruf kopiert dokument.txt und bilder/urlaub.png in das Verzeichnis backup. Bei voneinander unabhängigen Befehlen arbeitet diese Methode ausgezeichnet. Wollen Sie den zweiten Befehl nur dann ausführen, wenn der erste erfolgreich abgeschlossen wurde, verwenden Sie zur Verknüpfung &&. Ein cp test.txt backup/ && gzip backup/test.txt komprimiert die Datei test.txt nur dann mit dem Programm gzip, wenn der Kopiervorgang ohne Fehlermeldung verlaufen ist.

Tipp: Farbgestaltung in vim

Das Urgestein der Editoren beherrscht so genanntes Syntax-Highlighting und färbt Programm-Code ebenso wie HTML-Dateien übersichtlich ein. Ist das Feature bei Ihnen ausgeschaltet, aktivieren Sie es, indem Sie im Befehlsmodus (über Druck auf [Esc] zu erreichen) :syntax on eingeben. Sagt Ihnen die voreingestellte Farbgestaltung nicht zu, testen Sie einfach eine andere. Tippen Sie dazu im Befehlsmodus :colorscheme farbschema_name. Da Sie vermutlich nicht wissen, welche Styles Ihr Distributor installiert hat, geben Sie nur :colorscheme gefolgt von einer Leerstelle ein und blättern mit der [Tab]-Taste durch die verschiedenen Möglichkeiten. Mit Druck auf [Enter] wählen Sie ein Farbschema aus. Besonders hübsch sind darkblue, morning und murphy.

Tipp: Bilder skalieren

Thumbnails, kleine Vorschaubilder, sind praktisch, wenn man Bilder auf seine Homepage stellen oder schnell die letzten Urlaubsfotos durchsuchen will. Mit convert aus dem ImageMagick-Paket, dem Schweizer Messer für die Bildbearbeitung, skalieren Sie Bilder auf der Kommandozeile. Red Hat Linux liefert es standardmäßig mit.

Unter SuSE Linux werden Sie mit su und dem Administrator-Passwort in der nächsten Zeile zu root. Geben Sie dann yast -i ImageMagick ein. Das Programm startet, überprüft alle Abhängigkeiten und fordert das Installationsmedium an. Ist alles eingespielt, beendet YaST sich automatisch.

Unter Mandrake werden Sie ebenfalls erst mit su zum Administrator. Danach erledigt ein urpmi ImageMagick die ganze Arbeit. urpmi fragt Sie, ob es noch einige zusätzliche Pakete installieren darf. Geben Sie j ein und drücken [Enter]. Danach fordert urpmi Ihre Distributions-CD an und installiert den Grafikkünstler.

Um von der Datei bild.jpg einen Thumbnail zu generieren, lautet der Befehl

convert bild.jpg -resize \
240x240 bild_thumb.jpg

Der Parameter -resize 240x240 macht den Thumbnail nicht etwa 240 Pixel hoch und breit, sondern bestimmt nur, dass das Bild weder in der Breite noch in der Höhe größer werden darf als dieser Wert. Das Seitenverhältnis behält convert also bei.

Für hunderte von Bildern jedesmal diesen Befehl aufzurufen, ist jedoch in etwa so attraktiv wie eine Strafarbeit. Am besten verpackt man die Aktion deshalb in ein Skript (unter Windows würde man von einer Batch-Datei sprechen), das für alle .jpg-Datei eines Verzeichnisses in einem Rutsch Thumbnails erzeugt. Wie das geht, erfahren Sie in den Kästen 1 und 2.

Kasten 1 erklärt ganz allgemein, wie Sie ein Skript erstellen. In Kasten 2 finden Sie den Thumbnail-Generator und Erklärungen zu den verwendeten Befehlen. (eba)

Kasten 1: Skript-Grundlagen

Zum Schreiben eines Shell-Skripts verwendet man einen Text-Editor wie Kwrite oder Kate. Die erste Zeile beginnt immer mit der Zeichenfolge #!, gefolgt vom vollen Pfad der Shell, die das Skript ausführen soll:

#!/bin/bash

In diesem Fall ist das die Default-Shell /bin/bash, auf der Sie sonst auch Ihre Kommandos eingeben. Normalerweise gelten mit einer Raute beginnende Zeilen als Kommentare, die die Shell später beim Ausführen des Skripts ignoriert -- die Anfangszeile bildet hier eine Ausnahme.

Anschließend notieren Sie die Befehle, die das Skript abarbeiten soll, jeweils einen pro Zeile. Dabei können Sie prinzipiell jedes Kommando verwenden, das Sie sonst direkt in der Shell eingeben.

Speichern Sie Ihr Werk nun unter einem aussagekräftigen Namen. Noch ist es nur eine Textdatei wie jede andere. Damit daraus ein kleines Programm wird, versehen Sie es mit Ausführungsrechten [1]:

chmod +x meinskript

Aufgerufen wird es danach entweder mit einer absoluten Pfadangabe wie

/voller/pfad/zu/meinskript

oder, wenn Sie schon in dem Verzeichnis sind, in dem das Skript liegt, mit

./meinskript

Das ./ ist die relative Pfadangabe für das aktuelle Verzeichnis, das bei Linux, anders als unter Windows, nicht standardmäßig im Suchpfad für Programme liegt. Wer sich die Pfadangabe oder den Verzeichniswechsel sparen will, kopiert das Skript als Administrator in das für selbst geschriebene Skripte vorgesehene Verzeichnis /usr/local/bin. Werden Sie dafür mit su und der Eingabe Ihres Administratorpasswortes zu root. Kopieren Sie dann die Datei mit dem Befehl

cp meinskript /usr/local/bin/

in das Zielverzeichnis und setzen Sie mit

chmod u=rwx,go=rx /usr/local/bin/meinskript

die Rechte so, dass es zwar jeder Benutzer ausführen, aber nur der Administrator ändern darf. Nun lässt sich das Skript durch die Eingabe des Dateinamens aufrufen.

Kasten 2: Thumbnail-Erzeugung per Skript

Möchte man eine Gruppe von Dateien mit demselben Befehl bearbeiten, ist eine so genannte for-Schleife das Werkzeug der Wahl. Ihr Aufbau sieht in gesprochener Sprache etwa so aus:

Für alle Dateien mit der Endung .jpg
mache
        eine Konvertierung in ein Vorschaubild
fertig

Die Schleife wiederholt also die gleiche Aktion mit einem ganzen Stapel Bilder. Mit diesem Wissen ist schnell ein Skript namens minijpg erstellt:

#!/bin/bash
# minijpg: Erstellt Thumbnails von jpg-Dateien
for bild in *.jpg
do
        convert "$bild" -resize 240x240 "${bild%.jpg}_thumb.jpg"
done

Die erste Zeile legt den Interpreter fest, die folgende ist ein Kommentar, der erklärt, was das Skript macht. Ab da beginnen die Befehle.

Die erste Befehlszeile bestimmt, dass alle Dateien von der for-Schleife erfasst werden, die mit einer beliebigen Zeichenfolge beginnen (*) und auf .jpg enden. Möchten Sie lieber einen Thumbnail-Generator für PNG-Dateien haben, ersetzen Sie das .jpg überall durch .png.

bild ist eine Variable, in die die Shell bei jedem Schleifendurchlauf eines Ihrer Bilder einsetzt. Sie steht beispielsweise beim ersten Mal für a.jpg, beim zweiten Mal für b.jpg usw. Wie Sie eine solche Variable nennen, liegt ganz bei Ihnen.

do ist das Schlüsselwort, dass nun Befehle folgen, in diesem Fall der Konvertierungsaufruf. "$bild" ersetzt die Shell durch den gerade aktiven Variableninhalt, also a.jpg, danach b.jpg usw. Die Anführungszeichen um $bild sorgen dafür, dass das Skript bei Leerzeichen in Dateinamen nicht durcheinander kommt.

Mit dem kryptischen letzten Teil legen wir den Namen für die Ausgabedatei fest. Hier darf kein fester Name stehen, wie etwa thumbnail.jpg, da convert diese Datei bei jedem Schleifendurchlauf überschreiben würde. Am Ende hätten Sie dann nur ein Vorschaubildchen. "${bild%.jpg}_thumb.jpg" legt fest, dass die Ausgabedatei so heißen soll wie das Original (bild), dass aber vorher .jpg abgeschnitten (%.jpg) und durch _thumb.jpg ersetzt werden soll. Zu kretaurlaub.jpg erzeugt das Skript das Vorschaubild kretaurlaub_thumb.jpg.

Um die Thumbnails getrennt von den Originalen zu verwahren, fügen Sie noch die Zeilen

mkdir thumbnails
mv *_thumb.jpg thumbnails

am Ende von minijpg ein. Schon erstellt es einen Unterordner namens thumbnails und verfrachtet alle erzeugten Vorschaubilder dorthin.

Speichern Sie das Skript unter dem Namen minijpg und machen Sie es wie in Kasten 1 beschrieben ausführbar. Um jetzt die Bildersammlung umzuwandeln, wechseln Sie mit cd /verzeichnis/mit/jpgdateien in Ihr Fotoalbum auf der Festplatte und rufen dort /pfad/zu/minijpg auf. Hat das Skript seine Arbeit erledigt, lässt sich das Ergebnis in der Vorschauansicht von Nautilus (Abbildung 4) oder Konqueror bewundern.

Abb. 4: Von "minijpg" generierte Thumbnails und die Originalbilder.
Infos
[1] ftp://ftp.suse.com/pub/suse/i386/8.2/suse/i586/cdp-0.33.13-13.i586.rpm
[2] ftp://ftp.suse.com/pub/suse/i386/9.0/suse/i586/
[3] Elisabeth Bauer: "Alles, was recht ist", EasyLinux 9/2003, S. 71 http://www.easylinux.de/Artikel/ausgabe/2003/09/071-guru-chmod/

Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links" nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedruckten Fassung entsprechen.

Druckerfreundliche Version | Feedback zu dieser Seite | Datenschutz | © 2012 Linux New Media AG | Last modified: 2007-01-25 16:45

[Linux-Magazin] [LinuxUser] [Linux-Community] [Admin-Magazin] [Ubuntu User] [Smart Developer] [Linux Events] [Linux Magazine] [Ubuntu User] [Admin Magazine] [Smart Developer] [Linux Magazine Poland] [Linux Community Poland] [Linux Magazine Brasil] [Linux Magazine Spain] [Linux Technical Review]