Question

What is your favorite shell and why?

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?


Submit an answer


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Sign In or Sign Up to Answer

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.

Bobby Iliev
Site Moderator
Site Moderator badge
November 3, 2019
Accepted Answer

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.

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

Regards, Bobby

alexdo
Site Moderator
Site Moderator badge
November 3, 2019

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

KFSys
Site Moderator
Site Moderator badge
November 3, 2019

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

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Become a contributor for community

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

DigitalOcean Documentation

Full documentation for every DigitalOcean product.

Resources for startups and SMBs

The Wave has everything you need to know about building a business, from raising funding to marketing your product.

Get our newsletter

Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.

New accounts only. By submitting your email you agree to our Privacy Policy

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Get started for free

Sign up and get $200 in credit for your first 60 days with DigitalOcean.*

*This promotional offer applies to new accounts only.