简单来说,在Unix系统中答案如下:

Well, etymologically speaking, anyway.

In unix terminology, the short answer is that:

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

详细展开来说,这三者的区别如下所示:

控制台(Console)

在早期的电脑上,往往具有带有大量开关和指示灯的面板,可以对电脑进行一些底层的操作,这个面板就叫做Console。其概念来自于管风琴的控制台。

一台电脑通常只能有一个Console,很多时候是电脑主机的一部分,和CPU共享一个机柜。

终端(Terminal)

一台大型主机往往需要支持许多用户同时使用,每个用户所使用操作的设备,就叫做终端(Terminal)。终端使用通信电缆与电脑主机连接,甚至可以通过电信网络(电话、电报线路等等)连接另一个城市的电脑。

Shell

Shell不是硬件,而是软件,是操作系统的操作界面。Windows 3.x可以看做是DOS的Shell。

Shell = Interpreter that executes commands typed as string.

参考文献