FISH | Friendly Interactive SHell on openSUSE

BASH has been good to me and I have enjoyed my time with BASH very much. I have learned so much about the inner workings of Linux through the terminal and BASH has been there my whole experience. “Tab” completion has been a marvelous gift to the terminal user experience. I have never had a complaint about BASH and therefore never looked elsewhere.

On the episode of BDL from 17 Oct 2020, I was told to try FISH as it would change my terminal life. I didn’t really believe it but proceeded to install it anyway. I also wasn’t ready to commit to it so I modified a profile in Konsole to use Fish instead of Bash. Typing in one solitary command and I was sold.

Installation

The installation of FISH takes but one step. In the terminal type:

sudo zypper install fish

If you just want to try it, you can just run fish from the terminal and you are immediately in it.

Difference

Fish helps you along, give you hints, pressing tab gives you options and defines the options which removes the ambiguity in the commands. On the surface, this doesn’t look any different, that is, until you do what you would normally do in the terminal and see the difference. This may not be the greatest example but it essentially shows the improvements in the interaction.

As you start typing fish predicts the command based on your executed command history. In a sense, it learns and predicts your inputs which is very handy. Think about all the different things you do in the terminal. How many times have you reviewed your history to remember the exact syntax of a command you previously ran. This will make that process so much more enjoyable.

What is absolutely fantastic about FISH is how easy it is to configure. Simply run:

fish_config

and you are presented with the ability to easily configure your options graphically. At the same time, you are able to view the config file and manually input changes as well.

Switch to Fish | Bash is out

Lets say you are running Konsole for you terminal emulator. Changing it to use FISH instead of BASH is as simple as going into Settings > Configure Konsole

Under Profiles, select the default profile and “Edit” it.

The command should be changed to /usr/bin/fish

If you would like to check before hand to see if that is indeed the installed location of the FISH executable, run this in terminal to be sure:

which fish

Switch to Fish on openSUSE

To make the changes system wide, that is also an easy process. As root run the following command

chsh -s /usr/bin/fish

Additionally, you can change your user account default shell in this way, where in this case “cubiclenate” would be your user name.

chsh -s /usr/bin/fish cubiclenate

Keep in mind that user accounts may still be using BASH depending on how they were set up. Since the terminal should be a personal choice, it is totally understandable that the user accounts could vary.

Final Thoughts

I have been totally fine with using Bash, I started on csh in the HP Unix days, when I went to Linux, I was introduced to Bash and I thought it was pretty great. What I appreciated was the tab-completion on commands. I had heard about Zsh and Fish but since I didn’t have a problem with Bash, I had no desire to change my shell. The interactive nature of FISH makes using anything in the terminal so much better and dare I say, “fun”. Maybe instead of “Friendly” the F in FISH should stand for “Fun”. I really enjoy the terminal a lot more and I believe that making this the default shell for not just openSUSE but all distributions would also make the terminal far less scary for more people to use.

Reference

OSTechnix – Install Fish
fish on software.opensuse.org
3 Ways to change a user default shell

2 thoughts on “FISH | Friendly Interactive SHell on openSUSE

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.