How many times have you heard the term shell?
Do you wonder what the hell everyone is talking about when they say it?
I know I did. It must have been about a dozen times before I finally learned what it means.
Today is your day. You’re going to learn what a shell is. You’re going to learn why it’s important. And you’re going to learn what it means to Linux gurus.
A shell is an interface offering limited, well-defined access to core services.
A Better, Intuitive Understanding
Picture a turtle shell. A turtle’s shell allows the turtle to interface with the world outside, and vice-versa. But, at the same time, protects from predators, the elements, and other hazards.
In the context of computing, a shell does the same thing for a program or collection of programs. It protects the gooey, fragile core while still allowing an effective, well-defined interface between that core and the outside.
It’s true, the definition and analogy are a bit abstract. Typically, shell is used more specifically. It usually refers to a command line interface for a computer operating system. An example is a Linux terminal.
Unless it’s contextually obvious that the meaning is different, it’s safe to assume that’s what shell is being referred to.
However, since computer geeks like to make life difficult, on rare occasions, shell is used for other things. A shell is not necessarily a protective wrapper around the operating system, it’s a protective wrapper around something.
For example, the interface of your web browser is technically a shell around a rendering engine for web languages like HTML. Some desktop environments provide a framework of graphical tools that are then used by a shell.
Context is important. Most of the time, you can assume shell means a command line interface between you and your operating system. However, if you’re on the beach and your buddy shouts “Hey! Look at that awesome shell,” they’re likely referring to some sort of sea shell, not an operating system shell.
Are There Multiple Shells?
Yes. There’s bash, ksh, zsh, and many more. 99% of Linux distributions use the Bourne Again Shell, or bash. Much of Linux was inspired by the UNIX operating system, and bash is no different. Bash started as a free clone of the UNIX Bourne Shell, and has evolved and improved over time.
If you want to try out another shell, the Z Shell, or zsh is popular and easy for anyone familiar with bash to master. Simply install zsh from your distribution’s repositories and type zsh in a terminal.