Assembly Line

Instead of Bash: fish

Use fish as your interactive shell. Autosuggestions from history, syntax highlighting and good tab completion work with no configuration, which takes plugins and setup in Bash. Keep writing scripts in Bash or POSIX sh.

Old Bash gnu.org
Instead fish ★ 34k See repository Rust Pushed 2 days ago fishshell.com

Both are for an interactive shell to type commands into.

Why fish is better

  • It suggests commands as you type from your history, aware of the current directory, and the right arrow accepts the suggestion.
  • Tab completion and syntax highlighting work out of the box, with completions for many commands generated from their man pages.
  • History defaults are generous. fish keeps 256,000 commands where Bash defaults to 500, and new tabs see commands from other open sessions.
  • Pasting several lines puts them at one prompt instead of running each line immediately.
  • Since fish 4.0 it is written in Rust, after a port from C++ that the maintainers documented in public.

When to keep Bash

Scripts, CI jobs, Dockerfiles and servers should stay on Bash. fish breaks from POSIX shell syntax by design, so Bash scripts and snippets from documentation need changes before they run in it. Bash is the default login shell on many Linux distributions.

Switching

Install fish and set it as your terminal's shell, or run chsh. Leave existing scripts alone; their #! line still runs them in Bash. Move environment variables and aliases into ~/.config/fish/config.fish. When a snippet needs Bash, run bash for that command.

Watch out

Some tools only ship Bash or Zsh integration. fish syntax differs for variables, loops and conditionals, although it now accepts && and ||. Setting fish as the system login shell can break tools that assume POSIX, so setting it only in your terminal is safer.

Also worth a look

  • Nushell A shell whose pipelines pass structured data such as tables and JSON instead of text; pick it if you spend your day filtering data, and accept that it is further from Bash than fish is.

More newer, better shells and shell prompts

Sources

Judged on 2026-11-06. See every shells and shell prompts, or all 66 replacements.