Fish - A Little intro to a different shell terminal

Posted by

Ok, so I've been a terminal (ab)user for almost 25 years now and I tend to always use bash as my main shell environment. But on javazone this year, one of the speakers used a shell called "fish". I got curious and went over to to give it a try.


Fish is available for OSX, Linux and even Windows ( trough cygwin ). Head over to and see how you can install it.

 On OSX i just did a:

brew install fish
echo "/usr/local/bin/fish" >> /etc/shells
chsh -s /usr/local/bin/fish

This sets it as the default shell. If you wan't it,just do a "chsh -s /bin/bash" to change the default shell back to bash.

Whats so cool about fish?

Well... Calling a terminal shell cool is maybe stretching it. But if youre using it all the time, then it can be nice to have a little bling there. ;) Here's some of the cool things thats included in fish.

Nice autosuggestions

We like autosuggestions. And we like it even more when it's automaticly generated from the man page of the program. That means that every program that has a man page will get autosuggestions.


Awsome 256 colors

Colors is nice, we love colors. And of course it supports term256 which gives you a wooping 256 colors at the same time in your console.


Web based configuration

To configure the shell they have a web based config that will pop up in your browser when you start the "fish_config" command. Here you can configure the terminal colors, prompt and take a look at the variables and functions included in the shell.


Simple scripting language

Fish comes with it's own scripting language. It tries to be simple, clean and consistent. From what I can see it tries to be a bash replacement and depends on other scripts/programs to do the heavy lifting even bash can't do.


Is fish a solutions to everything?

Well... give it a spin and see if you like it. I'll try it out for a while now and from the little time i spent with it now, it seems quite nice. If you're like me and have a bunch of homemade aliases and functions in your .bashrc file, you have to convert them to the fish language as they do not work here.

My pro tip is to install it, give it a try for a while and if you don't like it simply switch back to your old shell.