What is your favorite shell and why?

Posted November 3, 2019 2.9k views
Linux BasicsLinux Commands

Hi all,

I’m just getting started with Linux and I’ve been experimenting with different shells like bash, sh and fish.

So far I quite like fish because it is quite friendly and interactive shell.

What is your favourite shell and why?

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Submit an Answer
4 answers


It really depends on your needs and what you’ve gotten used to. My personal favorite is bash. I love the syntax, the autocompletion and it is installed by default on almost all servers that I have to work with on a daily basis.

If you want to learn more about Bash, I would suggest checking this open-source eBook on GitHub: Introduction to Bash Scripting eBook


Hi @devdojo,

I have to agree with @bobbyiliev. As his, my personal choice pretty much always falls to bash . Most of all, it’s easy to use and intuitive.

With that being said, I feel like a worthy mentioned would be zsh. Zsh is an extended Bourne shell with many improvements, including some features of Bash, ksh, and tcsh.

Let me give you some examples. You don’t have to type whole directory names when using ls, just type the first few letters enough to make it unique and Zsh will work the rest out.

ls /u/l

Will actually display the contents of /usr/lib.

Another great example is the kill command completion.I usually kill commands after inspecting them using ps or if I’m confident with pkill, Zsh gives you another option.

kill s

Press TAB and it will give you all the current processes that start with the letter s. You can then choose which to kill.

Having said that, I do feel that for beginners the default bash shell is best. However if you feel like diving in deeper, zsh is the way to go for me.



I agree that it really depends on what you need. I’ve seen a lot of people using fish just for the auto-suggestion based on history or for the tab completion using the man-page data. Keep in mind that in bash you can use the reverse–isearch by clicking Ctrl+R.

People also use fish to for the syntax highlighting and the colors as this comes by default and in the other shells you need to setup this on your own.

It will be nice if everyone can explain what shell they use and what they have added to it.



My favourite is definitely zsh. It’s like bash but you can set it up to have nice git integration which is why I like it so much. From the command line I can then always see what repo/branch I am in as well as the state of that branch (staged files, commits, matching upstream, etc.).