Fish (shell)

Finally, a command line shell for the 90s - Home

bind - key binding

Doc

The Fish Cookbook

Set as default shell

Tips: Rather set fish as your terminal’s shell instead of changing your login shell. see

$ chsh -s /usr/bin/fish

Check that fish is allowed in /etc/shells

CDPATH

Easily Navigate Directories in the Terminal the cd command to search for the directory you specify in locations other than your current directory.

$ export CDPATH=$HOME:$HOME/software:$HOME/software/ruby:$HOME/software/rails:$HOME/software/youtube

For example, let’s say you have a $HOME/software/blog directory and you’ve configured the CDPATH to include the $HOME/software directory.

Now, if you type cd blog from anywhere in the filesystem, the cd command will take you to the $HOME/software/blog directory, unless it finds another blog directory in another pre-configured path.

PATH

PATH can be a pain, but there are some basics: Where is PATH set

  • All apps+shells /etc/environment
  • All shells ~/.profile or /etc/profile for all users (or a separate file under /etc/profile.d/ if using pacman)
  • Bash shell ~/.bashrc (or ~/.bash_profile or ~/.bash_login)
  • Fish shell ~/.config/fish/config.fish

Alternative

  • murex - murex supports multiple data types natively; such as JSON, YAML, CSV, S-Expressions and even loosely tabulated terminal output
  • elvish - Pipelines in Elvish can carry structured data, not just text.
Written on August 11, 2018, Last update on December 7, 2023
fish shell pipeline cli