Aus EasyLinux 02/2014

Know-how für die Kommandozeile

Shell-Tipps

Erfahrene Linux-Nutzer schwören auf flexible Kommandozeilentools, mit denen sie manche Aufgabe schneller bewältigen als in grafischen Programmen. Wir stellen interessante Anwendungen und Aufrufparameter vor, um auch Einsteiger zu einem Ausflug in die Shell zu ermutigen.

Tipp: Besser tippen auf der Bash: Tab-Completion

Die Bash (Bourne-again shell) ist unter Linux die Standard-Shell. Sie interpretiert die Kommandos, die Sie eingeben, führt sie aus und zeigt das Ergebnis an. Viele Befehlseingaben können Sie abkürzen, indem Sie die Tabulatortaste zu Hilfe nehmen. Um beispielsweise auf der Shell ins Verzeichnis /etc zu wechseln, reicht es, wenn Sie cd /e tippen und dann [Tab] drücken. Da kein zweites Verzeichnis existiert, das mit /e beginnt, ist die Eingabe nach diesen zwei Zeichen bereits eindeutig, und die Bash vervollständigt den Ordnernamen. Am Prompt erscheint cd /etc, und Sie können das Kommando mit [Eingabe] absenden. Ist das Kommando beim Drücken der Taste [Tab] nicht eindeutig, ertönt ein Piepton. Wenn Sie jetzt nochmals [Tab] drücken, listet die Bash alle Möglichkeiten auf (Abbildung 1).

Abbildung 1: Der Befehl "cd /", gefolgt von <code>Tab</code>,<code>Tab</code>, zeigt alle Verzeichnisse unterhalb von "/" an. Nach "cd /m" und <code>Tab</code>,<code>Tab</code> schlägt die Shell den Wechsel nach "/media" oder "/mnt" vor.
Abbildung 1: Der Befehl „cd /“, gefolgt von Tab,Tab, zeigt alle Verzeichnisse unterhalb von „/“ an. Nach „cd /m“ und Tab,Tab schlägt die Shell den Wechsel nach „/media“ oder „/mnt“ vor.

Dieses Feature nennt man Tab-Completion (von engl. „to complete“ = „vervollständigen“). Die Befehlszeilenergänzung funktioniert nicht nur bei Datei- und Verzeichnisnamen, sondern auch für Programme und Umgebungsvariablen. Ist das Zusatzpaket bash-completion installiert, klappt es sogar mit Aufrufparametern von Shell-Kommandos (siehe nächster Tipp) sowie Host- und Benutzernamen. Oft genutzte Umgebungsvariablen sind HOME (der Pfad zum Home-Verzeichnis) und PATH (Suchpfad für die Shell, der die Befehlseingabe erleichtert [1]). Die Werte aller Variablen zeigen Sie mit dem Befehl printenv an (Abbildung 2), den einer einzelnen lesen Sie mit echo aus, z. B. echo $SHELL. (Beachten Sie das Dollarzeichen vor dem Variablennamen.)

Abbildung 2: Mit dem Befehl "printenv" (was so viel heißt wie "drucke die Umgebungseinstellungen am Bildschirm aus") zeigen Sie alle für den Benutzer gesetzten Umgebungsvariablen.
Abbildung 2: Mit dem Befehl „printenv“ (was so viel heißt wie „drucke die Umgebungseinstellungen am Bildschirm aus“) zeigen Sie alle für den Benutzer gesetzten Umgebungsvariablen.

Wie kommt jetzt die Tab-Completion zum Zug? Angenommen, Sie erinnern sich, dass es da eine bestimmte Umgebungsvariable gibt, die mit dem Buchstaben P beginnt. Tippen Sie also echo $P, gefolgt von [Tab],[Tab]:

$ echo $P
$PATH        $PPID     $PS2     $PWD
$PIPESTATUS  $PS1      $PS4

Sie sehen nun alle möglichen Varianten und können die Eingabe wie gezeigt vervollständigen.

Tipp: Tab-Completion für Aufrufoptionen

