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

Know-how für die Kommandozeile

Shell-Tipps

von Andrea Müller


Linux bietet nicht nur den grafischen Komfort von KDE, auch auf der Kommandozeile lässt es sich bequem arbeiten. Wir zeigen die besten Tricks, die Ihnen helfen, Kommandozeilenprogramme wie vim und den Midnight Commander noch besser zu nutzen.

Tipp: Midnight Commander in schwarz-weiß

Gefällt Ihnen der blaue Hintergrund des Norton-Commander-Clones Midnight Commander nicht, lässt sich das Programm auch in klassischer schwarz-weiß-Optik betreiben: Starten Sie den Datei-Manager für die Kommandozeile dazu mit dem Befehl mc -b. Das Programm präsentiert sich daraufhin mit weißer Schrift auf schwarzem Hintergrund (Abbildung 1).

Abb. 1: Einen schwarz-weißen Midnight Commander starten Sie mit dem Befehl "mc -b".

Tipp: Zeilen in vim zusammenfügen

Der Text-Editor vim gilt für Linux-Novizen als kryptisch zu bedienen, bietet aber nach ein wenig Einarbeitungszeit viele Komfortfunktionen. Für Windows-Umsteiger sind die verschiedenen Modi des Editors verwirrend. Wenn Sie ihn gestartet haben, müssen Sie zunächst [I] drücken, um in den Einfügemodus zu gelangen. In der Statuszeile am unteren Rand des vim-Fensters erscheint daraufhin der Text EINFÜGEN. Geben Sie jetzt ebenso wie in KWrite den Text ein. Sie speichern ihn, indem Sie den Einfügemodus durch Druck auf [Esc] verlassen und im Befehlsmodus [:w] (w für write=schreiben) drücken. Diesen Befehl sehen Sie auch unten links im vim-Fenster. Schicken Sie ihn mit [Eingabe] ab und kurz darauf sehen Sie ebenfalls links unten im Fenster die Meldung Dateiname xL, xC geschrieben. Anstelle der beiden x stehen Zahlen, die verraten, aus wie vielen Zeilen (Lines) und Zeichen (Chars) die Datei besteht.

Zeilenumbrüche entfernen Sie in vim besonders komfortabel: Verlassen Sie zunächst den Einfügemodus mit einem Druck auf [Esc]. Bewegen Sie den Cursor mit den Pfeiltasten in die erste der beiden Zeilen, die Sie zu einer zusammenfügen wollen, und drücken Sie [Umschalt-J]. Mehrere Zeilen zusammenzufassen, gelingt ebenso einfach. Um etwa den Inhalt der aktuellen Zeile und der zwei folgenden in eine zu schreiben, drücken Sie [3] und danach [Umschalt-J].

Bleibt nur eine Frage offen: Wenn [3], [Umschalt-J] drei Zeilen zu einer zusammenfasst und [Umschalt-J] dasselbe für zwei Zeilen erledigt, was passiert dann beim Druck von [1], [Umschalt-J] und [2], [Umschalt-J]? Die beiden Tastenkombinationen fügen ebenso wie [Umschalt-J] zwei Zeilen zusammen. Probieren Sie es einfach aus -- mit [U] machen Sie die Aktion im Handumdrehen rückgängig.

Tipp: Zeilenlänge festlegen

In der Standardeinstellung umbricht vim Zeilen nicht, sobald sie eine bestimmte Länge erreichen. Sie müssen den Umbruch mit der Eingabetaste selbst setzen, um keine Endloszeilen zu erzeugen. Diese Voreinstellung ist sinnvoll, da viele Linux-Nutzer vim oft zum Bearbeiten von Konfigurationsdateien verwenden. Sie enthalten bisweilen sehr lange Zeilen. Ein automatischer Zeilenumbruch hätte dort fatale Folgen: Die Anwendungen würden die Anweisungen in den Konfigurationsdateien nicht verstehen und nicht mehr wie erwartet funktionieren.

