A program that emulates a TTY (the most common terminal standard is the VT100? terminal).
Besides the Linux console itself, the most common TerminalEmulator is xterm(1). At launch, most TerminalEmulators run an interactive Shell inside themselves by default.
There are many graphical TerminalEmulators which provide a window with an emulated terminal in a GUI environment. It has been said that X11 is mostly useful because it allows you to have so many terminals on screen at the same time. xterm(1) is the default one with very mature and complete emulation support. It is not particularly customizable in appearance, however, and in times past was considered somewhat resource hungry. Over time, a wide range of TerminalEmulators offering just about any distinguishing characteristic you particularly care for (performance, memory footprint, eyecandy, DesktopEnvironment integration etc) have been written.
Here are some of the more common ones:
7 pages link to TerminalEmulator: