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.
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.
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:
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
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:
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.
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.