What is your favorite shell and why?

November 3, 2019 196 views
Linux Basics Linux 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?

4 Answers

Hello,

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.

I would suggest checking this useful page on Wikipedia: Comparison of command shells

Regards,
Bobby

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.

Regards,
KDSys

Hey,

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.

Regards,
Alex

Hello,

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

Have another answer? Share your knowledge.