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

Know-how für die Kommandozeile

Shell-Tipps

von Andrea Müller


Viele Aufgaben erledigen Sie in der Shell mindestens so komfortabel wie mit grafischen Programmen. Ihre Stärken spielt die Kommandozeile bei der Dateiverwaltung und dem Umgang mit Textdateien aus. Wir zeigen, wie Sie find und den Text-Editor mcedit optimal nutzen.

Tipp: Textbausteine in mcedit

Wenn Sie mit Midnight Commander, dem Datei-Manager für die Kommandozeile, arbeiten, benutzen Sie eventuell auch den eingebauten Text-Editor mcedit [1]. Mit der Eingabe von mcedit in eine KDE-Konsole starten Sie das Programm ohne den Datei-Manager. Bearbeiten Sie häufig Textdateien, ist es praktisch, oft benötigte Formulierungen per Tastendruck einzufügen. Das gelingt mit der Makrofunktion des Text-Editors besonders schnell.

Drücken Sie [Strg-R], um den Aufnahmemodus zu starten, und geben Sie den gewünschten Textbaustein ein. Mit einem erneuten Druck auf [Strg-R] schließen Sie die Aufnahme ab. mcedit blendet eine Dialogbox ein, in der Sie einen Shortcut zum Einfügen des Textbausteins vergeben (Abbildung 1). Dort erwartet das Programm nicht etwa eine vollständige Tastenkombination, sondern nur einen einzelnen Buchstaben. Sobald Sie einen eingeben, schließt sich die Dialogbox, und mcedit speichert das Makro. Um einen so definierten Textbaustein an der Cursor-Position einzufügen, drücken Sie [Alt-Buchstabe], also etwa [Alt-S], wenn Sie im Makrodialog ein [S] eingegeben haben.

Die vergebenen Tastenkombinationen sollten Sie sich notieren -- wenn Sie einen schon belegten Shortcut erneut zuweisen, warnt Sie der Text-Editor nicht, sondern überschreibt das alte Makro ohne Nachfrage.

Abb. 1: Mit Hilfe von Makros definieren Sie in "mcedit" Textbausteine, die Sie später per Tastenkombination einfügen.

Tipp: Clevere Dateisuche mit find

Auf der Kommandozeile suchen Sie mit dem Programm find [2] nach Dateien. So fischt der Befehl

find . -name "verein*"

alle Dateien im aktuellen Verzeichnis und dessen Unterordnern heraus, deren Name mit der Zeichenfolge verein beginnt. Er findet also die Word-Datei vereinsmitglieder.doc ebenso wie die Grafik verein_fotoserie_001.jpg. Das Kommando versagt jedoch, wenn die Mitgliederliste mit einem Großbuchstaben beginnt und Vereinsmitglieder.doc heißt. Standardmäßig unterscheidet das Suchwerkzeug nämlich zwischen Groß- und Kleinschreibung. Diese Fehlerquelle umgehen Sie, indem Sie den Parameter -iname statt -name verwenden. Das i steht für insensitive (unempfindlich) und weist find an, keinen Unterschied zwischen Groß- und Kleinbuchstaben zu machen.

find . -iname verein*

findet sowohl die Datei verein.txt als auch Verein.txt.

Tipp: History in vim

Das Programm vim ist ein Klassiker unter den Unix-Text-Editoren. Seine Anwendung gilt für Einsteiger als sperrig, da sie zwischen einem Einfüge- und einem Befehlsmodus unterscheidet. Erst wenn Sie [I] drücken, gelangen Sie in den ersten Modus und können Text eingeben. Um diesen zu speichern, müssen Sie mit [Esc] in den Befehlsmodus wechseln und die Datei mit der Eingabe von :w speichern.

Benutzen Sie vim öfters, können sich einige der Befehle aber trotzdem nicht merken und müssen sie immer wieder nachschlagen, bietet es sich an, die Befehls-History des Text-Editors als Spickzettel zu benutzen. Dort speichert das Programm alle Befehle, die Sie schon einmal eingegeben haben. Um die History zu öffnen, verlassen Sie zunächst den Einfügemodus und geben q: ein. Im unteren Teil des Editor-Fensters zeigt vim daraufhin eine Liste mit den Befehlen an, die Sie schon verwendet haben (Abbildung 2). Mit den Pfeiltasten navigieren Sie durch diese Verlaufsansicht. Wenn Sie sich über dem Befehl befinden, den Sie erneut ausführen möchten, reicht es aus, [Eingabe] zu drücken. Damit schicken Sie den Befehl erneut ab.

Überlegen Sie es sich in letzter Minute anders, schließen Sie das Verlaufsfenster mit dem Kommando :q. Den Verlauf speichert vim übrigens in der versteckten Datei .viminfo in Ihrem Home-Verzeichnis.

Abb. 2: Mit der Eingabe von "q:" öffnen Sie im Editor "vim" das Verlaufsfenster.

Tipp: Automatisches Backup in vim abschalten

Standardmäßig erzeugt der Text-Editor vim eine Sicherungskopie, sobald Sie eine Datei speichern. Diese Kopie liegt im selben Ordner wie der bearbeitete Text und heißt ebenso wie die Originaldatei mit einem angehängten Tilde-Zeichen (~). So nennt vim die Sicherung von datei.txt datei.txt~.

Legen Sie auf die Sicherungskopie keinen Wert, deaktivieren Sie sie einfach: Verlassen Sie dazu mit [Esc] den Einfügemodus und geben Sie :set nobackup ein. Diese Einstellung gilt nur für die aktuelle Sitzung. Sobald Sie vim erneut starten, legt der Text-Editor wieder eine Sicherungskopie beim Speichern an.

