hstr

bash and zsh shell history suggest box - easily view, navigate, search and manage your command history.

View on GitHub

Installation

Install:

Build:

Tarball:

Upgrade:

Install

Install HSTR using a package or repository.

Ubuntu

HSTR is included in Ubuntu 21.10 and newer releases:

sudo apt install hstr

Install HSTR on Ubuntu 21.04 and older using one-liner:

sudo add-apt-repository ppa:ultradvorka/ppa && sudo apt-get update && sudo apt-get install hstr && hstr --show-configuration >> ~/.bashrc && . ~/.bashrc

… or step by step:

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

Configure HSTR and check its man page.

Debian/Mint

HSTR is included in Debian 11 and newer releases:

sudo apt install hstr

Install HSTR on Debian 10 and older from my PPA. Add PPA, trust GPG key and install HSTR:

# add PPA to APT sources:
sudo bash -c 'echo -e "\ndeb https://www.mindforger.com/debian stretch main" > /etc/apt/sources.list.d/mindforger.list'

# import PPA's GPG key
wget -qO - https://www.mindforger.com/gpgpubkey.txt | sudo apt-key add -

# update sources
sudo apt update

# install HSTR
sudo apt install hstr

Configure HSTR and check its man page.


Alternatively you can download and install .deb archive from GitHub releases section of the project:

wget -O hstr.deb https://github.com/dvorka/hstr/releases/download/<major>.<minor>/hstr_<major>.<minor>.<revision>-1_amd64.deb

# dependencies:
apt-get install libncursesw5 libtinfo5

sudo dpkg -i hstr.deb

Fedora/RHEL/CentOS/Scientific

Install HSTR on Fedora, RHEL, CentOS or Scientific Linux:

sudo dnf install hstr

… or:

sudo yum install hstr

Configure HSTR and check its man page.


If you want to make sure you have the latest version, then download .rpm archive from GitHub releases or pkgs.org and install it:

sudo dnf install ./hstr-<major>.<minor>.<revision>-2.x86_64.rpm

openSUSE

To install HSTR on openSUSE, please check software.opensuse.org or pkgs.org. You can install HSTR as follows:

zypper addrepo https://download.opensuse.org/repositories/home:lemmy04/openSUSE_Leap_15.1/home:lemmy04.repo
zypper refresh
zypper install hstr

Configure HSTR and check its man page.

Gentoo

To install HSTR on Gentoo run (HSTR has been added to Portage):

emerge app-shells/hstr

Configure HSTR and check its man page.

Alpine Linux

To install HSTR on Alpine Linux run the following command as root:

apk add hstr

Configure HSTR and check its man page.

ALT Linux

To install HSTR on ALT Linux, please check pkgs.org. You can install HSTR as follows:

rpm [p10] http://ftp.altlinux.org/pub/distributions/ALTLinux/autoimports/p10 x86_64 autoimports
rpm [p10] http://ftp.altlinux.org/pub/distributions/ALTLinux/autoimports/p10 noarch autoimports

sudo apt-get update

sudo apt-get install hstr

Configure HSTR and check its man page.

Arch/Manjaro Linux

To install HSTR on Arch or Manjaro Linux download the latest distribution either from pkgs.org or GitHub releases.

Use PKGBUILD in the root of the distribution to build package using makepkg.

To install HSTR from the Arch User Repository (AUR) run yaourt -S hstr-git in command line.

FreeBSD

To install HSTR on FreeBSD, please check pkgs.org. You can install HSTR as follows:

pkg install hstr

Configure HSTR and check its man page.

Slackware

To install HSTR on Slackware, please check pkgs.org. You can install HSTR as follows:

upgradepkg --install-new hstr-<major>.<minor>-x86_64-1cf.txz

Configure HSTR and check its man page.

Void Linux

To install HSTR on Void Linux, please check pkgs.org. You can install HSTR as follows:

xbps-install -Su hstr

Configure HSTR and check its man page.

Milis Linux

To install HSTR on Milis Linux run the following commands as root:

mps kur hstr

Configure HSTR and check its man page.

Haiku OS

To install HSTR on Haiku OS use Haiku Depot:

Configure HSTR and check its man page.

macOS

Install HSTR on macOS using Homebrew (formula):

brew install hstr

You can also install HSTR on macOS using MacPorts (port info):

sudo port install hstr

Configure HSTR and check its man page.

nix package manager

To install HSTR using the nix package manager e.g. on NixOS you can use the nix derivation for HSTR:

nix profile install nixpkgs#hstr

Configure HSTR and check its man page.

Guix package manager

To install HSTR in GuixSD or using the standalone Guix package manager you can install the hstr package, e.g.

guix package -i hstr

Configure HSTR and check its man page.

MPR package manager

To install HSTR in Ubuntu or derivative operating systems using MPR, you can search for hstr-git using helper or install it manually using makedeb -s

