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