reverse search on 3.6.0 - there is a ppa
Bash is the default on everything. As the Born Again Shell, it replaced the old school shell, sh. It was developed in 1989. Bash is great because it is everywhere.
Zsh is what you will find on a mac machine (and some linux distros). It was adopted by Macos in 2019, before that they were still shipping an old version of bash that was distributed on the GPLv2. Zsh will probably look better than bash to the average user, largely because the packagers and distributers of zsh put more effort into customizing the look than bash distributors. Zsh came out around te same time as bash at 1990.
Notice how these two popular shells were built right at the end of 80's and gained popularity in the early years of the 90's. It makes sense that they are a little dated.
Enter Fish shell, in their words "a command line shell for the 90s". Fish shell does a lot, but the real value is in better theming, and better autocomplete than bash or zsh.
Make sure you install at least version 3.6.0, that was when they added support for the ctrl+r reverse history search (which was the only reason I didn't use fish for a long time).
Once you get it installed, check out fish_config
. This will open a local web-ui where you can configure theming and view other settings.
Fish is configured in ~/.config/fish/
. It supports using multiple config files out of the box, which avoids the problem of having a massive .bashrc
file.
Here is my ~/.config/fish/conf.d/alex.fish
config file:
function commit git add --all git commit -m "$argv" git push end # have ctrl+backspace delete previous word bind \e\[3\;5~ kill-word # have ctrl+delete delete following word bind \b backward-kill-word set -U fish_user_paths ~/.local/bin $fish_user_paths set -U fish_user_paths ~/.dotnet $fish_user_paths set -U fish_user_paths ~/.dotnet/tools $fish_user_paths export VISUAL=vim export EDITOR="$VISUAL" export DOTNET_WATCH_RESTART_ON_RUDE_EDIT=1 export DOTNET_CLI_TELEMETRY_OPTOUT=1