AA_123rf-lightwise-20235891-123RF.jpg

© lightwise, 123RF

Mit der Bash History Suggest Box Shell-Befehle schneller finden

Ausgesucht

Mit den Pfeiltasten lässt sich der Bash-Verlauf schnell durchstöbern. Allerdings erweisen sich die Suchfunktionen der Bash als eng begrenzt. Hier springt die clevere Bash History Suggest Box in die Bresche.

Bei der Arbeit im Terminal will man oft zuvor eingegebene Befehle schnell wiederholen oder leicht abändern. Dazu lässt sich die Bash-History ganz einfach mit [Pfeil-oben]/[Pfeil-unten] Befehl für Befehl Revue passieren und per [Pfeil-links]/[Pfeil-rechts] der Textcursor verschieben, um das gewählte Kommando anzupassen.

Der Bash-Verlauf lässt sich aber auch durchsuchen: Drücken Sie [Strg]+[R] und tippen dann munter drauflos, sucht die Shell sich automatisch das erste passende Ergebnis heraus. Wiederholen Sie [Strg]+[R], so springen Sie von Treffer zu Treffer – bis zum gesuchten Befehl. Die Bash merkt sich alle auf der Kommandozeile eingetippten Befehle in der Datei ~/.bash_history, die Sie bei Interesse beispielsweise mit dem Befehl history einsehen (Listing 1).

Listing 1

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

Zwar liefern die Bash-History und deren Suchfunktion schon sehr brauchbare Ergebnisse, doch es gibt durchaus noch Verbesserungspotenzial. Tippen Sie etwa zu oft auf [Strg]+[R] und schießen über das gewünschte Ziel hinaus, gibt es keinen Weg, sich im Verlauf wieder einen Schritt zurück zu begeben. Sie müssen die Suche dann mit [Strg]+[D] abbrechen und wieder ganz von vorne beginnen.

Als gewohnheitsmäßiger Konsolennutzer sollten Sie sich daher die Bash History Suggest Box [1] nicht entgehen lassen. Sie bringt bessere Übersicht in den gesammelten Bash-Verlauf und erlaubt eine komfortablere Suche (Abbildung 1), ohne dass Sie dabei die in Herz und Nieren übergegangenen Tastenkombinationen aufgeben müssen.

Abbildung 1: Mit der Bash History Suggest Box lässt sich der Shell-Verlauf bequem durchsuchen.

Installation

Die Bash History Suggest Box hat bislang noch nicht ihren Weg in die Repositories der gängigen Distributionen gefunden. Selbst Ubuntu 14.04 "Trusty Tahr" führt die Software noch nicht in den Paketquellen, doch hier lässt sie sich bequem aus einem vom Entwickler betriebenen PPA einrichten (Listing 2).

Listing 2

$ sudo add-apt-repository ppa:ultradvorka/ppa
$ sudo apt-get update
$ sudo apt-get install hh

Arch-Linux-Anwender finden die Bash History Suggest Box im AUR [2], für Debian "Wheezy" und Linux Mint 13 empfiehlt der Programmautor auf der Homepage eine zusätzliche Paketquelle. Allerdings lässt sich die Suggest Box aus den Quellen auch sehr einfach selbst bauen (Listing 3).

Listing 3

$ sudo apt-get install libncurses5-dev libreadline-dev
$ wget https://github.com/dvorka/hstr/releases/download/1.10/hh-1.10-src.tgz
$ tar xf hh-1.10-src.tgz
$ cd hstr
$ ./configure && make && sudo make install

Nach der Installation rufen Sie die Bash History Suggest Box mit hh auf. Wie gewohnt scrollen Sie mit [Pfeil-oben] und [Pfeil-unten] durch den Verlauf und übernehmen den aktuell ausgewählten Befehl per [Pfeil-links],[Pfeil-rechts] oder mittels der Tabulator-Taste. Alternativ binden Sie den Aufruf von hh direkt an die Tastenkombination [Strg]+[R], sodass die Suggest Box die Standardsuche der Bash ersetzt.

