The most commonly used commands when navigating are `history`, `find`, `cd`. Here are some examples of simple alternative tools that does a better job.
Easily view, navigate, search history commands [htsr](https://github.com/dvorka/hstr)
![hts](https://user-images.githubusercontent.com/18756975/201403803-7f899124-3412-443c-9b6d-e60b8b2ca889.png)
_**Install**_ : ```bash sudo apt install hstr -y && hstr --show-configuration >> ~/.bashrc ``` _Restart terminal_ > **Note** - Other installation info - [github.com/dvorka/hstr/blob/master/INSTALLATION.md](https://github.com/dvorka/hstr/blob/master/INSTALLATION.md#installation) **_Usage_** : ```bash hstr keyword ``` Interactive searching🔎 : `Ctrl+R` >**Note** - More info on usage : > man hstr #

A simple and userfriendly way to find files

fd and fzf
_**Install**_ : ```bash sudo apt install fd-find -y && sudo apt install fzf -y ``` _**Add binary link**_(set correct bin directory location if error) : ```bash ln -s $(which fdfind) ~/.local/bin/fd ``` _Restart terminal_ > **Note** - Other installation info :
[github.com/sharkdp/fd#installation](https://github.com/sharkdp/fd#installation)
[github.com/junegunn/fzf#installation)](https://github.com/junegunn/fzf#installation) _**Usage**_ :
Command Description
fd foo Find in current directory, the string pattern name "foo", in parent|sub directories and files.
fd foo /FOO2 Find in "FOO2" directory, the string pattern name "foo", in parent|sub directories and files.
fd -g|--glob foo /FOO2 Find in "FOO2" directory, the glob pattern name matching "foo", in parent|sub directories and files.
fd /foo -p|--path /FOO2 Find in "FOO2" directory and view the files and directory paths and its contents that is or starts with the string pattern name "foo".
fd foo/ -p|--path /FOO2 Find in "FOO2" directory and view the directory paths and its contents that is or ends with the string pattern name "foo".
fd -t|--type -d foo Find for directory type only.
fd -t|--type -f foo Find for file type only.
fd -t|--type d -t|--type e foo Find for empty directories only.
fd -a|--absolute-path foo Find in current directory showing the full path, the string name "foo", in parent|sub directories and files.
fd -e|--extension txt Find for a particular file extension.
fd -H|--hidden foo Find for hidden and ignored files.
fzf interactive searching🔎 : `Ctrl+T` >**Note** - More info on usage : > man fd > man fzf #

Smarter directory navigating [commacd](https://github.com/shyiko/commacd) A faster way to move around _**Install**_ : ```bash curl -sSL https://github.com/shyiko/commacd/raw/v1.0.0/commacd.sh -o ~/.commacd.sh && \ echo "source ~/.commacd.sh" >> ~/.bashrc ``` commacd exports three commands: forward(`,`) │ backward(`,,`) │ backward+forward(`,,,`) _**Usage**_ : | Description | commacd | command | | :--:| :--: | :--: | | Enter directories using| , des | | | abbreviations. | └─> | cd Desktop | | Description | commacd | command | | :--:| :--: | :--: | | Move through multiple directories| , u/l/ce | | | using abbreviations. | └─> | cd /usr/local/Cellar | | Description | commacd | options | | :--:| :--: | :--: | | Choose directories with names | , d | | | starting with same letter. | 0 | Desktop | | (= multiple choices) | 1 | Documents | | 0, 1 or 2 | 2 | Downloads | | Description | commacd | command | | :--:| :--: | :--: | | Given two directories jdk7 and jdk8 | , ~/d/j*8 | | | on the Desktop, cd into jdk8 without hitting | └─> | cd ~/Desktop/jdk8 | | interactive mode (the one shown above). | | | | Description | commacd | | :--:| :--: | | Go back previous directory | ,, .. | Tab = Autocomplete >**Note** - More info on usage : > [shyiko.com/commacd](https://shyiko.com/2014/10/10/commacd/) # [zoxide](https://github.com/ajeetdsouza/zoxide) It remembers which directories you use most frequently, so you can "jump" to them in just a few keystrokes. _**Install**_ : ```bash sudo apt install zoxide ``` Open ~/.bashrc and add ``` eval "$(zoxide init bash)" ``` _Restart terminal_ > **Note** - Other installation info - [github.com/ajeetdsouza/zoxide#installation](https://github.com/ajeetdsouza/zoxide#installation) _**Usage**_ : ```bash z foo # cd into highest ranked directory matching foo z foo bar # cd into highest ranked directory matching foo and bar z foo / # cd into a subdirectory starting with foo z ~/foo # z also works like a regular cd command z foo/ # cd into relative path z .. # cd one level up z - # cd into previous directory zi foo # cd with interactive selection (using fzf) z foo # show interactive completions (zoxide v0.8.0+, bash 4.4+/fish/zsh only) ``` >**Note** - More info on usage : > [Algorithm matching](https://github.com/ajeetdsouza/zoxide/wiki/Algorithm#matching) #


> [!NOTE] > There are more alternative tools available out there that may better fit your needs.
> Check out [Modern Unix](https://github.com/ibraheemdev/modern-unix) - A collection of modern/faster/saner alternatives to common unix commands.