The shell is an interface to the operating system just like the graphic user interface (GUI) is. Typically, the shell acts as a command interpreter; it takes each command and passes it to the operating system. It then displays the results of this operation on your screen.
The most common shells are
Bourne shell (sh)
C shell (csh)
Korn shell (ksh)
TC Shell (tcsh)
Bourne Again Shell (bash)
To identify which shell you are currently running, you may type in your current shell echo $shell
Historically, the shell came before the GUI, however the latter has become more popular since it allows in several cases easier usage of a computer. In reality, the shell is well-suited in specific types of usage and extra functionality that it may provide can make it quite productive.
This document describes the tcshrc project, a project that demonstrates exactly this extra functionality of the tcsh shell and makes it more accesible to the end user.