Die Befehle aus Listing 4 tragen die dafür notwendige Konfiguration mitsamt zusätzlichen Einstellungen für mehr Farbe und einen umfangreicheren Bash-Verlauf in die ~/.bashrc ein und veranlassen die Shell, ihre Konfiguration umgehend neu einzulesen. So müssen Sie sich nicht ab- und wieder anmelden, um die Suggest Box zu aktivieren.

Listing 4

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

Neue Suchfunktionen

Die Bash History Suggest Box stellt nicht nur den Verlauf besser dar, sondern ergänzt auch die Suche. Wie zuvor starten Sie diese mit [Strg]+[R] und geben einen Suchbegriff ein. Die Suggest Box filtert daraufhin automatisch alle den Begriff enthaltenden Kommandos aus dem Verlauf heraus (Abbildung 2). Soll einer der Treffer gar nicht mehr im Verlauf erscheinen, löschen Sie ihn ganz einfach mit einem Druck auf [Entf]. Von Ihnen sehr häufig gebrauchte Befehle fügen Sie mit [Strg]+[F] zu Ihren Favoriten hinzu.

Abbildung 2: Die Suchergebnisse sind in der Standardeinstellung nach Häufigkeit sortiert.

In der Standardeinstellung sortiert die Suggest Box die Treffer nach der Häufigkeit. Je öfter Sie einen Befehl ausführen, desto weiter oben erscheint er in den Suchergebnissen. Mit [Strg]+[Umschalt]+[**7**] sortieren Sie die Ergebnisliste nach dem "Ranking" oder dem zeitlichen Verlauf ("History") um, oder aber Sie reduzieren die Auswahl auf Ihre zuvor abgespeicherten Favoriten. Mit [Strg]+[T] sagen Sie der Suggest Box, auf Unterschiede in der Groß-/Kleinschreibung der Befehle zu achten.

Nützlich ist auch die Möglichkeit, Kommandos von der Shell-History auszunehmen – etwa dann, wenn Befehle Logins und Passwörter enthalten, die nicht im Log der Bash erscheinen sollen. Die Suggest Box fügt dazu von Haus aus die Option HISTCONTROL=ignorespace in Ihre ~/.bashrc ein (Listing 5). Fügen Sie nun vor Ihr Kommando ein Leerzeichen ein, dann übernimmt die Bash den Befehl nicht in den Verlauf. Triviale Befehle wie ls, pwd oder cd lassen sich zudem mit HISTIGNORE komplett ignorieren.

Listing 5

export HISTCONTROL=ignorespace
export HISTIGNORE="pwd:ls:ls -l:cd"

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 3 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Kommentare

Infos zur Publikation

LU 09/2017 PERFEKTE FOTOS

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Aktuelle Fragen

Samsung VG-KBD1500 - Bluetooth-Tastatur mit Touchpad mit Xubuntu 16.04.2 LTS
Linux- & BSD-UserGroup im Weserbergland, 16.08.2017 19:16, 0 Antworten
Bin grad mit "meinem Latein am Ende" darum hier mal so in den Raum geworfen. Samsung VG-KBD1500 -...
Tails verbindet nicht mit WLan
Georg Vogel, 30.07.2017 15:06, 5 Antworten
Hallo zusammen! Habe mir von Linux Mint aus einen Tails USB-Stick erstellt. Läuft soweit gut,...
Genivi for Raspberry Pi 3
Sebastian Ortmanns, 28.07.2017 10:37, 1 Antworten
I try to build a Genivi Development Platform for Rasberry Pi 3. But I always get the failures bel...
Bash awk Verständnis-Frage
Josef Federl, 22.07.2017 17:46, 2 Antworten
#!/bin/bash # Skriptdateiname = test.sh spaltennummer=10 wert=zehner awk '{ $'$spaltennummer'...
Bash - verschachtelte Variablenersetzung, das geht doch eleganter als meine Lösung?
Josef Federl, 18.07.2017 20:24, 3 Antworten
#!/bin/bash #Ziel des Skriptes wird sein die ID zu extrahieren hier nur als Consolentest: root@...