folk.zone Wiki

a public knowledge base

Site Tools


terminal:shell:fish

fish

The Friendly Interactive Shell: a user-friendly alternative to bash with useful defaults and no configuration needed.

What It Is

A command line shell that provides out of the box:

  • Syntax highlighting as you type: valid commands are colored, errors show before you run them
  • Auto-suggestions from history (accept with right arrow or Ctrl+F)
  • Smart tab completion that reads man pages for options
  • Web-based configuration: fish_config opens a browser UI

Good for beginners and for machines where the terminal is the whole interface, like a WriterDeck.

Differences From Bash

  • Set variables with set name value, not name=value
  • $PATH is a list: set -Ua fish_user_paths ~/bin
  • No export, no ~/.bashrc. Config is stored in ~/.config/fish/config.fish
  • Scripts are not bash-compatible: fish has its own syntax (end instead of fi/done)
  • abbr -a replaces aliases for interactive use

Quick Config

# ~/.config/fish/config.fish
set -U EDITOR micro
set -Ua fish_user_paths ~/bin ~/.local/bin
abbr -a gs 'git status'
abbr -a up 'sudo apt update && sudo apt upgrade'

See Also

terminal/shell/fish.txt · Last modified: by 127.0.0.1