Möchten Sie dauerhaft auf die Backup-Funktion verzichten, deaktivieren Sie diese in der versteckte Einstellungsdatei .vimrc in Ihrem Home-Verzeichnis. Schreiben Sie dort die Zeile set nobackup hinein, damit vim grundsätzlich keine Sicherungskopien erzeugt.

Tipp: Datei in vim ungespeichert schließen

Wer eine in vim geöffnete Datei schließen will, ohne sie zu speichern, kommt mit der Eingabe von :q auf keinen grünen Zweig. Anders als grafische Text-Editoren fragt vim nämlich nicht nach, ob Sie die Datei ungespeichert schließen wollen, sondern verweigert einfach den Gehorsam, wenn Sie an der Datei etwas geändert haben.

Mit dem Ausrufungszeichern verleihen Sie Ihren Wünschen Nachdruck: Geben Sie im Befehlsmodus :q! ein, um vim zu beenden, ohne dass das Programm die gerade geöffnete Datei speichert.

Tipp: Funktionen vorübergehend deaktivieren

Im Guru-Training des letzten Monats haben wir beschrieben, wie Sie sich mit Shell-Funktionen viel Tipparbeit ersparen [3]. So packen Sie beispielsweise lange Befehle in eine Funktion, die Sie dann mit dem Funktionsnamen aufrufen. Das richtige Kommando, um eine Funktion kurzfristig lahmzulegen, heißt unset. Haben Sie in der .bashrc eine Funktion namens pack definiert, die den Inhalt des aktuellen Ordners in ein Tar-Archiv verpackt, deaktivieren Sie diese mit dem Befehl unset pack.

Tipp: Verzeichnisgröße ermitteln

Der Befehl du (englisch für disk usage) verrät Ihnen, wie viel Platz die Dateien und Ordner im aktuellen Verzeichnis belegen. Mit den Parametern -s und -h erhalten Sie eine übersichtliche Zusammenfassung. -s steht für summarize (zusammenfassen). Damit zeigt du nur die Gesamtgröße an, listet aber nicht jedes Unterverzeichnis einzeln auf. -h ist eine Abkürzung für human readable (von Menschen lesbar) und veranlasst du, die Größe nicht in Byte, sondern in KByte, MByte oder GByte auszugeben.

Um einzelne Unterordner von der Größenberechnung auszunehmen, kennt das Programm den Parameter --exclude= gefolgt von einem Suchmuster, das auf den Namen des Ordners oder der Dateien passt, die du beim Ermitteln der Größe links liegen lassen soll.

So erfahren Sie mit

du -sh --exclude=music

wie viel Platz die Dateien im aktuellen Ordner und seinen Unterverzeichnissen verschlingen. Die MP3-Sammlung im Ordner music rechnet du dabei jedoch nicht ein.

Da du hinter --exclude keinen Verzeichnis- oder Dateinamen, sondern nur ein Namensmuster erwartet, können Sie auch mit Platzhaltern, so genannten Wildcards, arbeiten:

du -sh --exclude=mu*

schließt ebenfalls den Ordner music von der Größenberechnung aus (Abbildung 3). Das Sternchen (*) steht als Platzhalter für beliebig viele Zeichen, so dass du beim zweiten Befehl auch das Verzeichnis musiksammlung und die Datei muttis_rezeptsammlung.doc ignorieren würde.

Abb. 3: Mit dem Parameter "--exclude" weisen Sie "du" an, bestimmte Ordner zu ignorieren.

Tipp: Freien Platz ausgeben

Der Befehl df zeigt an, wie viel Platz auf den Partitionen Ihres Systems noch frei ist. Möchten Sie nur wissen, wie voll Partitionen mit einem bestimmten Dateisystem sind, verwenden Sie dazu den Parameter -t gefolgt vom Dateisystemtyp. So zeigt das Kommando df -t vfat nur den Füllstand der Partitionen an, die mit dem Windows-Dateisystem VFAT formatiert sind. Das sind nicht nur die Partitionen von Windows 95/98/ME, sondern auch die meisten USB-Massenspeichergeräte werden mit diesem Dateisystem ausgeliefert. Um nur den Füllstand der mit ext3-formatierten Linux-Partitionen anzuzeigen, geben Sie df -t ext3 ein.

Tipp: Verzeichnisse mit cp kopieren

Wenn Sie mit dem Kommando cp * /zielverzeichnis/ den gesamten Inhalt des aktuellen Ordner kopieren wollen, erledigt das Programm diese Aufgabe zwar für Dateien, weigert sich aber, eventuell vorhandene Unterverzeichnisse zu kopieren (Abbildung 4). Damit auch diese gut im Ordner /zielverzeichnis ankommen, benötigen Sie den Aufrufparameter -r (für rekursiv). Der richtige Befehl, um nicht nur Dateien, sondern auch Ordner zu kopieren, lautet also cp -r * /zielverzeichnis/. (amü)

Abb. 4: In der Standardeinstellung weigert sich "cp", Verzeichnisse zu kopieren.
Infos
[1] Artikel über Text-Editoren auf der Kommandozeile: Martin Loschwitz, "Zur Hilfe", EasyLinux 12/2004, S. 80 ff.
[2] find-Artikel: Elisabeth Bauer, "Meisterdetektive", EasyLinux 01/2004, S. 72 f., http://www.easylinux.de/2004/01/072-find/
[3] Artikel über Shell-Funktionen: Elisabeth Bauer, "Schnitzeljagd", EasyLinux 06/2005, S. 85 ff.

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-04-05 11:10

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