fish 4.8.1
An interactive shell with autosuggestions, syntax highlighting, and completions generated from man pages, all working with no configuration. Deliberately not POSIX compatible.
Download TAR.XZ Project website ↗Download Mirrors
fish is the most pleasant shell out of the box, and it achieves that partly by not being POSIX compatible. Both halves of that sentence are the whole story.
What works with zero configuration
Autosuggestions from your history as you type, shown in grey and accepted with the right arrow.
Syntax highlighting that shows an invalid command in red before you press enter.
Completions generated from man pages, so options are completed with their descriptions for commands nobody wrote completions for.
A web configuration interface via fish_config.
No plugins, no framework, no .fishrc to assemble. This is the argument for fish, and it is a strong one.
The incompatibility is real
# bash
export VAR=value
if [ -f file ]; then echo yes; fi
for i in $(seq 5); do echo $i; done
# fish
set -x VAR value
if test -f file; echo yes; end
for i in (seq 5); echo $i; end
Simple commands paste and run fine. Anything with a variable assignment, an export, or command substitution needs translating, and documentation everywhere assumes bash.
Whether that is a small tax or a constant irritation depends on how often you paste commands from the internet, which for most people is often.
Scripts are a separate question
chsh -s "$(which fish)"
Changing your login shell does not affect scripts, which run under their shebang. A common and sensible arrangement is fish interactively and bash for scripting, because they solve different problems.
Our shell comparison covers the choice, and bash quoting applies to the scripts you write regardless.
Installing
sudo apt install fish # Debian and Ubuntu
sudo dnf install fish # Fedora
sudo pacman -S fish # Arch
Try it without committing:
fish # just run it, exit to return to your normal shell
Verify Your Download
Release archives on GitHub are published with checksums and signatures.