shell、控制台和终端有什么区别?

cla*_*aws 222 terminal shell console

我对术语感到困惑。shell、控制台和终端有什么区别?

Dou*_*ris 200

在 linux 世界中,从键盘上的用户的角度来看,它们看起来都是一样的。不同之处在于它们如何相互作用。

所述外壳是实际处理的命令,并返回输出该程序。大多数 shell 还管理前台和后台进程、命令历史记录和命令行编辑。这些特性(以及更多特性)是bash现代 linux 系统中最常见的 shell 中的标准。

终端指的是运行在壳的包装程序。几十年前,这是一个物理设备,仅由显示器和键盘组成。随着 unix/linux 系统添加了更好的多处理和窗口系统,这个终端概念被抽象为软件。现在,您有了Gnome 终端等程序,它可以在 Gnome 窗口环境中启动一个窗口,该窗口将运行一个shell,您可以在其中输入命令。

控制台是一种特殊类型的终端。从历史上看,控制台是单个键盘和显示器,插入计算机上的专用串行控制台端口,用于与操作系统进行低级别的直接通信。现代 linux 系统提供虚拟控制台。这些是通过组合键(例如Alt+F1Ctrl+ Alt+ F1功能键编号不同的控制台)访问的,这些组合在 linux 操作系统的低级别处理——这意味着没有需要安装和配置来运行的特殊服务. 与控制台的交互也是使用shell程序完成的。

  • **控制台**有时表示“物理连接到这台计算机的键盘和显示器”。例如,“我从控制台登录,因为服务器没有响应网络。” (17认同)
  • 因此,如果 *terminals* 和 *consoles* 在现代都是以软件实现的 - 两者(现在)之间有什么区别? (10认同)
  • 在终端成为带键盘的显示器之前,它们是电传打字机——一种电动打字机。http://en.wikipedia.org/wiki/Teleprinter (4认同)
  • @Doug Harris:你能添加一些你正在谈论的硬件的图片吗? (3认同)
  • @GavinHope 我认为控制台是“低级”的,作为操作系统核心的一部分实现。像 Gnome 这样的图形 shell 在它上面运行,然后像 gnome-terminal 这样的终端在它上面运行得更远。因此,区别在于它们运行的​​级别。 (2认同)

Pet*_*ake 17

shell 是一个程序,它发出提示并等待您输入命令。它执行它们,然后打印另一个提示。所以,就像 Windows 中的 CMD 或 Unix 中的 Bash。它可以在终端或控制台上运行。

控制台最初是一个物理的东西,一个控制面板。在计算术语中,它通常意味着您在 GUI 启动之前或完成之后看到的显示;您有时可以切换到显示它而不是 GUI。它是操作系统打印错误消息的地方。在多用户计算机上,它是实际连接到计算机的显示器。只是为了让您感到困惑,在 Windows 上,它也可能意味着一个带有命令外壳的窗口,即终端。

终端最初也是硬件,用于与计算机进行通信。现在它通常是指带有命令行(shell)的窗口,它可能出现在 GUI 窗口中或代替 GUI。


Kar*_*son 12

对于初学者初学者

更详细的描述:https : //askubuntu.com/a/506628/130518

  • 终端=文本输入/输出环境
  • 控制台 = 物理终端(你可以实际接触到的东西)
  • shell = 命令行解释器

我将在下面的文本中描述最正常的用例。

终端使用外壳。shell 可以在没有终端的情况下运行。

与日常用品相关:

  • 终端 -> 家中的电视屏幕
  • Shell -> 在电视屏幕上运行的程序

另一种看待它的方式:你的耳朵(输入)和嘴巴(输出)是声音的终端。您的大脑是使用特定外壳(处理)来解释这些声音的。

终端是供我们人类使用的,因此我们可以从 shell 读取和写入。Shell 可以在不需要人为交互的后台进程中运行,例如 cron 作业,因此不需要终端。

存在的终端的几个例子:

  • 命令提示符
  • 瓜克
  • 侏儒终端
  • 终结者

存在的壳的几个例子:

  • 重击
  • sh(伯恩壳)
  • PowerShell [窗口]
  • zsh(Z 壳)

我只写了这两个的正常工作方式,它们还有其他工作方式,但这是针对更高级用户的。