What is the exact difference between a ‘terminal’, a ‘shell’, a ‘tty’ and a ‘console’?

So here’s an interesting question, and Linux-news.org provides an excellent article that answers it:

http://linux-news.org/index.php/2011/10/19/what-is-the-exact-difference-between-a-terminal-a-shell-a-tty-and-a-console/

In unix terminology, the short answer is that

  • terminal = tty = text input/output environment
  • console = physical terminal
  • shell = command line interpreter