claim.gif
Linux Magazin Linux User Easy Linux Ubuntu User International Linux Community
Erschienen in EasyLinux 06/2006

Know-how für die Kommandozeile

Shell-Tipps

von Andrea Müller


Wer denkt, die Shell sei nur ein notwendiges Übel, irrt! Viele Dinge erledigen Sie auf der Kommandozeile schneller und bequemer als mit grafischen Tools. In den Tipps zeigen wir unter anderem, wie Sie Textdateien durchsuchen und Bildschirmfotos machen.

Tipp: Konsolensitzung aufzeichnen

Die Shell merkt sich alle Kommandos, die Sie ausführen, und schreibt diese in die Datei .bash_history in Ihrem Home-Verzeichnis. Mit [Pfeil hoch] und [Pfeil runter] blättern Sie durch die eingegebenen Befehle, die Sie mit [Eingabe] erneut ausführen. Das Kommando history zeigt alle im Verlauf gespeicherten Befehle an.

Allerdings sehen Sie dort nicht die Ausgaben der Kommandos. Möchten Sie diese speichern, benötigen Sie das Programm script, das eine Shell-Sitzung protokolliert und alle Befehle und deren Ausgaben in einer Datei speichert.

Geben Sie

script

ein, um mit der Aufzeichnung zu beginnen. Das Tool startet eine neue Shell und informiert Sie darüber, dass es alle Befehle und deren Ausgaben in die Datei typescript im aktuellen Verzeichnis schreibt. Um die Aufzeichnung zu beenden, verlassen Sie die neu gestartetet Shell mit exit oder [Strg-D]. Auch auf diesen Befehl hin gibt script eine kurze Information aus (Abbildung 1).

Abb. 1: Mit "script" schreiben Sie Befehle und deren Ausgaben in eine Datei.

Wenn Sie die Protokolldatei typescript nun mit dem Betrachter less öffnen, erleben Sie eine Enttäuschung, falls Sie während der aufgezeichneten Sitzung einen Befehl wie ls mit farbiger Ausgabe aufgerufen haben. In der Datei typescript stehen nämlich die so genannten Escape-Sequenzen, mit denen ls Dateien unterschiedlichen Typs einfärbt. Der Inhalt des Protokolls ist so kaum lesbar. Um entspannt in der Datei zu stöbern, öffnen Sie diese besser mit dem Anzeigeprogramm more, das nicht nur so heißt wie die DOS-Anwendung, sondern sich auch genauso verhält.

Geben Sie

more typescript

ein. Mit der Leertaste blättern Sie zur nächsten Seite, [Eingabe] scrollt zeilenweise vorwärts. Sobald Sie das Ende der Datei erreicht haben, beendet sich more automatisch.

Tipp: Zeitgesteuerte Befehle mit "at"

Regelmäßig zu erledigende Aufgaben, wie das Aufräumen im temporären Verzeichnis /tmp, erledigt unter Linux der Dienst cron [1]. Wenn Sie aber einen Befehl nur einmal zu einem bestimmten Zeitpunkt ausführen wollen, eignet sich at besser. Mit dem Programm können Sie das System beispielsweise anweisen, eine große Kopieraktion auf eine externe Festplatte erst um 23:00 Uhr zu starten, wenn Sie bereits im Bett liegen und der Rechner sonst nichts zu tun hat.

Aufgaben mit at zu planen, ist nicht besonders intuitiv, gelingt aber ganz einfach, wenn man erst einmal weiß, wie es geht: Sie starten das Tool mit dem Kommando at, gefolgt von dem gewünschten Zeitpunkt. Um beispielsweise einen Befehl auf 23:00 Uhr zu legen, lautet das Kommando

at 23:00

Das Programm zeigt eine eigene Eingabeaufforderung an: Anstelle des normalen Prompts steht nun at> am Anfang der Zeile. Geben Sie dort den Befehl ein, den Sie ausführen wollen. Dabei müssen Sie allerdings auf die bequeme automatische Vervollständigung von Pfadnamen verzichten: Statt sich mit [Tab] Tipparbeit zu sparen, geben Sie Pfadnamen von Hand ein. Mit einem Druck auf [Eingabe] schließen Sie den Befehl ab und verlassen danach die at-Shell mit [Strg-D].

Einmal geplante Aufgaben verwaltet der Dienst atd: Er sorgt dafür, dass sie pünktlich erledigt werden. Die so genannten at-Jobs zeigen Sie mit dem Kommando atq an, wobei das q für queue (Warteschlange) steht (Abbildung 2). Als normaler Nutzer sehen Sie nur die eigenen Aufgaben, dem Administrator zeigt atq die Jobs aller Benutzer an.

In der ersten Spalte steht die Job-Nummer, die Sie benötigen, um eine Aufgabe zu löschen. Das erledigen Sie mit dem Kommando

atrm xx

xx ersetzen Sie durch die Nummer der Aufgabe, die Sie löschen wollen.

at können Sie nicht nur Jobs für den aktuellen Tag übergeben. Möchten Sie einen Befehl in drei Tagen um 14:00 Uhr starten, teilen Sie das at mit dem Kommando

at 14:00 + 3 days

mit. Außer Tagen kennt at auch Stunden (hours), Wochen (weeks) und morgen (tomorrow). Um eine Aufgabe für 9:00 Uhr am nächsten Tag zu planen, lautet der richtige Befehl

at 9:00 tomorrow

All das funktioniert nur, wenn der Rechner zur eingestellten Zeit auch eingeschaltet ist.

Abb. 2: Der Befehl "atq" zeigt die Aufgaben in der Warteschlange an.

Tipp: Screenshots auf Kommando

Im Paket ImageMagick, das Kommandozeilenprogramme für die Bildbearbeitung mitbringt, finden Sie neben convert, welches das Guru-Training ab Seite 89 vorstellt, auch einen Screenshot-Spezialisten. Das Tool heißt import, und die einfachste Form des Aufrufs lautet

import screenshot.png

Der Mauszeiger verwandelt sich daraufhin in ein Kreuz, und sobald Sie ein Fenster anklicken, speichert import ein Bild davon mit dem Namen screenshot.png im aktuellen Verzeichnis. Ebenso einfach fotografieren Sie nur einen Ausschnitt des Bildschirms: Geben Sie wieder den oben genannten Befehl ein und ziehen Sie mit dem Fadenkreuz-Mauszeiger einen Rahmen um den Bereich, den Sie als Screenshot speichern wollen. Sobald Sie die Maustaste loslassen, erzeugt import das Bildschirmfoto (Abbildung 3).

Abb. 3: Mit "import" können Sie durch Aufziehen eines Bereichs einen Ausschnitt des Desktops fotografieren, hier ein Shell-Fenster und einen Teil der KDE-Startleiste.

Um ein Bild des gesamten Desktops aufzunehmen, verwenden Sie den Befehl

import -window root screenshot.png

Das so genannte Root-Window steht für das erste Fenster, das beim Start der grafischen Oberfläche geöffnet wird, also den Desktop selbst, obwohl dieser keinen Fensterrahmen hat und sie ihn nicht verschieben können. Auch andere Fenster lassen sich mit dem Aufrufparameter -window fotografieren: Dazu geben Sie anstelle von root den Fensternamen ein, der in der Titelleiste steht. Enthält er Leerzeichen, setzen Sie ihn in Anführungszeichen. Alternativ verwenden Sie statt des Fensternamens die eindeutige Nummer des Fensters, die Window-ID. Wie Sie diese herausfinden, verrät der nächste Tipp.

Tipp: Fenster-ID herausfinden

Die grafische Oberfläche von Linux gibt jedem Fenster eine eindeutige Nummer. Welche das ist, erfahren Sie mit xwininfo. Sobald Sie den Befehl eingeben, verwandelt sich der Mauszeiger in ein Kreuz, mit dem Sie das gewünschte Fenster anklicken. Die Ausgabe ist ziemlich lang und enthält unter anderem auch Informationen zur Größe des Fensters. Die eindeutige Nummer steht in der ersten Zeile hinter xwininfo: Window id: (Abbildung 4).

Abb. 4: Das Programm "xwininfo" zeigt unter anderem die eindeutige Nummer eines Fensters an.

Tipp: Zeitverzögerte Bildschirmfotos

Das Tool import hat einen Nachteil: Nach seinem Aufruf wechselt es sofort in den Aufnahmemodus. Es ist daher nicht möglich, beispielsweise ein Programm mit einem ausgeklappten Menü zu fotografieren oder einen Bildschirmschoner. Um ein solches Bild zu erhalten, starten Sie import in Kombination mit dem Befehl sleep. Nach Eingabe von

sleep 10 ; import -window root bild.png

haben Sie zehn Sekunden Zeit, den Desktop fotogen herzurichten. Erst nachdem sleep zehn Sekunden lang nichts getan hat, erzeugt import den Screenshot.

Tipp: "grep"-Ausgabe mit Zeilennummern

Mit grep [2], gefolgt von einem Suchbegriff und einem Dateinamen, suchen Sie nach einer Zeichenkette. So zeigt

grep Linux test.txt

alle Zeilen der Datei test.txt an, in denen das Wort Linux vorkommt. Auf Wunsch blendet grep auch die Zeilennummern der Fundstellen ein: Das erreichen Sie mit dem Aufrufparameter -n (für number) (Abbildung 5).

Abb. 5: Mit dem Parameter "-n" aufgerufen, zeigt "grep" die Zeilennummern der Fundstellen an.

Tipp: Groß- und Kleinschreibung ignorieren

Findet grep einen Begriff nicht, obwohl Sie genau wissen, dass er in der durchsuchten Dateie steht, kann das daran liegen, dass Sie dort eine andere Schreibweise verwendet haben als im grep-Aufruf. Das Tool unterscheidet standardmäßig zwischen Groß- und Kleinschreibung: Wenn Sie mit Grep nach EasyLinux suchen, findet es zwar diesen Begriff, nicht aber www.easylinux.de. Damit der Suchspezialist sich nicht um Groß- und Kleinbuchstaben kümmert, rufen Sie ihn mit dem Parameter -i (für ignore) auf. (amü)

Infos
[1] Cron-Artikel: Christian Baun, "Mit der Zeit gehen", EasyLinux 04/2004, S. 52 ff., http://www.easylinux.de/2004/04/052-cron/
[2] Guru-Training zu "grep": Elisabeth Bauer, "Text fischen", EasyLinux 10/2003, S. 74 f., http://www.easylinux.de/2003/10/074-grep/

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 | © 2021 COMPUTEC MEDIA GmbH | Last modified: 2008-11-05 16:56

[Linux-Magazin] [LinuxUser] [Linux-Community]