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

Know-how für die Kommandozeile

Shell-Tipps

von Andrea Müller


Mächtig und flexibel -- das ist die Kommandozeile unter Linux. Trotz allerlei grafischer Frontends lohnt sich hin und wieder ein Ausflug in die Shell, etwa um komprimierte Dateien zu durchsuchen und Information über installierte Software zu erhalten.

Tipp: "grep" und "less" für komprimierte Dateien

Wenn Sie eine sehr große Textdatei mit gzip oder bzip2 komprimiert haben, müssen Sie diese nicht erst mit gunzip oder bunzip2 entpacken, um einen Blick hinein zu werfen oder sie zu durchsuchen. Mit zless text.gz beziehungsweise bzless text.bz2 zeigen Sie den Inhalt einer komprimierten Datei an. Sie bewegen sich dort genauso wie in less: Mit [Bild ab] und [Bild auf] blättern Sie seitenweise durch die Datei, [Q] beendet den Dateibetrachter.

Für das Durchsuchen komprimierter Dateien gibt es die Kommandos zgrep und bzgrep. Der Befehl

bzgrep Linux text.bz2

durchsucht die mit bzip2 komprimierte Datei text.bz2 nach der Zeichenkette Linux und zeigt die Fundstellen an. Da hinter den Befehlen nur Shell-Skripte stecken, die die Datei entpacken, mit grep durchsuchen und danach die entpackte Datei löschen, können Sie beim Aufruf von bzgrep und zgrep alle grep-Optionen [1] verwenden. So erreichen Sie beispielsweise mit dem Aufrufparameter -i, dass grep nicht zwischen Groß- und Kleinbuchstaben unterscheidet.

Tipp: Dateien beim Kopieren anzeigen

Auf der Kommandozeile kopieren Sie Dateien mit dem Befehl cp. Die einfachste Form des Aufrufs lautet

cp Quelldatei Ziel

Handelt es sich bei Ziel um ein Verzeichnis, kopiert cp die Quelldatei in diesen Ordner. Ist Ziel kein Verzeichnis, legt cp eine Kopie der Originaldatei unter neuem Namen an. Rufen Sie cp ohne Parameter auf, zeigt das Programm nicht, was es tut. Um cp eine ausführliche Ausgabe zu entlocken, verwenden Sie den Parameter -v (für verbose=wortreich). So zeigt das Kommando

cp -v *.txt dokumente/

jede Datei an, die es in den Ordner dokumente kopiert (Abbildung 1). Am Anfang jeder Zeile steht der Name der kopierten Datei, hinter dem --> das Ziel. Das Sternchen (*) ist ein Platzhalter, der für beliebig viele Zeichen steht. Der Befehl kopiert also alle Dateien im aktuellen Verzeichnis, deren Namen auf .txt enden.

Abb. 1: Mit dem Parameter "-v" aufgerufen, zeigt "cp" beim Kopieren die Quell- und Zieldateien an.

Tipp: "cp" auch für Verzeichnisse

Wenn Sie versuchen, mit cp ein Verzeichnis zu kopieren, gelingt das ohne Parameter nicht. Stattdessen meldet cp nur

cp: Verzeichnis »test« ausgelassen

Der Ordner test findet sich danach auch nicht unter dem angegebenen Ziel wieder. Um Verzeichnisse zu kopieren, benötigen Sie den Aufrufparameter -r (für rekursiv). Der richtige Befehl zum Kopieren des Ordners test ins Verzeichnis dokumente lautet

cp -r test dokumente/

Tipp: Nur bestimmte Dateien in "mc" markieren

Der Dateimanager Midnight ist ein komfortables Tool zum Kopieren, Löschen und Verschieben von Dateien auf der Kommandozeile. Die wichtigsten Tastenkürzel zeigt er am unteren Rand des Fensters an, so dass man auch ohne Lesen der Anleitung gleich loslegen kann. Was das Programm jedoch nicht verrät, ist, wie man Dateien, deren Namen einem bestimmten Muster entsprechen, markiert. Das erreichen Sie mit Hilfe eines Filters: Wechseln Sie in den gewünschten Ordner und drücken Sie dort [+]. Im sich öffnenden Dialogfenster definieren Sie einen Filter. Voreingestellt ist ein Sternchen (*), das als Platzhalter für beliebig viele Zeichen steht. Drücken Sie sofort [Eingabe], markiert mc alle Dateien und Ordner im aktuellen Verzeichnis.

Um beispielsweise alle Bilder im PNG-Format zu markieren, geben Sie *.png ein (Abbildung 2), das Muster *.txt erfasst alle Textdokumente. Ein weiterer Platzhalter ist das Fragezeichen, das für genau ein beliebiges Zeichen steht: So markieren Sie mit dem Filter ?aus.txt die Dateien Maus.txt und Haus.txt nicht aber Klaus.txt. Midnight Commander markiert alle Dateien, deren Name dem Muster entspricht, so dass Sie diese in einem Rutsch in einen anderen Ordner verschieben, kopieren oder löschen können. Im Bereich unter der Dateiliste zeigt mc, wie viele Dateien markiert und wie groß diese sind.

Genauso einfach heben Sie eine Markierung wieder auf: Mit [-] öffnen Sie einen Dialog, in dem Sie, wie oben beschrieben, einen Filter definieren. Die Eingabe von * sorgt beispielsweise dafür, dass keine Datei mehr markiert ist.

