Which Linux command shell do you prefer?

No readers like this yet.
No readers like this yet.
Shells in a competition

Opensource.com

Which command shell do you prefer?

When we asked this question a year ago as a part of our article on open source shell options, over six thousand of you responded, and Bash was the overwhelming winner that time around. But preferences change over time, and we thought it was high time to ask again. Which shell do you use, and why?

Personally, I default to Zsh on any machine I spend long enough using to warrant doing some customization. It's nothing again Bash; I use bash all the time on remote systems, and I'd hazard a guess that pretty much every shell script I have saved invokes bash to run it. But the first time someone showed me Oh My Zsh and how I could instantly make my terminal easier to use and, well, more awesome, I was hooked. Yes, similar projects have developed for other shells (like Bash-it), but the large community and huge number of themes and plugins for Oh My Zsh sold me.

But you don't have to take my word for it. Go out there, try a couple of shell options, and report back: Which shell is your favorite, and why do you prefer it?

2565 votes tallied
bash
64% (1644 votes)
ksh
2% (54 votes)
fish
7% (180 votes)
tcsh
1% (36 votes)
zsh
24% (608 votes)
Something else (let us know in the comments)
2% (43 votes)

Results

Comments

24 Comments

With bash being a clear winner yet again; it looks like people's preference is still same (myself included) ;)

Given that bash is the default for most distributions, and it takes effort to learn a new one, I would be surprised if it is ever going to be anything other than the default shell.

It's not a comment about other shells, more an observation on human behaviour.

perhaps the questions should be rephrased:

option 1: i never tried other shells so i use the default (bash)

option 2: i tried other shells but i prefer bash

other options as usual.

or as a second question: how many shells are you experienced with? with a number field as response. then we can see how many people only know one shell, and correlate how many tries it took someone to discover another shell.

greetings, eMBee.

Totally agree. I personally only tried bash and zsh, and fell in love with zsh just as the OP does. I think I'll try fish later.

Is this issue of any importance?

It must, be, since you are here commenting on it. It is Opensource.com, and discussion of open source tools is rather common here.

I use my own shell! It's called YaSh.

YaSh is a really small shell with many cool features. pushd/popd, multi-arg cd, ctrl + z, aliasing, piping, io redirection, some really nice line editing features, including ctrl + a, ctrl + e, ctrl + k, del, ctrl + d, ctrl + h, ctrl + del (remove next argument -- not present in the current "stable" version, but is on master), ctrl +arrow (jump to next/prior argument), and, of course, tab completion!

Anyone looking to give it a try is welcome to! The goal of this shell is to be lightweight and feature-rich. So no for loops or functions or if statements, as bash scrips can simply be run from my shell and I wouldn't dare try to compete with bash.

The shell is located here:
http://git.allen-software.com/allensoftware/YaSh

And here:
https://github.com/allenh1/YaSh

The shell is not quite at the place I want it for a first minor version release, but it is, in its current state, more than usable. I'm always up for new ideas if you have them!

Like the article says nothing against bash but I prefer zsh. I like the extra features and is more versatile in my opinion.

I've tried zsh and tcsh but I still keep going back to bash. It does everything I need and I can't find a reason to switch.

I still use bash, because I have found it to be the most consistent for both interactive use and shell scripts. It is the slowest shell of them all, though, and by a large margin: http://unix.stackexchange.com/questions/148035/

I have not found yet the time to test these, but modern shells that look very promising are xonsh (which mixes the best from bash+Python) and xiki (which takes interactive use to another level). There is also Microsoft Powershell for Linux, available now as open source on Github, which I have found to be pretty interesting too.

/bin/sh

Life is too short to waste time with this.

so that's why you use the shell with the shortest name? ;-)

I used tcsh at my former job because it was the shell for which all the internal scripts had been written, so it just seemed sensible to use it as my daily driver. It does lack a lot of the conveniences that bash has, though, and so at home (and at my new job) I use bash. I still test my scripts against tcsh for portability, but bash is just too nice to get away from.

Zsh, on the other hand, swings too far the other way, for me. It's nice, it has a lot of cool ideas, but in the end it just tries to do too much for my liking. I could probably give it another try and dumb-down some of the features that I don't like, but at that point, I may as well just stick with bash.

And that's what I do. Bash ftw.

It's fish and nothing else for me :)

Folks who say it isn't compatible might wanna take a look at the bass plugin. But if you want bash, just enter it temporarily. And come back to fish when you're done.

I'm a relic.... I prefer tcsh, having used csh on BSD and SunOS thru the 80s and 90s.
Perhaps the comment on the original shell you learned applies here, but for what it's worth when I need to do scripting in my system work, I write it in BASH.

I am from the same path. Csh was a great improvement over bash when I started using unix. It was replaced by tcsh. Most of the features have been moved to bash but I do not like the syntax of loops and ifs in bash. With tcsh I get it right every time.

The one and only original shell: should. There since Unix V6 left Bell Labs long time back.

For a login shell, there is no finer shell than tcsh with its parameterized aliases capabilities (which bash lacks -- must use a function) make it the only one to use.

For shell scripts, Bourne shell is the one to use (do not use csh/tcsh except for .tcshrc and .login and .logout of course) -- if you need more enhanced capabilities such as are found in bash, then you should be using perl or python for your script.

I have used most of the major shells and a few of the lesser known shells too.

For writing program logic a shell in sh family, sh, sh5, ksh, zsh, and of course bash are definitely preferable.

For interactive use a true sh like the original Bourne Shell lacks many of the command recall features that most other shells offer, but it's still a good shell for programming.

Frankly zsh, tcsh, though their programming syntax differs, they're very similar, much more than you'd think for shells from the two different families.

At the end of the day the bash shell is most convenient because it is the most common. Otherwise there's not as much difference as some would claim. Two minutes after starting them it's possible to do most common tasks.

I use the terminal. I come from the world of DOS and used unix in the 80's but I don't know what 'the shell' is. Is it like a DOS batch file? I have run things using ./

The shell is the program that runs the commands you issue to it at the terminal; either interactively, as you've probably used it, or by executing them in a script, which is roughly analogous to a batch file in DOS.

In DOS, the COMMAND.COM program was the shell that you interacted with.

I use ZSH + Oh my zsh (http://ohmyz.sh/). I've replaced year old bash usage in about 15 minutes and I'll not switch back. The bash shell is the default on all my servers.

Have to mention https://github.com/modernish/modernish here, which sounds really interesting: allowing the same syntax to run on various shells..! Haven't used it myself yet. I use bash, the most widely installed login shell. (I'm sure zsh is nicer/better, but it needs to be separately installed on most systems...)

I use xonsh witch give me tho power of python language and its libraries inside the shell I think you should add this in the options of your survey. Here's the link to the official site of xonsh:
http://xon.sh