A shell is a user interface for access to an operating system’s services. Most often the user interacts with the shell using a command-line interface (CLI). The terminal is a program that opens a graphical window and lets you interact with the shell.
Originally, a computer terminal was an electronic or electromechanical hardware device used for entering data into, and displaying data from, a computer or a computing system. The terminal of the first working programmable, fully automatic digital Turing-complete computer, the Z3 (1941), had a keyboard and a row of lamps to show results.1
Early computers where huge machines taking up a lot of space. Commonly a system consisted of multiple cabinets, for example one cabinet for the main processor unit, one or more cabinets for tape drives, one cabinet for each disk drive, one cabinet for a punched card reader and one cabinet for a high speed printer. In the below image, a Univac 9400 system (1967) consisting of multiple cabinets is shown.
Early user terminals connected to computers were electromechanical teleprinters or teletypewriters (TeleTYpewriter, TTY). In the above image of the Univac 9400 system, the cabinet marked UNICAC 9400 is the main processor cabinet. The terminal is the machine looking like a huge typewriter placed on the desk to the left of the main processor cabinet. Another example of an early terminal is the Teletype Model 33 ASR (1963) shown below.
As technology improved, teleprinter terminals was replaced by video display terminals. One example of such a video display terminal is the DEC VT100 (1978) shown below.
Note that the DEC VT100 terminal shown above is not a computer. The DEC VT100 terminal was only used for input and output to and from a connected computer. In the below image DEC VT52 video terminal (1974) is connected to a PDP 11/55 computer (1975).