Abb. 2: Mit [+] definieren Sie einen Filter im Midnight Commander; das Programm markiert alle Dateien, deren Namen dem eingegebenen Muster entsprechen.

Tipp: Alles in einem Ordner markieren

Um den gesamten Inhalt eines Verzeichnisses zu markieren, müssen Sie nicht erst mit [+] den Dialog zur Eingabe eines Filters aufrufen: Viel schneller erreichen Sie dieses Ziel mit [Umschalt-+].

Tipp: Markieren mit der Maus

Die meisten Anwender werden den Dateimanager mc in einer KDE-Konsole auf der grafischen Oberfläche nutzen. Dabei können Sie zur Auswahl von Menüeinträgen und zum Bestätigen von Dialogen auch die Maus benutzen.

Nicht ganz so offensichtlich ist die Möglichkeit, Dateien per Mausklick zu markieren: Das gelingt mit einem Klick der rechten Maustaste. Um die Markierung wieder aufzuheben, genügt ein weiterer Rechtsklick auf die Datei.

Tipp: Copy & Paste im Midnight Commander

Im Midnight Commander scheint es nicht möglich zu sein, Dateinamen mit der Maus zu markieren, um diese dann über die KDE-Zwischenablage in anderen Programmen einzufügen. Mit einem Trick funktioniert es doch: Halten Sie die Umschalttaste gedrückt, klicken Sie mit der linken Maustaste und markieren Sie einen Dateinamen in der Verzeichnisansicht. Diesen können Sie nun über die Zwischenablage oder mit einem Druck der mittleren Maustaste in einer anderen Anwendung, wie etwa dem Texteditor KWrite, einfügen.

Tipp: Konfigurationsdateien mit "rpm" finden

Die meisten Linux-Programme hinterlegen ihre Einstellung in Konfigurationsdateien. Diese bestehen meistens aus reinem Text und enthalten zusätzliche Kommentare, welche die einzelnen Einstellungen erklären. Neben einer systemweit gültigen Konfiguration legen viele grafische Anwendungen zusätzliche Konfigurationsdateien im Home-Verzeichnis der Benutzer ab.

Ein Beispiel dafür ist der KDE-Desktop: Die systemweiten Vorgabeeinstellungen finden Sie im Verzeichnis /usr/share/config (unter Suse Linux im Ordner /opt/kde3/share/config). Sobald Sie ein KDE-Programm das erste Mal starten, kopiert es seine Konfigurationsdatei in den Ordner .kde/share/config in Ihrem Home-Verzeichnis.

Möchten Sie herausfinden, ob ein Programm eine systemweite Konfigurationsdatei mitbringt und wo diese unter Ihrer Distribution liegt, erfahren Sie das am schnellsten mit dem Befehl rpm [2] und den passenden Optionen: So verrät

rpm -qc xpdf

dass der schnelle PDF-Betrachter Xpdf [3] die Konfigurationsdatei /etc/xpdfrc mitbringt. Der Parameter -q steht für query (Abfrage), c weist rpm an, nur die Dateien des XPDF-Pakets aufzulisten, die als Konfigurationsdateien gekennzeichnet sind. Dieses Wissen ist praktisch, wenn man es mit Programmen zu tun hat, bei denen man bestimmte Einstellungen nur dort, nicht aber im Programm direkt vornehmen kann.

Tipp: Dokumentation zu Programmen finden

Genauso schnell wie Konfigurationsdateien finden Sie mit dem rpm-Befehl auch die einer Anwendung beiliegende Dokumentation: Dazu geben Sie rpm -qd paketname ein, also beispielsweise

rpm -qd mc

um zu erfahren, welche Hilfedateien zum Midnight-Commander-Paket gehören (Abbildung 3). Neben den Handbuchseiten, den so genannten Manpages gibt es auch noch die FAQ. In dieser Textdatei stehen die häufig gestellten Fragen zum Programm und natürlich auch die Antworten. Auch in der Datei README, die viele Anwendungen mitbringen, erfährt man oft Tricks zu Programmen, die weder in der Onlinehilfe noch in der Manpage stehen.

Möchten Sie mit dem rpm-Kommando diese Informationen für ein noch nicht installiertes Paket abfragen, reicht es nicht aus, nur den Paketnamen anzugeben: Stattdessen verwenden Sie den vollen Dateinamen und die zusätzliche Option -p. Durch diese weisen Sie rpm an, nicht die Paketdatenbank abzufragen, sondern mit einer Datei zu arbeiten. Der Befehl könnte rpm -qpd /pfad/zum/paket.rpm lauten, wobei Sie /pfad/zum/paket.rpm durch das entsprechende Verzeichnis und den Namen der rpm-Datei ersetzen. (amü)

Abb. 3: Mit dem "rpm"-Befehl und der Option "-qd" erfahren Sie, welche Hilfedateien sich in einem Paket befinden.
Infos
[1] Artikel über "grep": Elisabeth Bauer, "Text fischen", EasyLinux 10/2003, S. 74 f., http://www.easylinux.de/2003/10/074-grep/index.html
[2] Artikel zur Paketverwaltung auf der Kommandozeile: Heike Jurzik, "Packstation auf Kommando", EasyLinux 07/2006, S. 86 f., http://www.easylinux.de/2006/07/086-guru/
[3] XPDF-Artikel: Andrea Müller, "PDF-Express", EasyLinux 12/2005, S. 46 f.

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 17:01

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