The shell is a program that takes commands from the keyboard and gives them to the operating system to perform. This environment lets users run commands, programs, and shell scripts. The shell is both an interactive command language and a scripting language, and is used by the operating system to control the execution of the system using shell scripts.
The first Unix shell was the Thompson shell, sh, written by Ken Thompson at Bell Labs back in the early 1970s. Nowadays, on many Linux systems, bash (which stands for Bourne Again SHell) or zsh acts as the shell program. bash was first released in 1989, and implements the POSIX standard plus many extensions.
But there are lots of other free and open source shells available for Linux. We spotlight our recommended free and open source shells.

Let’s explore the 35 shells in more detail. For each program we have compiled its own portal page, a full description with an in-depth analysis of its features, together with links to relevant resources.
| Shells | |
|---|---|
| zsh | Advanced and programmable command interpreter |
| Nushell | Adopts the Unix philosophy of shells where pipes connect command together |
| fish | Smart and user-friendly command line shell |
| Xonsh | Python-powered, cross-platform shell language and command prompt |
| bash | sh-compatible command language interpreter |
| Murex | Intuitive, typed and content aware shell |
| PowerShell | Cross-platform automation and configuration framework |
| Elvsh | Expressive programming language and a versatile interactive shell |
| Oils | Billed as an upgrade to bash. Written in Python. |
| DASH | POSIX-compliant implementation of sh that aims to be as small as possible |
| sh | Shell parser, formatter, and interpreter |
| tcsh | C shell with file name completion and command line editing |
| mksh | MirBSD Korn shell |
| ksh | Unix shell which was developed by David Korn at Bell Labs |
| brush | POSIX- and bash compatible shell |
| Rash | Language, library, and shell REPL for Racket. |
| ion | Modern system shell that features a simple, yet powerful, syntax |
| Cicada | Bash-like command environment with scripting and job control |
| Yash | Yet another shell |
| oksh | Portable OpenBSD ks |
| es | Extensible shell with higher-order functio |
| dune | A shell by the beach |
| cosh | Concatenative command-line she |
| Marcel | Modern command environment combining Python with Unix pipelines |
| Hilbish | Highly extensible command environment configured with Lua |
| gsh | POSIX-compatible generative shell |
| arsh | Statically typed scripting language with shell-like features |
| Sushi shell | Bash clone shell implemented in Rust |
| loksh | Linux port of OpenBSD's Korn-compatible command interpreter |
| fortsh | Shell written in Fortran |
| hsh | Slightly different take on your shell |
| ReShell | Modern shell |
| rash | Rudimentary shell |
| Dax | Custom Unix shell implementation |
| cjsh | POSIX-oriented command environment with modern interactive features |
This article has been updated to reflect the changes outlined in our recent announcement.
LinuxLinks helps you discover the best free and open source software for Linux. Explore our extensive collection of recommended applications, including alternatives to popular proprietary software.We also publish software reviews, Linux tutorials, hardware reviews, free programming books and articles covering the wider open source community. Browse our Linux resources to discover more. Know a useful free and open source Linux application we haven't covered? Suggest a program for inclusion. Has your software been featured on LinuxLinks? Display one of our Featured on LinuxLinks badges on your website or GitHub README. |


Please read our Comment Policy before commenting.
“Rating Chart” is missing.
Fixed, thanks.