终端、控制台、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[D
→backward-char
)。 - 行编辑、输入历史和完成由 shell 提供。
- 终端可能会提供自己的行编辑、历史记录和完成功能,并且仅在准备好执行时才将行发送到 shell。以这种方式运行的唯一常见终端是
M-x shell
Emacs。
- 终端可能会提供自己的行编辑、历史记录和完成功能,并且仅在准备好执行时才将行发送到 shell。以这种方式运行的唯一常见终端是
- 输出:shell 发出诸如“显示
foo
”、“将前景色切换为绿色”、“将光标移动到下一行”等指令。终端根据这些指令采取行动。 - 提示纯粹是一个外壳概念。
- shell 永远不会看到它所运行的命令的输出(除非重定向)。输出历史记录(回滚)纯粹是一个终端概念。
- 终端提供应用程序间的复制粘贴功能(通常使用鼠标或按键序列,例如Ctrl+ Shift+V或Shift+ Insert)。 shell 也可能有自己的内部复制粘贴机制(例如Meta+W和Ctrl+ 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。
安慰有时指键盘和显示器身体上连接至此计算机。