====== 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 [[guides:writerdeck|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:start|Shell Configuration]] * [[terminal:shell:bashrc|bashrc]] * [[terminal:start|Return to terminal]] * [[start|Return to wiki home]]