Know-how für die Kommandozeile

Aus EasyLinux 03/2011

Know-how für die Kommandozeile

© mcleod, sxc.hu

Shell-Tipps

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: Mit “wget” bestimmte Dateitypen herunterladen

In der letzten Ausgabe haben wir schon einige Tipps zum Downloadmanager wget verraten und gezeigt, wie Sie rekursiv ganze Websites spiegeln und abgebrochene Downloads fortsetzen. Das praktische Tool hat noch mehr zu bieten und lädt auf Wunsch nur bestimmte Dateitypen herunter. Um alle JPEG-Dateien der EasyLinux-Website auf die eigene Platte zu bringen, geben Sie etwa den folgenden Befehl ein:

wget -r -A jpg www.easylinux.de

Die erste Option sorgt dafür, dass wget rekursiv arbeitet und einen kompletten Spiegel einer Webseite mit all ihren Unterverzeichnissen anlegt. Hinter -A steht der gewünschte Dateityp und danach die Adresse der Website. Wenn Sie auf die Meldungen in der Konsole achten, sehen Sie, dass der Downloadmanager auch in diesem Szenario die Indexdateien erwischt, diese aber anschließend wieder löscht und nur die Bilder behält):

In »www.easylinux.de/2011/02/012-software-news/index.html« speichern.
...
Entferne »www.easylinux.de/2011/02/012-software-news/index.html«, da dies zurückgewiesen werden soll.

Alle heruntergeladenen Bilder finden Sie – in der gewohnten Ordnerstruktur – im Verzeichnis www.easylinux.de (Abbildung 1).

Abbildung 1: Der Downloadmanager Wget lädt auf Wunsch nur bestimmte Dateitypen auf die Platte herunter.

Abbildung 1: Der Downloadmanager Wget lädt auf Wunsch nur bestimmte Dateitypen auf die Platte herunter.

Es ist möglich, hinter der Option -A gleich eine ganze Reihe von Dateitypen anzugeben. Um zusätzlich zu den JPEGs auch PNG- und GIF-Dateien der Webseite zu spiegeln, rufen Sie das Programm einfach über wget -r -A jpg,png,gif ... auf.

Tipp: “wget”: Bestimmte Dateitypen ausschließen

Der Downloadmanager für die Shell bringt außerdem einen Aufrufparameter mit, mit dem Sie gezielt Dateitypen vom Download ausschließen. Um beispielsweise verschiedene Videoformate zurückzuweisen, tippen Sie:

wget -R avi,mpg,wmv ...

Auf diese Weise sorgen Sie beispielsweise dafür, dass größere Datenmengen gar nicht erst durch die Leitung wandern, sie schließen also Speicherfresser aus.

Tipp: Rechtschreibprüfung für die Shell: “aspell”

Die meisten Office-Anwendungen und Mailprogramme finden auf Wunsch Ihre Tippfehler, schlagen alternative Schreibweisen vor und fügen Begriffe den persönlichen Wörterbüchern hinzu. Wer den Service einer Rechtschreibprüfung auf der Konsole vermisst, sollte sich aspell anschauen. Auf den meisten Systemen ist das Tool automatisch installiert, weil es bereits in vielen grafischen Programmen die Sprachkontrolle im Hintergrund übernimmt. Darüber hinaus können Sie aspell auch als eigenständige Anwendung auf der Konsole benutzen.

Um beispielsweise eine Textdatei zu überprüfen, geben Sie das folgende Kommando ein:

aspell -c text.txt

Normalerweise erkennt aspell automatisch, welche Sprache der Text hat, und sucht selbst ein passendes Wörterbuch aus. Erhalten Sie jedoch eine Fehlermeldung, überprüfen Sie, ob die passende Sprachdatei auf Ihrem Rechner installiert ist. Diese spielen Sie über den Paketmanager Ihrer Distribution ein; auf allen von EasyLinux unterstützten Systemen heißen die Pakete aspell-XX, wobei Sie XX durch ein Länderkürzel ersetzen. Die deutschen Wörterbücher erhalten Sie also über die Pakete aspell-de und aspell-de-alt (alte Rechtschreibung).

