Shell History Suggest Box

Arbeitet man im Terminal, dann kommt es oft vor, dass man Befehle wiederholen oder nur leicht abändern möchte. Dazu kann man die Bash History mit den Taste [Hoch]/[Runter] Befehl für Befehl durchscrollen und per [Links]/[Rechts] den Cursor bewegen, um das gewählte Kommando zu ändern. Die Bash History lässt sich aber auch durchsuchen, dazu drückt man einfach [Strg]+[r] und tippt drauf los. Wiederholt man nun [Strg]+[r] kommt man zum nächsten passenden Treffer der Suche usw. Gespeichert werden diese Daten in den ~/.bash_history, die man sich auch mit dem folgenden Befehl ausgeben lassen kann.

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

Nun ist die History und deren Suchfunktion in der Bash schon relativ gut, andere Shells wie etwa die Z-Shell aka zsh (Wikipedia) machen es aber noch einmal deutlich besser. Marcel von zInformatik oder Kushellig haben die wichtigsten Funktionen der zsh in meinen Augen recht gut zusammengefasst. Allerdings sind eben die meisten Linux-User mit der Bash unterwegs, und gerade daher lohnt es sich einmal auf die BASH History Suggest Box zu schauen.

# 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 BASH History Suggest Box könnt ihr über die oben stehenden Befehle installieren. Für Ubuntu-User bietet der Autor selber ein PPA mit nur diesem Programm an, Arch-Linux-User werden wie so gut wie immer im AUR fündig. Für andere Distributionen wie etwa Debian oder Linux Mint findet ihr auf der eingangs verlinkten Github-Seite des Projektes Installationshinweise. Nach der Installation lässt sich die BASH History Suggest Box dann mit hh aufrufen, es macht wohl allerdings mehr Sinn sie fest im System zu veranken, der Befehl…

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

…schreibt die Konfiguration für die BASH History Suggest Box direkt in eure ~/.bashrc, so dass ihr wie gewohnt den Bash-Verlauf mit der Tastenkombination [Strg]+[r] durchsuchen könnt. Allerdings bietet die BASH History Suggest Box deutlich mehr Funktionen wie die herkömmliche Bash History. Sie zeigt nicht nur Befehl auf Befehl an, sondern listet gleich alle Befehle auf, die ihr in der letzten Zeit eingegeben habt.

Die BASH History Suggest Box zeigt alle Befehle der Bash-History in einer GUI an.
Die BASH History Suggest Box zeigt alle Befehle der Bash-History in einer GUI an.
Mit der BASH History Suggest Box lässt sich die Bash-History deutlich einfacher durchsuchen.
Mit der BASH History Suggest Box lässt sich die Bash-History deutlich einfacher durchsuchen.

Durch diese Liste scrollt ihr nun wie gewohnt mit [Hoch]/[Runter]. Mit [Links]/[Rechts] oder [Tab] übernimmt ihr den aktuell ausgewählten Befehl in die Shell, wo ihr ihn wie gewohnt bearbeiten könnt. Gebt ihr Text ein, dann filtert die BASH History Suggest Box umgehend Befehle mit diesem Text heraus, auch durch diese reduzierte Liste kann man wieder bequem scrollen. Soll einer der Befehle gar nicht mehr in der Shell-History auftauchen, dann könnt ihr ihn mit [Entf] rauskicken.

Vorheriger ArtikelLinus Torvalds stellt auf ZDTV Linux und Redhat vor… 1998
Nächster ArtikelQuake III Bounty Für den Raspberry Pi hat einen Gewinner!
Hallo, ich bin Christoph - Linux-User, Blogger und pragmatischer Fan freier Software. Wie ihr ohne Zweifel bemerkt haben solltet, schreibe ich hier über Linux im Allgemeinen, Ubuntu im Speziellen sowie Android und andere Internet-Themen. Wenn du Freude an meinen Artikel gefunden haben solltest, dann kannst du mir über Facebook, Twitter oder natürlich dem Blog folgen.

17 Kommentare

  1. 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

  2. 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

    • 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

  3. 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

    • Ich meine damals auch etwas darüber geschrieben zu haben, finde den Beitrag aber nicht mehr. Generell gilt dein Einwand für jede Software die du an den offiziellen Repos deiner Software vorbei installiert. Egal ob nun PPAs bei Ubuntu, zusätzlichen Einträgen in die sources.list bei Debian, oder Software aus dem AUR bei Arch. Installierst du eine Software mit Root-Rechten… was ja bei Software aus Paketquellen geschieht — dann kann diese jede Datei im System verändern. Du kannst dir aber auch den Quellcode holen und diesen bauen… auch kein Problem. Aber spätestens beim „make install“ musst du dem Entwickler wieder vertrauen, da für einfach kein Weg dran vorbei — außer du studierst jede Zeile Quellcode, die du dir auf den Rechner schaufelst.

      • 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

        • Wenn ich im Blog PPAs nenne, dann eigentlich nur solche die von den Entwicklern der Software bereitgestellt werden und auch *nur* das Programm und sonst nicht verfügbare Komponenten oder Bibliotheken enthalten — ansonsten erwähne ich das im Beitrag deutlich. Diese sind im Alltag nicht problematisch, da sie keine vorhandenen Pakete austauschen, sondern nur zusätzliche installieren, was aus meiner Erfahrung heraus gut funktioniert. Wenn ich einer Software traue auf meinem Computer zu laufen, dann muss ich in meinen Augen auch dem Setup trauen — sonst sollte ich die Software gleich ganz weglassen. Ein PPA-Disclaimer wie im Ubuntuusers-Wiki befreit weder mich, noch den Leser von der Verantwortung selber nachzudenken 🙂

        • 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

  4. 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.

    • Schön und gut, ich will aber nicht x-tausend Einträge durchforsten müssen. Das geniale an hh ist bspw. das ausgeführte Befehle nach ihrer Häufigkeit sortiert werden. Führe ich bspw. einmal ein apt-get install foobar aus, dann rufe ich trotzdem mit [Strg]+[R][A][P][T] umgehend danach ein „sudo apt-get update && sudo apt-get dist-upgrade“ auf.

  5. 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
    
    • Hallo Tobias, das wäre doppelt gemoppelt…

      $man hh
      ...
      -s --show-configuration
      Show configuration that can be added to ~/.bashrc
      ...

      Es reicht entweder einer von beiden Schaltern.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein