Terminal Terminology
These are often used interchangeably.
A Shell is a program that interprets and processes commands, and returns output. Examples of shells are BASH (Linux standard), CSH, and ZSH.
A Terminal is some kind of device that runs the shell. It may be a physical or a virtual device.
Console is usually synonymous with terminal, but may refer to the physical screen and keyboard of a terminal.
tty is often synonymous with terminal, and originally meant "tele-typewriter". In Linux, tty usually refers to a virtual console.