Nach dem Aufruf von aspell sehen Sie im oberen Teil des Terminals Ihren Text. Begriffe, die nicht im Wörterbuch sind, also als Vertipper zählen, hebt das Tool hervor. Unten blendet das Programm die wichtigsten aspell-Befehle zum Ändern, Hinzufügen, Ersetzen, Ignorieren usw. ein. Findet der Spellchecker in seinem Wörterbuch Ersetzungsvorschläge für ein ihm unbekanntes Wort, zeigt er diese in der unteren Hälfte durchnummeriert an (Abbildung 2). Um einen Vorschlag zu übernehmen, geben Sie einfach die Ziffer gefolgt von [Eingabe] ein.

Abbildung 2: "aspell" macht Vorschläge, um nicht bekannte Wörter zu ersetzen. Alternativ nehmen Sie neue Begriffe auf oder ignorieren sie.

Abbildung 2: “aspell” macht Vorschläge, um nicht bekannte Wörter zu ersetzen. Alternativ nehmen Sie neue Begriffe auf oder ignorieren sie.

Tipp: Persönliche “aspell”-Wörterbücher verwalten

Möchten Sie einen aspell-Vorschlag nicht umsetzen, können Sie ihn über [I] einmal und mit [Umschalt]+[I] für die Dauer der laufenden Sitzung ignorieren. Alternativ nehmen Sie ein Wort über [A] in das persönliche Wörterbuch auf. aspell legt diese versteckten Dateien (beginnen mit einem Punkt) im eigenen Home-Verzeichnis ab. Sie heißen .aspell.XX.pws, wobei XX für das Wörterbuchkürzel steht, also etwa .aspell.de.pws für das deutsche Wörterbuch.

Diese Dateien können Sie in einem Texteditor wie beispielsweise GEdit, KWrite o. Ä. bearbeiten. Beachten Sie, dass jeder Begriff dabei in einer neuen Zeile steht; die Reihenfolge ist alphabetisch. Listing 1 zeigt eine solche persönliche Wörterbuchdatei.

Listing 1

“~/.aspell.de.pws”

personal_ws-1.1 de 4
boot
Bootloaders
Canonical
Terminalfenster

Tipp: Eigenes “aspell”-Wörterbuch erstellen und nutzen

Natürlich können Sie auch eine eigene Datei erstellen, die Sie “aspell” dann beim Aufruf als persönliches Wörterbuch ans Herz legen. Das empfiehlt sich möglicherweise, wenn Sie einen Fachtext mit vielen interessanten Worten prüfen möchten oder ein deutscher Text vorliegt, der viele englische Ausdrücke enthält, die nicht im persönlichen deutschen Wörterbuch landen sollen. Schreiben Sie, wie in Listing 1 zu sehen ist, alle Begriffe untereinander. Auf die alphabetische Reihenfolge müssen Sie nicht zwingend achten, wohl aber auf die erste Zeile:

personal_ws-1.1 de 4

Die Ziffer, die für die Anzahl der Begriffe in der Datei steht, können Sie dabei ignorieren; aspell ersetzt diese beim nächsten Lauf durch den richtigen Wert. Angenommen, Ihre Sprachdatei heißt linux-vokabeln, und Sie möchten, dass aspell diese bei der Korrektur eines Textes zurate zieht, lautet der Befehl:

aspell -c shelltipps.txt -p linux-vokabeln

Alles, was Sie nun in der interaktiven Sitzung über [A] in das Wörterbuch aufnehmen, landet ebenfalls in der Datei linux-vokabeln.

Tipp: Zeilennummern für den “cat”-Befehl

Mit dem Programm cat geben Sie Textdateien auf der Shell aus:

cat skript.sh

Um die Ausgabe übersichtlicher zu gestalten und Zeilennummern einzufügen, verwenden Sie den Parameter -n. Abbildung 3 zeigt eine solche durchnummerierte Textdatei. Auch beim “Zusammenkleben” von Textdateien – die eigentliche Aufgabe des praktischen cat-Kommandos – funktioniert der Schalter:

cat -n datei1 datei2 > datei3

