Ubuntu / Linux news and application reviews.


Fish is a user friendly command line shell. It features syntax highlighting, advanced tab completion features, discoverable help, a revised shell syntax and many other features.

Fish comes with a lot of features, but I find one feature truly amazing: tab completion for command line arguments, including explanations.

Example typing: "find -na", when pressing the TAB button completes it to "find name". Typing "find -a" and then pressing TAB will show all arguments that start with "-a" - and it also includes detailed explanations.

Here is a screenshot to understand better:


Install Fish

Fish should be available in all major Linux distributions official repositories. In Ubuntu, install Fish using the following command:
sudo apt-get install fish
Then to run it, simply enter "fish" in a terminal.

To set Fish Shell as the default shell, use the following command:
chsh -s /usr/bin/fish
Then log out and log back in.

To revert this change and set Bash as the default shell, use:
chsh -s /bin/bash
Then log out and log back in.

You can read a lot more about Fish @ it's homepage.

Update: Bruce Ingalls tells us that: if you switch to a virtual, text-only terminal, you may experience problems starting fish, as I have. This can prevent you from logging in, especially if X Window is disabled.

Update 2: "sudo apt-get update && sudo apt-get upgrade" - doesn't work because the '&&' is not recognized. And most importantly, when setting Guake (a terminal emulator for Gnome) to use Fish, after restart it was using a few hundred mb of RAM. So it seems Fish has some sever issues!