Configure HSTR and check its man page.

MPR package

Build

Build HSTR from source code.

Build on any Linux distro

Clone Git repository:

git clone https://github.com/dvorka/hstr.git

Create build files using:

cd ./build/tarball && ./tarball-automake.sh && cd ../..

Build and install HSTR using:

./configure && make && make install

Configure HSTR and check its man page.

Build snap

To build snap for HSTR first clone Git repository:

git clone https://github.com/dvorka/hstr.git

Make sure that you can build HSTR from source code as described in a “Build on …” section for your distribution.

Install snapcraft and build snap by running snapcraft in the root of Git repository:

$ ls ./snap
  snapcraft.yaml
$ snapcraft
  ...

Find hstr_0+git..._amd64.snap in the current directory.

Build on Ubuntu

To build HSTR on Ubuntu clone Git repository:

git clone https://github.com/dvorka/hstr.git

Install dependencies:

sudo apt install automake gcc make libncursesw5-dev libreadline-dev

Create build files using:

cd ./build/tarball && ./tarball-automake.sh && cd ../..

Build and install HSTR using:

./configure && make && make install

Configure HSTR and check its man page.

Build on Debian

To build HSTR on Debian clone Git repository:

git clone https://github.com/dvorka/hstr.git

Install dependencies:

sudo apt install autotools gcc make pkgconf libncursesw5-dev libreadline-dev

Create build files using:

cd ./build/tarball && ./tarball-automake.sh && cd ../..

Build and install HSTR using:

./configure && make && make install

Configure HSTR and check its man page.

Build on Fedora

To build HSTR on Fedora clone Git repository:

git clone https://github.com/dvorka/hstr.git

Install dependencies:

sudo dnf install autotools ncurses-devel readline-devel

Create build files using:

cd ./build/tarball && ./tarball-automake.sh && cd ../..

Build and install HSTR using:

./configure && make && make install

Configure HSTR and check its man page.

Build on WSL

To build HSTR on Windows Subsystem for Linux (WSL) clone Git repository:

git clone https://github.com/dvorka/hstr.git

Install dependencies:

sudo apt install automake gcc make libncursesw5-dev libreadline-dev

Create build files using:

cd ./build/tarball && ./tarball-automake.sh && cd ../..

Build and install hstr using:

./configure && make && make install

It’s important to finish installation by configuration of HSTR binding which ensures propagation of chosen command to the prompt:

hstr --show-configuration >> ~/.bashrc
. ~/.bashrc

Make sure to run HSTR using Ctrl-r (or hstrwsl) - otherwise commands will not appear in prompt.

Configure HSTR and check its man page.

Build on Cygwin

To build HSTR on Cygwin clone Git repository:

git clone https://github.com/dvorka/hstr.git

Create build files using:

cd ./build/tarball && ./tarball-automake.sh && cd ../..

Build and install HSTR using:

./configure && make && make install

It’s important to finish installation by configuration of HSTR binding which ensures propagation of chosen command to the prompt:

hstr --show-configuration >> ~/.bashrc
. ~/.bashrc

Make sure to run HSTR using Ctrl-r (or hstrcygwin) - otherwise commands will not appear in prompt.

Configure HSTR and check its man page.

Build on macOS

HSTR can be built on macOS either using MacPorts or Homebrew.


To build HSTR using MacPorts install readline and ncurses:

port install readline
port install ncurses

Check portfile either on macports.com or GitHub:

autoreconf -fvi
./configure CFLAGS=-I/opt/local/include/ LDFLAGS=-L/opt/local/lib
make

Configure HSTR and check its man page.


To build HSTR using Homebrew:

autoreconf -fvi
./configure CFLAGS=-I$(brew --prefix)/opt/readline/include LDFLAGS=-L$(brew --prefix)/opt/readline/lib
make

Configure HSTR and check its man page.

Tarball

Download and install HSTR tarball.

Build and Install Tarball

Download latest tarball from GitHub releases section. Expand the archive and install HSTR using:

./configure && make && make install

Configure HSTR and check its man page.

Upgrade

HSTR major versions upgrades instructions.

HSTR 1.x to 2.x: from HH to HSTR

Upgrade HSTR using a package or repository. If you are HSTR 1.x user, please read about HSTR 2.x changes.

HSTR 2.x to 3.x: ioctl / TIOCSTI

TIOCSTI is an acronym for “Terminal Input Output Control STack Input”, and it is a system call used in Unix-like operating systems. The TIOCSTI system call allows to insert data into the input buffer of a terminal as if it had been typed by the user.

TIOCSTI is NOT available at:

HSTR uses TIOCSTI to insert a command chosen by the user in HSTR to shell prompt - if TIOCSTI is available. Otherwise shell specific line editors features are used.

Therefore it is important to configure HSTR after the installation: