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

Know-how für die Kommandozeile

Shell-Tipps

von Andrea Müller


Texte bearbeiten und Dateien verwalten gelingt in der Shell manchmal effizienter als mit grafischen Programmen. Diesen Monat verraten wir einige Kniffe zum Datei-Manager Midnight Commander und den Textbearbeitungs-Tools "sort" und "cut".

Tipp: Mehrere Dateien in "mc" markieren

Der Datei-Manager Midnight Commander, den Sie mit dem Befehl mc starten, hat nicht zuletzt deshalb so viele Freunde, weil viele Benutzer sich an die Tastenkürzel zum Verschieben, Löschen und Kopieren noch vom Norton Commander her erinnern. Auch wer weder den Midnight Commander noch das Vorbild kennt, findet sich schnell zurecht, denn das Programm zeigt am unteren Fensterrand die wichtigsten Tastaturbefehle an. Allerdings verrät der Datei-Manager dort nicht, wie man mehrere Dateien und Ordner markiert. Das ereichen Sie mit der Einfügetaste: Die Anwendung färbt die so markierten Dateien und Verzeichnisse gelb und wendet eine danach aufgerufene Aktion, wie etwa kopieren, auf alle an (Abbildung 1).

Haben Sie versehentlich eine falsche Datei markiert, machen Sie das mit einem erneuten Druck auf [Einfg] rückgängig.

Abb. 1: Mit der Einfügetaste markieren Sie mehrere Dateien und Verzeichnisse im Midnight Commander.

Tipp: Markierung in "mc" umkehren

Möchten Sie fast alle Dateien eines Ordners bis auf einige wenige kopieren, gibt es eine elegantere Möglichkeit, als jede einzeln mit [Einfg] zu markieren. Markieren Sie nur die Dateien, die Sie eigentlich nicht kopieren wollen, und kehren Sie danach die Markierung mit [Alt-Umschalt-+] um.

Tipp: Verzeichnisbaum im Midnight Commander

Wer die Zweifensteransicht des Midnight Commander nicht mag, aber trotzdem einen Datei-Manager für den Textmodus benötigt, muss sich nicht nach einer Alternative umsehen. Das Programm zeigt auf Wunsch in einer Fensterhälfte einen Verzeichnisbaum an. Um einen in der linken Fensterhälfte einzublenden, klicken Sie auf Links im Menü und wählen dort den Eintrag Baum.

Wenn Sie nun mit den Pfeiltasten zu einem Ordner navigieren und [Eingabe] drücken, klappen die Unterverzeichnisse aus, und Sie sehen den Inhalt des Ordners in der rechten Fensterhälfte (Abbildung 2).

Abb. 2: Der Midnight Commander kann neben der klassischen Zweifensteransicht auch einen Verzeichnisbaum anzeigen.

Tipp: Leerzeilen bei "cat" ausfiltern

Der Befehl cat, gefolgt von einem Dateinamen eignet sich gut, um schnell den Inhalt einer Datei im Kommandozeilenfenster auszugeben. Normalerweise ist man dabei nur am Text interessiert: Kommen in einer Datei mehrere aufeinander folgende Leerzeilen vor, macht das die Ausgabe nur unübersichtlich. Mit dem Aufrufparameter -s schaffen Sie Abhilfe. So fasst

cat -s text.txt

alle aufeinander folgenden Leerzeilen in der Datei text.txt zu einer zusammen (Abbildung 3).

Dieses Kunststück beherrscht übrigens nicht nur cat, sondern auch der Dateibetrachter less. Starten Sie das Programm mit dem Parameter -s, lässt es wie cat von aufeinander folgenden Leerzeilen alle bis auf eine unter den Tisch fallen.

Abb. 3: Mit dem Aufrufparameter "-s" vereinen "less" und "cat" mehrere aufeinander folgende Leerzeilen zu einer.

Tipp: Schnelle Navigation in "less"

Wenn Sie mit less eine sehr große Textdatei lesen, ist es umständlich mit [Bild auf] und [Bild ab] seitenweise zu blättern, um an den Dateianfang oder das Ende zu gelangen. Viel schneller erreichen Sie die gewünschte Position mit dem Kleiner- (<) und dem Größerzeichen (>). Das erstgenannte bringt Sie an den Anfang, das andere ans Ende der Datei.

Tipp: Suche in "less"

Der Dateibetrachter less bietet eine praktische Suchfunktion: Eine Vorwärtssuche starten Sie mit der Eingabe von /. Der Schrägstrich erscheint am unteren Fensterrand, und Sie können nun den Suchbegriff eingeben. Mit [Eingabe] springt less zum ersten Treffer. Um zur nächsten Fundstelle zu wechseln, drücken Sie [N].

Möchten Sie eine Datei rückwärts durchsuchen, geben Sie statt des Schrägstrichs ein Fragezeichen und dahinter den Suchbegriff ein. Mit [Umschalt-N] gelangen Sie zum jeweils nächsten Treffer einer Rückwärtssuche.

Abb. 4: Nach einer Suche markiert "less" alle Treffer.

Tipp: Spalten mit "cut" ausschneiden

Wenn Sie eine in Spalten unterteilte Textdatei haben, aus der Sie nur einige Spalten benötigen, ist cut dafür das richtige Werkzeug. Der Befehl

cut -f 1,3 adressen.txt

gibt die erste und dritte Spalte der Datei adressen.txt aus. Sie können nicht nur Spalten durch Komma getrennt, sondern auch einen Bereich eingeben, beispielsweise zeigt cut -f 1-3 adressen.txt die ersten drei Spalten der Datei an. Als Trennzeichen zwischen den Spalten nimmt cut in der Standardeinstellung einen Tabulator an. Sind die Spalten dagegen durch Kommata voneinander getrennt, übergeben Sie dem Programm das Trennzeichen mit dem Parameter -d (für delimiter=Trenner), etwa

cut -d , -f 1,3 adressen.txt

In Textdateien mit Spalten befinden sich oft auch eine oder mehrere Kopfzeilen mit Tabellenüberschriften. Der Aufrufparameter -s unterdrückt die Ausgabe aller Zeilen, in denen das Trennzeichen nicht vorkommt.

Tipp: "sort"-Ausgabe in Datei schreiben

Das Kommando sort, gefolgt von einem Dateinamen, sortiert die Zeilen einer Datei alphabetisch. Das ist beispielsweise praktisch, wenn Sie eine Adressdatei im Textformat pflegen und deren Einträge sortieren wollen. Mit dem Parameter -n aufgerufen, arbeitet sort numerisch und nicht alphabetisch: Bei dieser Sortierreihenfolge kommt eine 9 vor der 10 und nicht umgekehrt, wie es bei alphabetischer Sortierung der Fall wäre.

Meistens will man eine Datei jedoch nicht einfach sortiert ausgeben, sondern das Ergebnis in eine neue Datei schreiben. Dafür müssen Sie die sort-Ausgabe nicht mit > umleiten [1], denn das Programm kennt den Aufrufparameter -o, hinter dem Sie die Datei angeben, die den sortierten Inhalt der Originaldatei enthalten soll. Der Befehl

sort -o neu.txt dokument.txt

schreibt den sortierten Inhalt von dokument.txt in die Datei neu.txt.

Tipp: Dateityp mit "file" herausfinden

Wenn Sie eine Datei mit unbekannter oder gar keiner Endung erhalten, wollen Sie vielleicht erst einmal wissen, um was für einen Dateityp es sich handelt, bevor Sie die Datei öffnen. Das verrät der Befehl

file dateiname

Das Tool verlässt sich beim Ermitteln des Dateityps nicht nur auf die Dateiendung -- Namen sind schließlich Schall und Rauch -- sondern schaut in die Datei hinein und überprüft, ob es dort ein bekanntes Muster findet, das einen Dateityp eindeutig identifiziert.

Dabei verlässt sich das Programm unter anderem auf die Informationen in der Binärdatei /usr/share/misc/magic.mgc beziehungsweise in der Textdatei /usr/share/misc/magic, wenn die Datei mit der Endung .mgc nicht existiert. Ist dort das Muster zu einer Datei nicht hinterlegt und scheitern auch alle anderen Tests, die file durchführt, bezeichnet es den Dateiinhalt als data. Dann müssen Sie bei demjenigen, von dem Sie die Datei erhalten haben, nachfragen, mit welchem Programm sie sich öffnen lässt.

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 [3] verwenden. So erreichen Sie beispielsweise mit dem Aufrufparameter -i, dass grep nicht zwischen Groß- und Kleinbuchstaben unterscheidet. (amü)

Infos
[1] Artikel über Ausgabeumleitungen: Heike Jurzik, "Genial gelenkig", EasyLinux 09/2005, S. 84 ff., http://www.easylinux.de/2005/09/084-umleitungen/
[2] Artikel über Packprogramme: Heike Jurzik, "Eingepackt und abgelegt", EasyLinux 03/2006, S. 88 ff. -- auf der Jahres-CD
[3] Artikel über "grep": Elisabeth Bauer, "Text fischen", EasyLinux 10/2003, S. 74 f., http://www.easylinux.de/2003/10/074-grep/index.html

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: 2008-11-05 16:58

[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]