You see the term ‘Shell’ tossed around a lot these days. The Bourne Shell (sh), Bash (Bourne Again Shell), Powershell, etc. What actually is a “shell”?
Put simply, a shell is an interface that lets a user interact with the Operating System. A shell could be a command-line interface or a graphical user interface.
For the purpose of this post, we’ll be looking at command-line interface shells. I wanted to do a couple of posts about the Linux/Unix Command Line and thought it would be good to dive right in and explore a Unix (or Unix-like) Shell.
Many people will often times use words like terminal, command-line, shell, or bash interchangeably - but it’s important to note the difference. Let’s start with some terminology.
- Terminal - the actual window filled with text. When most people say “terminal”
they actually mean “terminal emulator” - and it does just that. It emulates an
old school video or text terminal within your operating system.
- Most Unix or Unix-like operating systems ship with a default terminal emulator, but you can install others without issue.
- Command Line - the actual place where you enter your commands. Letters appear here when you type on your keyboard. Usually has a blinking cursor.
- Shell - the software that runs inside the terminal window and sends your
commands to the operating system. Some examples:
- Bourne Shell and Bash
- Fish Shell
- …and many more!