Shell History Suggest Box

Wer viel im Terminal arbeitet, möchte oft Befehle erneut ausführen oder leicht abwandeln. Die Bash-History erlaubt das einfache Durchscrollen früherer Kommandos mit den Tasten Hoch/Runter. Mit Links/Rechts lässt sich der Cursor im aktuellen Befehl bewegen, um Änderungen vorzunehmen. Noch schneller geht’s mit der eingebauten Suchfunktion: Strg+R startet eine Rückwärtssuche in der History, während ein erneutes Drücken von Strg+R zum nächsten Treffer springt. Die Einträge landen in der Datei ~/.bash_history und lassen sich auch manuell anzeigen:

$ history
   1  locate terminal | grep svg
   2  xdg-mime query default inode/directory
   3  joe /etc/gnome/defaults.list
   4  ...

Die Bash-History ist praktisch, aber es geht noch komfortabler: Die Z-Shell (zsh, Wikipedia) bietet beispielsweise eine deutlich leistungsfähigere Verlaufssuche. Marcel von zInformatik oder Kushellig haben ihre Vorteile gut beschrieben. Da die meisten jedoch mit der Bash unterwegs sind, lohnt ein Blick auf die BASH History Suggest Box.

### BASH History Suggest Box unter Ubuntu installieren
$ sudo add-apt-repository ppa:ultradvorka/ppa
$ sudo apt-get update
$ sudo apt-get install hh
# BASH History Suggest Box unter Arch Linux installieren
$ pacaur -S hh

Die Installation ist schnell erledigt. Für Ubuntu stellt der Entwickler ein eigenes PPA bereit. Arch-Nutzer greifen wie gewohnt zum AUR. Für andere Distributionen wie Debian oder Linux Mint gibt es Hinweise auf der verlinkten Projektseite auf GitHub. Nach der Installation startet das Tool mit dem Befehl hh. Sinnvoller ist es jedoch, die Integration direkt in der Bash zu verankern:

$ hh --show-configuration >> ~/.bashrc

Dieser Befehl ergänzt die ~/.bashrc um die Konfiguration der Suggest Box. Danach ersetzt Strg+R die klassische Verlaufssuche durch die neue Oberfläche. Im Gegensatz zur normalen Bash-History zeigt die Suggest Box eine Liste aller letzten Befehle auf einmal an.

In der Übersicht navigiert ihr mit Hoch/Runter durch die Liste. Mit Links/Rechts oder Tabulator wird der markierte Eintrag übernommen und kann direkt bearbeitet werden. Beim Tippen filtert die Suggest Box die Liste dynamisch. Auch diese lässt sich dann weiter durchblättern. Wer einzelne Befehle dauerhaft aus der History entfernen möchte, drückt einfach Entf.

guest
17 Kommentare
Inline Feedbacks
Zeige alle Kommentare
Linu74

Hallo Christoph,
ich Glaube hh –show-configuration >> ~/.bashrc ist der falsche Befehl.
Müßte es nicht: hh –show-configuration >> ~/.bash_history oder bei Benutzung der ZSH: hh –show-configuration >> ~/.zsh_history sein?

Wiedermal ein sehr Guter Tip von dir.

Linu74

Linu74

Mein Fehler. Sorry, hast Recht.

Linu74

perdu

Hallo Christoph,
Der Tip ist nett, jedoch muss man bei Ubuntu 12.04 und älteren Versionen etwas tricksen per apt-pinning, da nur die Versionen ab 12.10 unterstützt werden.

Gruss

Perdu

Frank

Hallo perdu,

bei älteren Ubuntu-Versionen probiere einfach die Debian-Version der Suggest Box. Unter Ubuntu oder Mint muss man dann den Befehl

hh –show-configuration >> ~/.bashrc

noch manuell eingeben.

Unter Debian sollte sich ~/.bashrc (außer bei root) bei der Installation automatisch aktualisierten.

Viele Grüße
Frank

Frank

Seit gestern gibt es eine Version für Ubuntu 12.04 (PPA):

https://launchpad.net/~ultradvorka/+archive/ppa/+packages

Viele Grüße
Frank

Kriev

Ich muss schon sagen… Lieber installiere ich mir die z-shell aus den offiziellen repos als das ich eine Fremdquelle als potentielle Gefahr miteinbinde! Dies sollte meiner Meinung nach auch erwähnt werden. Es gab mal einen Test wie man einfach über ein ppa Files auf fremden Rechnern ändern kann. Ich habe jetzt grade keinen Link parat, aber in diesem Test wurde einfach das Hintergrundbild geändert mit dem Hinweis wie gefährlich ein ppa sein kann.

Und ganz nebenbei besitzt die z-shell auch einige gute/bessere Funktionen die ich nicht mehr missen möchte.

Cheers,
– Kriev

Kriev

Das ist so, klar. Trotz alledem wäre es nicht schlecht wenn du jeweils einen kleinen Hinweis, eine Hinweisbox oder sonst was anbringen könntest. Viele Neulinge packen n ppa’s in ihr System und wundern sich dann wieso nichts mehr funktioniert. Eine Warnung wäre wünschenswert, nicht für mich aber für andere die sich noch nicht so gross mit der Paketverwaltung auseinander gesetzt haben.

Sieh es als kleinen Tipp 😉

Cheers,
– Kriev

Kriev

Ein PPA-Disclaimer wie im Ubuntuusers-Wiki befreit weder mich, noch den Leser von der Verantwortung selber nachzudenken

Klar, aber es ist ein wichtiger Hinweis. Und wie gesagt, für Neulinge in dem Bereich eventuell doch wichtig. Wie ich am Ende meines letzten Kommentares erwähnt habe, es ist ein Tipp 😉

Cheers,
– Kriev

Adminosaurus Rex

Ohne zusätzliche Software und auch überall geht:

root@ubuntu:/# history
...
  649  ps facx
  650  htop
  651  df -h

root@ubuntu:/# !651
....

Wenn man sich die Nummer merkt, kann man die auch immer wieder benutzen.

Tobias Braumann

Danke für den Artikel, das Tool ist Gold wert. Übrigens der richtige Befehl zum hinzufügen zu der Bash lautet:

$ hh --show-configuration -s >> ~/.bashrc
produnis

das AUR meldet mittlerweile

no results found for hh

Linu74

Schau mal https://github.com/dvorka/hstr

Das Paket heißt jetzt woh hstr-bin

Linu74