Fish as a User Shell in Linux

Introduction
The purpose of this article is to provide reasoning behind why I’m a fish shell user and how to I setup fish 🐟 shell on all my Linux machines. Before we begin, we need to understand what fish shell is.
Fish is a Unix shell with a focus on interactivity and usability. Fish is designed to give the user features by default, rather than by configuration. Fish is considered an exotic shell since it does not rigorously adhere to POSIX shell standards, at the discretion of the maintainers. - Wikipedia
As the the quote states fish focuses on our interaction with our shell and usability. It provides us features without having to focus on spending much time on customization like zsh, bash and others. Now let’s address some of the common misconceptions in the Linux community regarding fish shell.
But it’s not POSIX and you shouldn’t use a shell that is POSIX complaint in Linux!
Although you can use fish shell as your system shell, it is not recommended or the primary use case for fish shell. It is designed to be used as a user shell for tasks you need to perform on your system.
With that in mind, there are many features you get with fish shell out of the box.
- Auto suggestions
- Simple Scripting
- Man Page Completions
- 24-bit Color
Installation
Now that we have the built-in features out of the way, I install fish shell from the official Linux repositorys, install Oh my Fish (omf) then the lambda theme (Figure 1).
| |
Figure 1. Installing fish shell with omf and lambda theme
Once completed, I update my gnome terminal to open fish instead of bash (Figure 2).

The next small annoyance might be the fish shell default greeting. However, we can remove this by performing the command in Figure 3.
| |
Figure 3. Disabling fish Greeting
And… you’re done! 🐟🥳
Conclusion
I use fish shell as my user shell in Linux mostly because of it’s auto-completions and built-in features. I hope this encourages you to try fish shell as your user shell in Linux as well. 😅