Tags

, ,

The most common way of searching history is either history|grep ... or Ctrl-r. However, let’s face it, both of them are tedious and sometimes it’s really difficult to find that exact long and complex command you barely want to type in again. What if a tool could list all the matches visually and let you select the right command using search as you type? hstr is a new tool that does exactly the same thing. It’s a suggestion box or list of your command history with a lot of functionality built-in.

Features

  • View, navigate, select, search command history
  • Searches the list as you type and shows the matching results only
  • Add to favourite commands
  • Remove sensitive commands from history
  • Works for bash and zsh shells

Installation

To install hstr on Ubuntu, run:

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

hstr has minimal dependencies. If you want to compile it from the latest source on Ubuntu, run:

$ sudo apt-get install libncursesw5-dev libreadline6-dev
$ git clone https://github.com/dvorka/hstr.git
$ cd hstr/
$ cd ./dist && ./1-dist.sh && cd ..
$ ./configure && make
$ sudo make install

Usage

  • Optionally add config to ~/.bashrc
    $ hh --show-configuration >> ~/.bashrc
  • List history (hh is the command for hstr)
    $ hh

    Once you get the list, keep typing for the exact match.

  • List history with all matches for “virt”
    $ hh virt
  • Get more help
    $ man hh

Keys

Ctrl-e : Toggle regular expression and substring search.
Ctrl-t : Toggle case sensitive search.
Ctrl-/ : Rotate view of history as provided by BASH, ranked history ordered by the number of occurences/length/timestamp and favorites.
Ctrl-f : Add currently selected command to favorites.
Ctrl-l : Make search pattern lowercase or uppercase.
Ctrl-r, UP arrow, DOWN arrow, Ctrl-n, Ctrl-p : Navigate in the history list.
TAB, RIGHT arrow : Choose currently selected item for completion and let user to edit it on the command prompt.
LEFT arrow : Choose currently selected item for completion and let user to edit it editor (fix command).
ENTER : Choose currently selected item for completion and execute it.
DEL : Remove currently selected item from the shell history.
BACSKSPACE, Ctrl-h : Delete last pattern character.
Ctrl-u, Ctrl-w : Delete pattern and search again.
Ctrl-x : Write changes to shell history and exit.
Ctrl-g : Exit with empty prompt.

On GitHub: hstr