You might have opened your terminal many times before. This program is more factually called a terminal emulator. These terminal emulators are most often pre-installed and allow you to interact with your shell, I am writing this in the
gnome-terminal for example.
A shell basically is the following two things:
- An interpreter for shell commands: A shell allows you to execute shell commands via both an interactive shell prompt and via shell scripts.
- A programming language: A shell provides basic programming capabilities to combine shell commands in a more complex manner, with features including variables and flow control structures.
Examples of shells on Linux, and other UNIX-like systems, include bash, zsh, fish and ksh.
This page at the GNU website describes the shell at is base as a “macro processor that executes commands”. This term “marco processor” refers to the capability of shells to expand text and symbols into larger expressions.