DEV Community

loading...
Cover image for Advantages of Using Fish Shell 🐟

Advantages of Using Fish Shell 🐟

minatafreshi profile image Mina Tafreshi ・Updated on ・2 min read

A Short Definition:

Fish is a smart and user-friendly command-line shell for Linux, macOS, and the rest of the family. I've been using zsh and some other bunch of shells for many years but recently I have upgraded my hardware and I got a chance to taste the Fish. Additionally, I have to say that I'm not planning to go back and I encourage others to use and experience Fish.
There are so many advantages of using Fish as a default shell which can improve your experience, namely:

1. Autosuggestion

One of the main reasons that I use Fish Shell is the autosuggestion implemented in the shell. This feature gives you the capability of quick access to the commands as you type. You can find this in zsh as well. However, it was originally in Fish Shell at first place. In addition, Fish Shell has other features too, like if you mistype, it will show the wrong and invalid commands in red.

Alt Text

2. Web Interface

Another amazing feature of Fish is that you can configure it as a web interface running on your local server. Also, the web interface allows you to modify the color of the scheme that you want. It also lets you browse your environment variables too. There are more features:

  1. Finding terminal keybindings.
  2. Beautiful and colorful command prompts.
  3. Command line history!

Alt Text

3. Obvious Error Messages

When you screw up, Fish shows the errors and your faults plus the way that you can handle it!

To sum up

Fish is so powerful and useful for users who work with other shells like zsh, bash, and so on if they want to try a new and advantageous shell.

Discussion

pic
Editor guide
Collapse
aminnairi profile image
Amin

Hi Mina and thanks for this interesting article on Fish!

I am very interested by that shell, I installed it and compared to my old Zsh + OhMyZsh configuration, it feels like it is way better. And that was before I try OhMyFish.

I just wanted to add that the shell scripting in Fish is so much more sane and developer friendly than the one on Bash. Zsh has made some great effort, but it does not come near the one made by Fish. The only downside is that it is not POSIX compliant, but in most cases this is not an issue at all.

Also, the fact that it parses the man pages for you to auto-suggest things is a bliss for people that are using applications from third-party sources like in GitHub or elsewhere, without having to download another OhMyZsh plugin. This was the case for the gh application for instance (that needed a plugin for working with OhMyZsh).

Fish example with Github CLI