$linuxjunkies
>

fish shell

also: fish, friendly interactive shell

Fish (Friendly Interactive Shell) is a modern command-line shell for Linux and Unix systems designed to be user-friendly with smart autocompletion, syntax highlighting, and helpful defaults out of the box.

Fish is an interactive shell that prioritizes ease of use over POSIX compliance. Unlike bash or zsh, fish includes advanced features by default: real-time syntax highlighting shows errors before you press Enter, intelligent autocompletion suggests commands and arguments based on history and man pages, and a web-based configuration interface makes customization accessible.

Fish uses a simpler scripting syntax than traditional shells. For example, listing files matching a pattern uses ls *.txt directly without requiring special quoting, and functions are defined with intuitive syntax like function greet; echo "Hello $argv"; end.

While fish excels as an interactive shell for daily use, it sacrifices POSIX shell compatibility, making it unsuitable as a system shell for scripts. Many users keep bash as their login shell but use fish interactively, or use fish as their default shell for development work.

Related terms