Dark mode switch icon Light mode switch icon

Fish Shell

2 min read

Fish Shell is a simple and well-designed shell for Unix based systems.

The great thing about Fish is it provides a decent set of default functionality (e.g., auto suggestions, custom prompt, etc.) without maintaining complex configuration.

Installing fish for Ubuntu

sudo apt-add-repository ppa:fish-shell/release-3
sudo apt update
sudo apt install fish

Install Fisher, the plugin manager

Whilst Fish provides a really good set of default settings, it’s still possible to add additional features via plugins. Installing plugins is done using the Fisher plugin manager

curl -sL https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish | source && fisher install jorgebucaran/fisher

Install plugins

Tide

Tide is a decent prompt which also includes an interactive configuration tool.

fisher install IlanCosman/tide
tide configure

NVM

Installing Node Version Manager is done via an NVM fish plugin.

fisher install jorgebucaran/nvm.fishi
nvm install 18

Puffer Fish

The Puffer Fish plugin provides a lazy way to “jump back up” the directory hierarchy using consecutive dots, instead of dots and slashes.

fisher install nickeb96/puffer-fish
# to jump to ../../../ 
......

Z

The Z plugin makes jumping between directories a breeze. For example, if I am editing my site and then want to jump back into the _site directory, I can simply type z _site.

fisher install jethrokuan/z
z _site

Where next?

That was just a brief look at how I’ve set up Fish on my system. There’s a lot more that can be done which I haven’t covered here (e.g., using aliases and scripting). The best place to start digging deeper is the Fish documentation.

Originally published on by Aaron Marr