A shell is software that lets users interact with the operating system, usually by typing at a command-line.
Shells are used to interact with the Operating System (OS) and launch other applications.
Shells also have built-in commands, depending on the OS. Examples are directory listings, moving and copying files (Windows) or job control (Unix-like).
Most shells offer scripting capabilities, starting with simple sequential execution of commands. For more complex problems, control structures (like conditionals or loops) can be used.
Broadly used shell include:
See Comparison of command shells on Wikipedia for a more extensive list.