Hängen Sie den Parameter -n einfach an den ursprünglichen Befehl an. Das letztgenannte Kommando macht aus den beiden Dateien datei1 und datei2 eine lange Datei datei3 und nummeriert diese gleich mit durch. Natürlich funktioniert das Ganze auch mit mehr als zwei Texten – so ist cat ein praktischer Zählmeister für die Shell.

Abbildung 3: Das Programm "cat" fügt auf Wunsch Zeilennummern ein und macht damit die Ausgabe von Texten auf der Shell übersichtlicher.

Abbildung 3: Das Programm “cat” fügt auf Wunsch Zeilennummern ein und macht damit die Ausgabe von Texten auf der Shell übersichtlicher.

Tipp: Editor aus dem Pager “less” heraus starten

Mit less betrachten Sie Textdateien auf der Shell und blättern in diesen seitenweise vor und zurück. Dazu geben Sie hinter dem Befehl den Namen der Datei an:

less tipps.txt

Mit den Cursortasten geht es zeilenweise hoch und runter, mit [Bild auf] und [Bild ab] seitenweise. Mit [Umschalt]+[G] springen Sie direkt zum Dateiende, [G] bringt Sie zum Anfang. Drücken Sie [V], startet der Pager einen Texteditor, und Sie können die Datei direkt bearbeiten, ohne less selbst beenden zu müssen. Nach dem Verlassen des Editors landen Sie direkt wieder im Pager, den Sie über [Q] beenden.

Welcher Texteditor den Dienst aufnimmt, bestimmen Sie über die UmgebungsvariableEDITOR. Arbeiten Sie gerne mit dem Editor Vim, tippen Sie also zunächst:

export EDITOR=vim

Wenn Sie nun in less die Taste [V] drücken, öffnen Sie die Datei zur Bearbeitung in Vim.

Die auf diese Weise definierte Variable EDITOR ist nur in der aktuellen Bash gültig. Beenden Sie das Terminal oder melden sich von der Konsole ab, hat Ihr Linux-System den Lieblingseditor wieder vergessen. Um den Texteditor dauerhaft einzurichten, schreiben Sie das export-Kommando in die Bash-Konfigurationsdatei ~/.bashrc und lesen die Datei über den Aufruf

source ~/.bashrc

neu ein, starten ein neues Terminal oder melden sich neu an.

Tipp: Mehrere Dateien in “less” betrachten

Dem Pager less können Sie beim Start gleich mehrere Textdateien mit auf den Weg geben, zum Beispiel:

less datei1.txt datei2.txt datei3.txt

Am unteren Rand sehen Sie in einer Statuszeile, welche Datei Sie gerade betrachten, wie viele Sie mit less geöffnet haben und welche Datei als nächste dran ist:

datei1.txt (file 1 of 3) - Next: datei2.txt

Um zur nachfolgenden Textdatei zu wechseln, tippen Sie in less das Kommando :n; zur vorherigen geht’s mit :p zurück. Praktischerweise merkt sich less für jede Textdatei Ihre aktuelle Position – wechseln Sie also mit den gezeigten Befehlen hin und her, landen Sie immer wieder an der zuletzt besuchten Stelle im Dokument.

Benötigen Sie diese Wechselfunktion nicht und wollen Sie lieber sämtliche Dateien als eine gefühlte große Datei durchblättern, starten Sie less mit dem Parameter -e:

less -e datei1.txt datei2.txt datei3.txt

Danach blättern Sie mit den üblichen Kommandos und Pfeiltasten dateiübergreifend vor und zurück.

Tipp: Musikalischer Wecker für die Shell: “at”

Das Programm at führt von Ihnen definierte Aufgaben zu einem genau festgelegten Zeitpunkt aus. Sie starten den praktischen Helfer über das gleichnamige Kommando und geben zusätzlich den Zeitpunkt an, an dem at einen Job ausführen soll. Anschließend tippen Sie in einer Art Shell weitere Kommandos ein und beenden at danach mit [Strg]+[D]. Als Zeitpunkte funktionieren Angaben wie

  • 13:00 (13 Uhr am heutigen Tag; ist es nach 13 Uhr, dann am folgenden Tag),
  • 07:00pm (7 Uhr abends, also 19 Uhr),
  • 07:00am (7 Uhr morgens),
  • now (jetzt),
  • tomorrow (morgen) und today (heute),
  • now+10min (in zehn Minuten)