Wenn Sie in vim jedoch einen normalen Text schreiben, sorgen Sie mit nur einem Kommando dafür, dass das Programm automatisch Zeilenumbrüche einfügt. Verlassen Sie den Einfügemodus über [Esc], geben Sie :set tw=80 ein und drücken Sie die Eingabetaste. tw ist die Abkürzung für textwidth (Textbreite), und die Zahl dahinter bestimmt, nach wie vielen Zeichen vim einen Zeilenumbruch einfügt.

Tipp: Absätze neu umbrechen

Wenn Sie schon einige Absätze geschrieben haben, bevor Sie den automatischen Zeilenumbruch aktivieren, ist es kein Problem, auch den schon getippten Text mit der eingestellten Zeilenlänge neu zu umbrechen. Verlassen Sie auch dafür zunächst den Einfügemodus und bewegen Sie den Cursor in den Absatz, den Sie neu umbrechen wollen. [V], [I], [P] markiert den Absatz, [G], [Q] umbricht ihn mit der neuen Zeilenlänge.

Tipp: Paketzugehörigkeit herausfinden

Wenn Sie einen Befehl von der Kommandozeile aufrufen und dabei die Autovervollständigung via Tabulatortaste nutzen, um sich Tipparbeit zu ersparen, bietet Ihnen die Shell eine Auswahl an, wenn es mehrere Vervollständigungsmöglichkeiten gibt. Dabei finden Sie eventuell ein Programm, dessen Namen Sie nicht kennen und der auch nicht verrät, wozu dieses Programm gut sein könnte.

Möchten Sie beispielsweise den Browser Mozilla starten und geben mo gefolgt von einem Druck auf [Tab] ein, zeigt die Shell alle Kommandos, deren Name mit der Zeichenfolge mo beginnt. Neben guten Bekannten wie mount und more finden Sie dort auch eher unbekannte Anwendungen wie mogrify. Wenn Sie wissen möchten, mit welchem Paket die Datei auf den Rechner gekommen ist, finden Sie das mit dem Befehl rpm -qf /pfad/zu/programmname heraus. Einziges Problem: Sie wissen noch gar nicht, in welchem Verzeichnis mogrify liegt. Sie erfahren es mit der Eingabe von which mogrify, das /usr/bin/mogrify ausgibt. Nun verrät

rpm -qf /usr/bin/mogrify

dass die Anwendung zum Paket ImageMagick gehört, also eines der vielen Bildbearbeitungs-Tools für die Kommandozeile ist.

Die Bash ist jedoch so flexibel, dass Sie gar keine zwei Aufrufe benötigen, um zuerst den Speicherort des Programms und danach die Paketzugehörigkeit herauszufinden. Mit einer speziellen Schreibweise erreichen Sie, dass ein Befehl die Ausgabe eines anderen Programms als Argument benutzt. Um das Wissen des Programmsuchers which direkt an den rpm-Befehl zu übergeben, benutzen Sie das Kommando

rpm -qf $(which mogrify)

Durch das Dollar-Zeichen und die Klammern ersetzt die Shell $(which mogrify) durch die Ausgabe des which-Aufrufs. Wie es funktioniert, können Sie leicht mit dem Kommando echo testen, das nur dazu dient, Text auszugeben. echo which ls liefert which ls zurück. Geben Sie stattdessen

echo $(which ls)

ein, führt die Shell erst den Befehl which ls aus und übergibt echo den Pfad zu ls. Sie erhalten als Ausgabe /bin/ls (Abbildung 2).

Abb. 2: Mit der Schreibweise "$(befehl)" übergeben Sie einem Programm die Ausgabe eines Befehls.

Tipp: Nur bestimmte Zeilen einer Datei ausgeben

Mit den Kommandos head und tail geben Sie die ersten oder letzten zehn Zeilen einer Textdatei aus. Der Aufruf lautet head datei.txt bzw. tail datei.txt. Beide Befehle kennen den Aufrufparameter -n gefolgt von einer Zahl. So gibt

