终端、控制台、Shell 和命令行之间有什么区别?

终端、控制台、Shell 和命令行之间有什么区别?

终端、控制台、Shell 和命令行之间有什么区别?

答案1

简短回答:

  • 终端= 文本输入/输出环境
  • 安慰= 物理终端
  • = 命令行解释器

长答案:

控制台和终端密切相关。最初,它们指的是一种可以与计算机交互的设备:在 Unix 的早期,这意味着电传打字机类似于打字机的设备,有时称为电传打字机,或简称为“tty”。终端这个名称来自电子观点,而控制台这个名称来自家具观点。在 unix 历史的早期,电子键盘和显示器成为终端的标准配置。

终端

在 UNIX 术语中,终端是一种特殊的设备文件它实现了许多附加命令(读写控制) 超出了读写范围。一些终端由内核代表硬件设备提供,例如,输入来自键盘,输出到文本模式屏幕,或者输入和输出通过串行线路传输。其他终端,有时称为伪终端或伪 tty,由称为的程序提供(通过薄内核层)终端仿真器. 一些类型的终端仿真器包括:

  • 运行在 GUI 应用程序X 窗口系统终端、Gnome 终端、Konsole、Terminator 等。
  • 屏幕tmux,它在程序和另一个终端之间提供了一层隔离
  • SSH,将一台机器上的终端与另一台机器上的程序连接起来
  • 预计,用于编写终端交互脚本

这个单词终端也可以有更传统的含义,即与计算机交互的设备,通常是键盘和显示器。例如,X 终端是一种瘦客户端,一种专用计算机,其唯一目的是驱动键盘、显示器、鼠标和偶尔其他人机交互外围设备,而实际应用程序则在另一台功能更强大的计算机上运行。

安慰

A安慰通常是物理意义上的终端,根据某种定义,它是直接连接到机器的主要终端。控制台在操作系统中显示为(内核实现的)终端。在某些系统(如 Linux 和 FreeBSD)上,控制台显示为多个终端 (tty)(特殊组合键在这些终端之间切换);为了混淆,每个特定终端的名称可以是“控制台”、“虚拟控制台”、“虚拟终端”和其他变体。

也可以看看为什么虚拟终端是“虚拟的”?“真实”终端是什么/为什么/在哪里?

命令行[界面]

A命令行是一个界面,用户在其中输入命令(以字符序列表示 - 通常是命令名称后跟一些参数)并按下Return键来执行该命令。

A是用户登录后看到的主要界面,其主要目的是启动其他程序。(我不知道原来的比喻是 shell 是用户的家庭环境,还是 shell 是其他程序运行的环境。)

在 Unix 圈子里,专门用于表示命令行外壳,主要包括输入要启动的应用程序的名称,然后输入应用程序应对其执行操作的文件或其他对象的名称,然后按 Enter 键。其他类型的环境(最近 Gnome Shell 是个显著的例外)通常不使用“shell”一词;例如,窗口系统涉及“窗口管理器“ 和 ”桌面环境”,而不是“壳”。

有许多不同的 unix shell。Ubuntu 的默认 shell 是猛击(与大多数其他 Linux 发行版一样)。流行的替代方案包括(强调功能和可定制性)和(强调简单性)。

命令行 shell 包括用于组合命令的流控制结构。除了在交互式提示符下键入命令外,用户还可以编写脚本。最常见的 shell 具有基于Bourneshell。在讨论“shell 编程”时,shell 几乎总是暗示是 Bourne 风格的 shell。一些经常用于脚本但缺乏高级交互功能的 shell 包括Korn shell(ksh)和许多变体。几乎所有类 Unix 系统都安装了 Bourne 风格的 shell /bin/sh,通常是 ash、ksh 或 bash。在 Ubuntu 上/bin/sh短跑,一种 ash 变体(之所以选择它,是因为它比 bash 速度更快,占用的内存更少)。

在 UNIX 系统管理中,用户的是登录时调用的程序。普通用户帐户有一个命令行 shell,但访问权限受限的用户可能有一个受限外壳或其他特定命令(例如,仅用于文件传输的帐户)。


终端和 shell 之间的分工并不完全明显。以下是它们的主要任务。

  • 输入:终端将按键转换成控制序列(例如Left\e[D)。shell 将控制序列转换成命令(例如\e[Dbackward-char)。
  • 行编辑、输入历史和完成由 shell 提供。
    • 终端可能会提供自己的行编辑、历史记录和完成功能,并且仅在准备好执行时才将行发送到 shell。以这种方式运行的唯一常见终端是M-x shellEmacs。
  • 输出:shell 发出诸​​如“显示foo”、“将前景色切换为绿色”、“将光标移动到下一行”等指令。终端根据这些指令采取行动。
  • 提示纯粹是一个外壳概念。
  • shell 永远不会看到它所运行的命令的输出(除非重定向)。输出历史记录(回滚)纯粹是一个终端概念。
  • 终端提供应用程序间的复制粘贴功能(通常使用鼠标或按键序列,例如Ctrl+ Shift+VShift+ Insert)。 shell 也可能有自己的内部复制粘贴机制(例如Meta+WCtrl+ Y)。
  • 作业控制(在后台启动程序并管理它们)主要由 shell 执行。但是,终端负责处理组合键,例如Ctrl+C可终止前台作业,Ctrl+Z可暂停前台作业。

回收自Unix 和 Linux

答案2

视觉表现。

终端

您可以坐下来,像老板一样工作。

终端

安慰

一些可以做很多事情的硬件。

安慰

另一个控制台的例子是视频游戏机,例如 Super Nintendo [您可以在其中玩 Actraiser]

基本上是一个运行命令的应用程序。

壳壳

命令行 [界面]

基本上,您可以输入命令的任何东西。

命令行界面命令行界面

答案3

来自Linux 信息计划

终端:从技术上讲,终端窗口(也称为终端仿真器)是图形用户界面 (GUI) 中模拟控制台的纯文本窗口。

用我们的话来说,这是一个 GUI 应用程序,我们可以从中访问用户的控制台。

安慰:包含计算机控件的仪表板

:Shell 是一个为 Linux 和其他类 Unix 操作系统提供传统的纯文本用户界面的程序

命令行:命令行是计算机显示器(通常是 CRT 或 LCD 面板)上全文本显示模式下命令提示符右侧的空间,用户可在其中输入命令和数据

答案4

是一个程序进程命令和返回输出,就像 Linux 中的 Bash。

A终端是一个运行过去,这是一个物理设备(在终端成为带键盘的显示器之前,它们是电传打字机),然后它的概念被转化为软件,比如 GNOME Terminal。

因此,当我打开 GNOME 终端时,会出现一个黑色窗口,运行出现,这样我就可以运行我的命令。

A安慰特殊类型的终端.这也是物理设备。例如在 Linux 中我们有虚拟控制台Ctrl,我们可以通过+ Alt+的组合F1来访问F7

安慰有时指键盘和显示器身体上连接至此计算机。

相关内容