🐧How many Linux shells are there?

Aaron A.
2 min readNov 5, 2021
Photo by George Girnas on Unsplash

… I found 15:

+-----+------------------------------------------------------------+
| # | name |
+-----+------------------------------------------------------------+
| 1 | The Bourne Shell | sh | +-----+------------------------------------------------------------+
| 2 | The Bash Shell | bash |
+-----+------------------------------------------------------------+
| 3 | The C shell | csh |
+-----+------------------------------------------------------------+
| 4 | The Korn Shell | ksh | +-----+------------------------------------------------------------+
| 5 | The ZSH Shell | zsh |
+-----+------------------------------------------------------------+
| 6 | The TENEX C Shell | tcsh |
+-----+------------------------------------------------------------+
| 7 | The Fish Shell | fish | +-----+------------------------------------------------------------+
| 8 | The Ion shell | ion |
+-----+------------------------------------------------------------+
| 9 | The Dash Shell | dash |
+-----+------------------------------------------------------------+
| 10 | Eshell | eshell | +-----+------------------------------------------------------------+
| 11 | The rc Shell | rc |
+-----+------------------------------------------------------------+
| 12 | The Scheme Shell | scsh |
+-----+------------------------------------------------------------+
| 13 | The Xonsh Shell | xonsh | +-----+------------------------------------------------------------+
| 14 | The Oh Shell | oh |
+-----+------------------------------------------------------------+
| 15 | The Elvish Shell | elvish |
+-----+----------------------------------------------------------[1]

Which shell am I currently using?

To find out which shell you’re using, go ahead and execute either of the following commands on your terminal:

echo $0

alternatively,

echo $SHELL

(https://askubuntu.com/questions/590899/how-do-i-check-which-shell-i-am-using)

Which shells are available in my device?

There are at least two ways to check which shells are available in your device. Using a cat command:

cat /etc/shells

(https://unix.stackexchange.com/questions/140286/how-to-find-list-of-available-shells-by-command-line)

Or the following regular expression:

grep '^[^#]' /etc/shells

(https://www.geeksforgeeks.org/list-out-all-the-shells-using-linux-commands/)

DO NOT MISS

In reading stuff to learn about this/prepare this short post, this translator/comparator came up:

https://hyperpolyglot.org/unix-shells

It documents syntax differences between bash, fish, ksh, tcsh and zsh.

Background

What is a shell

A shell is a program that provides an interface between a user and an operating system (OS) kernel.[2]

>>> did I unintentionally leave any out? Please let me know!

__________________________________________________________________

[1] https://www.ubuntupit.com/linux-shell-roundup-15-most-popular-open-source-linux-shells/

[2] https://www.thegeekdiary.com/unix-linux-what-is-a-shell-what-are-different-shells/

[3] https://www.unix.com/man-page/osx/1/chpass/

Consulted:

--

--

Aaron A.

a reformed lawyer turned software engineer, in love with the internet.