und viele mehr. Die Kürzel am und pm stehen für die im englischen Sprachraum üblichen, aus dem Lateinischen übernommenen Bezeichnungen für den Vormittag (ante meridiem) und den Nachmittag (post meridiem).

Um mit at einen musikalischen Wecker für den nächsten Morgen um 8 Uhr einzurichten, geben Sie also das folgende Kommando ein:

$ at 08:00am
warning: commands will be executed using /bin/sh
at>

Der Prompt hat sich verändert, und hinter at> tippen Sie jetzt den Weckbefehl. Um eine MP3-Datei abzuspielen, eignet sich beispielsweise der Kommandozeilenplayer mpg321:

at> mpg123 Musik/Tangerine_Dream/Stratosfear/01_stratosfear.mp3
at> <EOT>
job 4 at Wed Jun  1 08:00:00 2011

Nachdem Sie den Auftrag eingegeben haben, drücken Sie [Strg]+[D] und sehen dann den Hinweis EOT (“End of Transmission” = “Ende der Datenübertragung”) und abschließend die Bestätigung des Jobs. Damit der Weckruf erklingt, muss der Rechner natürlich am nächsten Morgen um 8 Uhr laufen.

Tipp: “at”-Jobs anzeigen und löschen

Welche at-Kommandos noch auf die Ausführung warten, verrät das Kommando atq (“at queue”, at-Warteschlange):

$ atq
4       Wed Jun  1 08:00:00 2011 a huhn
5       Tue May 31 18:36:00 2011 a huhn

Als Erstes sehen Sie die Jobnummer, dann das Datum und die Uhrzeit, den Namen der Warteschlange (a) und den Benutzernamen. Welcher Job geplant ist, sehen Sie nicht. Die einzige Möglichkeit, mehr Informationen zu erhalten, bietet ein Blick in die Dateien unter /var/spool/atjobs/ (OpenSuse) bzw. /var/spool/cron/atjobs/ (Ubuntu). Es handelt sich um reine Textdateien, die allerdings nur für den Benutzer root lesbar sind. Ganz am Ende der jeweiligen Datei steht der at-Befehl.

Um einen Auftrag zu löschen, tippen Sie at -d gefolgt von der Jobnummer:

$ atq
4       Wed Jun  1 08:00:00 2011 a huhn
5       Tue May 31 18:36:00 2011 a huhn
$ at -d 4
$ atq
5       Tue May 31 18:36:00 2011 a huhn

Eine Bestätigung erhalten Sie nicht; der erneute Aufruf zum Betrachten der Warteschlange (atq) bestätigt aber, dass der Job nicht länger geplant ist.

Tipp: Zeilen- und Spaltennummer in Vim

Auf einigen Systemen zeigt der beliebte Texteditor in der Statuszeile am unteren Rand in der Voreinstellung nicht an, in welcher Zeile und Spalte sich der Cursor befindet. Ist das bei Ihnen auch so, und Sie sehen lediglich den Hinweis — EINFÜGEN — o. Ä., schalten Sie die praktische Orientierungshilfe über den folgenden Eintrag in der Einrichtungsdatei ~/.vimrc ein:

set ruler

Beim nächsten Start blendet der Texteditor rechts unten in der Statuszeile die Cursorposition sowie die relative Position in der Datei in Prozentzahlen ein.

Glossar

Umgebungsvariable

Mit Umgebungsvariablen erweitern Sie den Funktionsumfang der Shell und legen das Verhalten von bestimmten Programmen fest. In der Voreinstellung sind einige dieser Variablen bereits gesetzt, wie z. B. HISTSIZE (definiert die Größe der Bash-History) oder LANG (Spracheinstellungen). Den Wert einer solchen Variablen zeigen Sie mit dem Kommando echo an; der Umgebungsvariable stellen Sie ein Dollarzeichen voran: echo $HISTSIZE

EasyLinux 03/2011 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