I've been using Linux Mint since March 2020, and I haven't used any shells other than the Bash shell.

So what exactly is the difference between the Bash shell and the other shells (Fish, Zsh, Ksh, Tcsh, C shell)? Are the commands different? Or is it the features? Or something else?
;)Please help the newbie understand shells!


1 Answer 1


The primary role of a shell is to let you run the programs that are installed on your system. As a consequence, all command line shells let you run pretty much the same commands. The differences are a very small number of commands that are built into the shells themselves, which vary a little between shells.

Shells differ mainly in terms of their programming facilities and their command line capabilities (completion, history recall, syntactic convenience, etc.). See What are the fundamental differences between the mainstream *NIX shells?. Shells are responsible for command line edition and this too varies between shells.

For interactive use, bash is the default on Linux, zsh is the default on macOS. If you've started to get used to bash, you can read my guide to why zsh is better. The only other serious contender for interactive use is fish which has nice defaults but little configurability.

Not the answer you're looking for? Browse other questions tagged or ask your own question.