Aktuelle Versionen der Bash vervollständigen mit der Tabulatortaste auch Namen von Programmen und kennen sogar deren Aufrufoptionen. Schauen Sie sich dazu die Shell-Sitzung aus Abbildung 3 an. Der Benutzer tippt zuerst apt- und drückt [Tab],[Tab], und die Bash zeigt nun alle Befehle an, deren Namen mit der Zeichenkette beginnen. Die Entscheidung fällt auf apt-cache, und da der Anwender unsicher ist, welchen Aufrufparameter er benötigt, betätigt er wieder zweimal [Tab]. Insgesamt 17 Optionen sind in Verbindung mit apt-cache möglich, und der Benutzer wählt apt-cache show, um die Paketinformationen zu einem oder mehreren Paketen anzuzeigen. Er erinnert sich, dass das Paket mit dem Namen core beginnt und tippt die vier Buchstaben nach show ein. [Tab],[Tab] bestätigt, dass es zwei Pakete gibt, die passen: corekeeper und coreutils. Er tippt das U, gefolgt von [Tab],[Tab], ist am Ziel und schickt alles mit [Eingabe] ab.

Abbildung 3: Hier sehen Sie eine typische Shell-Sitzung, die mit Tab-Completion Aufrufparameter und Paketnamen vervollständigt.
Abbildung 3: Hier sehen Sie eine typische Shell-Sitzung, die mit Tab-Completion Aufrufparameter und Paketnamen vervollständigt.

Unter Ubuntu funktioniert dieser Tipp auf Anhieb, OpenSuse-Anwender müssen zunächst das Paket bash-completion nachinstallieren – das gelingt mit folgendem Kommando:

sudo zypper in bash-completion

Alle bereits laufenden Shells unterstützen das neue Feature noch nicht – schließen Sie darum alle Terminalfenster und öffnen Sie diese erneut, um Vorschläge für Aufrufparameter zu erhalten.

Tipp: Piepen für die Bash abschalten

Wie im vorigen Tipp beschrieben, gibt die Shell einen Piepston aus, wenn die Tab-Completion mehrere Angebote zur Vervollständigung macht. Finden Sie das Piepsen störend, können Sie es in der Konfigurationsdatei der Shell abschalten. Dazu bearbeiten Sie die versteckte Datei ~/.bashrc aus Ihrem Home-Verzeichnis in einem Texteditor:

  1. Öffnen Sie den Schnellstarter mit [Alt]+[F2]. Das klappt unter allen gängigen Desktopumgebungen, also Gnome, KDE, Xfce und Cinnamon bzw. Mate.
  2. Geben Sie den Befehl gedit ~/.bashrc ein. Wenn Sie anstelle von GEdit einen anderen Texteditor bevorzugen, ersetzen Sie den Programmnamen im Aufruf, beispielsweise durch kate, kwrite oder Ähnliches.
  3. Tragen Sie an einer beliebigen Stelle in der Datei die folgenden beiden Zeilen ein:

    # Piepsen der Bash abschalten
    bind "set bell-style none"
    
  4. Speichern Sie die Änderungen und verlassen Sie den Editor. Alle ab sofort neu gestarteten Shells werten den Eintrag aus, die bereits laufenden aber nicht. Um auch dort die Geräusche abzuschalten, können Sie die Shells mit

    source ~/.bashrc
    

veranlassen, die eben veränderte Datei neu einzulesen.

In den auf diese Weise stumm geschalteten Shells verschwindet das lästige Gepiepse. Möchten Sie es zu einem späteren Zeitpunkt wieder aktivieren, bearbeiten Sie die Einrichtungsdatei wieder, wie in der Schritt-für-Schritt-Anleitung gezeigt. Setzen Sie nun vor die Zeile, die mit bind beginnt ein Rautezeichen, um sie auszukommentieren und damit zu deaktivieren. Alternativ können Sie die Zeile auch ganz löschen. Kommentarzeichen haben allerdings den Vorteil, dass man sie schnell wieder entfernen und damit eine Option wieder freischalten kann. Um nur in einer einzelnen Shell die Signaltöne zu reaktivieren, geben Sie dort das Kommando

bind "set bell-style audible"

ein: „audible“ heißt „hörbar“.

Tipp: Bash: Completion ohne „Doppel-Tab“

Wie Sie in Tipp 1 erfahren haben, zeigt die Bash die Möglichkeiten zur Vervollständigung an, wenn Sie die Tabulatortaste ein zweites Mal betätigen. Falls Sie den zweiten Tastendruck einsparen möchten, können Sie mit einem Eintrag in der Konfigurationsdatei dafür sorgen, dass einmaliges Drücken von [Tab] reicht. Bearbeiten Sie dazu wie im vorigen Tipp gezeigt die Datei ~/.bashrc in einem Texteditor und fügen Sie die folgende Zeile hinzu:

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 3 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
KAUFEN
EasyLinux 02/2014 KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland

Hinterlasse einen Kommentar

  E-Mail Benachrichtigung  
Benachrichtige mich zu: