Befehlszeilenpuffer und automatische Vervollständigung von Befehlen

Schon nach kurzer Zeit wird es Ihnen wahrscheinlich lästig, den gleichen Befehl immer wieder von neuem eingeben zu müssen.

Den meisten Linux-Benutzern geht es da wohl wie Ihnen. Da Sie in Linux zudem am Shell Prompt mehrere Befehle miteinander verknüpfen können, reicht schon ein kleiner Tippfehler aus, um Ihre Eingabe unbrauchbar zu machen - Sie müssten dann mehrere Zeilen mit Befehlen nochmals eingeben.

Doch auch hier bietet Ihnen Linux eine Lösung: den Befehlszeilenpuffer. Durch einfaches Scrollen mit den Nach-oben- und Nach-unten-Tasten können Sie viele Ihrer zuvor eingegebenen Befehle wieder anzeigen - sogar die Befehle mit Tippfehlern.

Am besten probieren wir diese Funktion wieder anhand eines praktischen Beispiels aus und verwenden hierzu sneakers.txt. Geben Sie am Shell Prompt folgenden Befehl ein:

cat sneakrs.txt
	  

Es passiert nichts, da es die Datei sneakrs.txt gar nicht gibt. Kein Problem. Sobald Sie auf die Nach-oben-Taste drücken, wird der Befehl wieder angezeigt. Nun müssen Sie nur noch mit der Nach-links-Taste den Cursor an die Stelle bewegen, an der das "e" fehlt. Fügen Sie den Buchstaben ein, und drücken Sie wieder die Eingabetaste.

Voilà! Nun wird der Inhalt von sneakers.txt angezeigt.

Standardmäßig werden im Befehlszeilenpuffer von bash bis zu 500 Befehle gespeichert.

TipEin näherer Blick auf die Umgebungsvariable
 

Wenn Sie den Befehl env am Shell Prompt eingeben, sehen Sie die Umgebungsvariable, die die Größe des Befehlszeilenpuffers bestimmt. Der Zeile HISTFILESIZE=500 können Sie entnehmen, dass bash 500 Befehle in einem speziellen Puffer speichert.

Der Befehlszeilenpuffer besteht im Wesentlichen aus einer Datei mit der Bezeichnung .bash_history in unserem Anmeldeverzeichnis. Für die Anzeige dieser Datei gibt es eine Reihe von Möglichkeiten: So können Sie pico, cat, less, more und weitere Befehle verwenden.

Aber sehen Sie sich vor, da die Datei ganz schön lang werden kann.

Zeigen wir den Inhalt der Datei einfach mit more an:

more .bash_history
	  

Um vorzublättern, drücken Sie die Leertaste, zum Zurückblättern dient B, um die Anzeige der Datei zu beenden, drücken Sie die Taste Q.

TipSuchen nach einem zuvor benutzten Befehl
 

Möchten Sie einen Befehl in Ihrem Befehlszeilenpuffer finden, ohne mit den Pfeiltasten oder einem Pager in der Datei mit den gespeicherten Befehlen suchen zu müssen? Verwenden Sie hierzu grep, ein leistungsfähiges Dienstprogramm zum Suchen. So finden Sie einen zuvor benutzten Befehl: Angenommen, Sie suchen einen Befehl, der cat sneak oder so ähnlich lautet. Sie haben diesen Befehl bereits verwendet und glauben, dass er in Ihrem Befehlszeilenpuffer gespeichert sein müsste. Geben Sie am Shell Prompt Folgendes ein:

history | grep sneak
        

Neben dem gerade eingegebenen Befehl wird jetzt auch der gesuchte Befehl auf dem Bildschirm angezeigt, da grep den gesamten Befehlszeilenpuffer durchsucht hat und alle Befehle ausgibt, in denen das Wort "sneak" vorkommt. An späterer Stelle in diesem Kapitel erfahren Sie mehr über grep, wenn wir uns eingehender mit Dienstprogrammen beschäftigen, die beim Lesen von Dateien von Nutzen sind.

Eine weitere praktische Funktion, mit der Sie viel Zeit sparen, besteht in der automatischen Vervollständigung von Eingaben. Wenn Sie nach der Eingabe eines Teils eines Dateinamens, Befehls oder Pfadnamens die Tabulatortaste drücken, ergänzt bash entweder den fehlenden Teil der Datei bzw. des Pfades oder erzeugt einen Ton. Wenn Sie dieses Signal hören, können Sie die Tabulatortaste nochmals drücken, um in einer Liste alle Dateien oder Pfadangaben anzuzeigen, die mit Ihrer bisherigen Angabe übereinstimmen.

Wenn Sie beispielsweise den Befehl updateb vergessen haben, sich aber noch an einen Teil des Befehls erinnern, können Sie sich mit su als Root anmelden und dann am Shell Prompt up eingeben. Wenn Sie nun die Tabulatortaste zweimal drücken, wird auf dem Bildschirm eine Reihe von möglichen Ergänzungen angezeigt, darunter updateb und uptime. Wenn Sie den Buchstaben "d" an up anhängen und nochmals die Tabulatortaste drücken, wird Ihre Eingabe automatisch zum gewünschten Befehl ergänzt.

Selbst wenn Sie am Ende Ihres Arbeitstages den Computer ausschalten, müssen Sie sich nicht mühevoll an den Befehl zum Aktualisieren der Datenbank slocate erinnern, da der Befehl wahrscheinlich im Befehlszeilenpuffer gespeichert ist oder durch Drücken der Tabulatortaste automatisch vervollständigt werden kann (zumindest dann, wenn Sie sich noch an den Anfang des Pfadnamens für den Befehl erinnern können).