Linux und Ich

Blog über Ubuntu, Linux, Android und IT

terminal-bash-completion

Die Suche in der Bash History mit der BASH History Suggest Box aufbohren

| 11 Kommentare

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.

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.

(Via Raschix)

Autor: Christoph

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, Google+ oder Twitter oder natürlich dem Blog folgen.

11 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. Mein Fehler. Sorry, hast Recht.

    Linu74

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

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

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

    Viele Grüße
    Frank

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

Hinterlasse eine Antwort

Auf Linux und Ich darf anonym kommentiert werden. Die Felder für Name und E-Mail-Adresse dürfen beim Eintragen eures Kommentars leer bleiben. Ich freue mich aber über jeden Kommentar, zu dem der Autor mit seinem Namen steht.