Most Linux distributions (those using Bash) include auto-complete features in the terminal where you can type a few characters, press TAB and it’ll provide a best guess at what you’re trying to do.
Let’s install it from a PPA on Ubuntu (including Elementary OS and other Ubuntu derivatives), simply copy-paste the following into a terminal:
sudo apt-add-repository ppa:fish-shell/release-2 sudo apt-get update sudo apt-get install fish
You can then test it out in that same terminal by typing ‘fish’. You’ll see one of its notable features right away, the auto-complete with syntax highlighting. It’s the main reason I use it, just type a few letters and hit tab to have it auto-complete.
If you like it, replace it with the default (Bash) like so:
chsh -s /usr/bin/fish
chsh -s /usr/local/bin/fish
You can always switch back to the bash shell later too:
chsh -s /bin/bash
Mac users can have a read here: http://hackercodex.com/guide/install-fish-shell-mac-ubuntu/
And of course, Fish is highly configurable. Simply enter the following in your terminal:
And your browser will open to a delightful graphical configuration screen.
As you’ll see, you can configure colors, the prompt and other things as well as being able to interact with the terminal history and get info about environment variables and more.
A note about Elementary OS
Elementary OS includes a custom terminal app that integrates very neatly with the system pager so the system notifies you when tasks are completed in the terminal (such as when installing apps via apt-get or running updates). This works “out of the box” with Bash but not with Fish, not at this time.
Keep updated on progress here: https://github.com/fish-shell/fish-shell/issues/1382
For more info about command shells in general, here’s a good read: http://linuxcommand.org/lc3_lts0010.php
And of course, a great comparison of the popular shells: https://en.wikipedia.org/wiki/Comparison_of_command_shells
Adding to that comparison, a specific comparison of the more popular unix shells: http://hyperpolyglot.org/unix-shells
Enjoy the colorful Fish! 🙂