tail -n 30 test.txt

die letzten 30 Zeilen von test.txt aus. Eine Möglichkeit, nur alle Zeilen ab einer bestimmten auszugeben, scheint nicht vorgesehen. Es funktioniert jedoch, wenn Sie vor die Zahl ein Plus-Zeichen (+) setzen. So zeigt das Kommando

tail -n +3 test.txt

den Inhalt der Datei test.txt von Zeile 3 bis zum Ende an (Abbildung 3).

Abb. 3: "tail" gibt auf Wunsch auch den Inhalt einer Datei ab einer bestimmten Zeile aus.

Tipp: Länge eines Textes ermitteln

Mit dem Kommando wc test.txt erfahren Sie, wie viele Zeilen, Wörter und Zeichen in der Datei test.txt stehen. Die Ausgabe könnte so aussehen:

9      16      65 test.txt

und bedeutet, dass die Datei aus neun Zeilen, 16 Wörtern und 65 Zeichen besteht. wc liest jedoch nicht nur direkt aus einer Datei, sondern auch von der Standardeingabe, also aus dem Kommandozeilenfenster, in das Sie Befehle eingeben. Das probieren Sie am einfachsten aus, indem Sie wc aufrufen und dann ein wenig Text, sogar mit Zeilenumbrüchen eingeben. Sobald Sie am Anfang einer neuen Zeile [Strg-D] drücken, präsentiert das Programm die Zusammenfassung und verrät, wie viele Zeichen Sie eingegeben haben (Abbildung 4). (amü)

Abb. 4: Mit "wc" zählen Sie die Anzahl der Zeilen, Wörter und Zeichen in einer Textdatei oder der Standardeingabe.
Suse Tipp: Hardware-Informationen mit "hwinfo"

Suse-Linux-Nutzer loben die Distribution besonders oft für die gute Hardware-Erkennung, die Linux-Neulingen den Einstieg erleichtert. Im installierten System erfahren Sie mit dem Kommando hwinfo sehr viel über die eingebauten und angeschlossenen Geräte. Das Programm liegt im Verzeichnis /usr/sbin, das nicht zum Suchpfad eines normalen Benutzers gehört. Sie dürfen es zwar ohne Administratorrechte starten, müssen es aber mit dem vollen Pfad aufrufen. Wenn Sie den Befehl ohne Parameter starten, liefert er eine komplette Liste der erkannten Hardware. Dort die Komponente zu finden, die einen interessiert, ist nicht leicht. Deshalb können Sie dem Befehl den Namen der Kategorie übergeben, zu der Sie Informationen benötigen. Mit /usr/sbin/hwinfo --cpu gibt das Programm Details zum Prozessor aus.

Möchten Sie nur den Modellnamen einer Komponente wissen, bzw. welches Gerät Suse Linux erkennt, reicht meistens die Kurzausgabe aus. Diesen Modus aktivieren Sie mit dem zusätzlichen Aufrufparameter --short. So zeigt /usr/sbin/hwinfo --ide --short, welche Geräte an den IDE-Controllern hängen, in Abbildung 5 eine Festplatte von Western Digital -- das sehen Sie an der Buchstabenfolge WDC im Modellnamen -- und ein DVD-Laufwerk.

Weitere Geräteklassen, die hwinfo überprüft, sind --usb-ctrl (USB-Controller), --monitor (Bildschirm), --pci (PCI-Komponenten, wie Grafik- und Soundkarte), --printer (Drucker) und --netcard (Netzwerkkarte). Welche Komponenten hwinfo noch kennt, verrät die Handbuchseite der Anwendung, die Sie mit man hwinfo anzeigen.

Abb. 5: Unter Suse Linux verrät "hwinfo", welche Hardware im Rechner steckt.

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 | © 2017 COMPUTEC MEDIA GmbH | Last modified: 2007-04-05 11:10

Nutzungsbasierte Onlinewerbung

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