终端,控制台,命令行管理程序和命令行之间有什么区别?

秋娃

终端,控制台,命令行管理程序和命令行之间有什么区别?

吉勒斯“别再邪恶了”

简短答案:

  • 终端=文本输入/输出环境
  • 控制台=物理终端
  • shell =命令行解释器

长答案:

控制台和终端紧密相关。原来,他们的意思一台设备,通过它你可以与计算机交互:在UNIX的早期,这意味着一个电传式的装置类似一台打字机,有时也被称为速记一台电传打字机,或“TTY”。从电子的角度来看,“终端”这个名字,从家具的角度来看,这个名字是“控制台”。在Unix历史的早期,电子键盘和显示器已成为终端的规范。

终端

用unix术语来说,终端是一种特殊的设备文件,它实现了除读写之外的许多其他命令(ioctls)。某些终端由内核代表硬件设备提供,例如,输入来自键盘,输出进入文本模式屏幕,或者输入和输出通过串行线路传输。其他终端(有时称为伪终端或伪tty)由称为终端仿真器的程序(通过薄内核层)提供某些类型的终端仿真器包括:

  • X Window系统中运行的GUI应用程序Xterm,Gnome Terminal,Konsole,Terminator等。
  • 屏幕tmux,在程序和另一个终端之间提供隔离层
  • Ssh,它将一台计算机上的终端与另一台计算机上的程序连接
  • Expect,用于脚本化终端交互

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

安慰

控制台一般是在物理意义上,是由一些定义直接连接到机器主终端的终端。控制台在操作系统中显示为(内核实现的)终端。在某些系统上,例如Linux和FreeBSD,控制台显示为几个终端(ttys)(特殊的组合键在这些终端之间切换)。只是为了混淆,给每个特定终端的名称可以是“控制台”,“虚拟控制台”,“虚拟终端”和其他变体。

另请参见为什么虚拟终端是“虚拟的”,以及“真正的”终端在什么/为什么/在哪里?

命令行[界面]

命令行是用户类型的命令的接口(其表达为字符序列-通常是一个命令的名称,随后由一些参数)并按压Return来执行命令键。

一个是主界面,用户登录时看到的,其主要目的是启动其他程序。(我不知道最初的隐喻是shell是用户的家庭环境,还是该shell是其他程序在其中运行。)

在unix圈子中,shell专门指命令行外壳,以输入要启动的应用程序的名称为中心,然后输入应用程序应作用的文件或其他对象的名称,然后按Enter键。其他类型的环境(最近值得注意的Gnome Shell例外)通常不使用“ shell”一词;例如,窗口系统涉及“窗口管理器”和“桌面环境”,而不是“外壳”。

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

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

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


端子和外壳之间的分工并不完全明显。这是他们的主要任务。

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

Unix和Linux回收

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

终端,控制台,命令行管理程序和命令行之间有什么区别?

来自分类Dev

从命令行管道数据到 C# 控制台应用程序

来自分类Dev

如何将输入重定向到命令行管理程序?

来自分类Dev

摆脱控制台命令行

来自分类Dev

通过命令行和代码设置系统属性之间有什么区别?

来自分类Dev

Linux命令行中cat> filename和cat >> filename之间有什么区别

来自分类Dev

启动按钮关闭和命令行关闭之间有什么区别?

来自分类Dev

nautilus和命令行之间的/ home位置有什么区别?

来自分类Dev

从统一图标和命令行启动程序有什么区别?

来自分类Dev

Office 365 Exchange 命令行管理程序 - 使用 Excel 中的数据通过命令运行循环

来自分类Dev

命令行参数与输入 - 有什么区别?

来自分类Dev

如何从GUI和命令行管理Azure“文件”?

来自分类Dev

这些ls命令行参数之间有什么区别:-d vs *

来自分类Dev

Saltstack中的状态文件中的功能和命令行中的功能之间有什么区别?

来自分类Dev

Azure命令行任务-“标准错误失败”和“错误继续(未选中)”之间有什么区别?

来自分类Dev

dontet和dnx命令行工具有什么区别?

来自分类Dev

命令行中的关键字“ python”和“ python3”有什么区别?

来自分类Dev

hadoop 和 hdfs 命令行工具有什么区别?

来自分类Dev

C#控制台应用程序使用命令行,命令不执行

来自分类Dev

C#控制台应用程序使用命令行,命令不执行

来自分类Dev

如何切换到命令行控制台

来自分类Dev

如何切换到命令行控制台

来自分类Dev

确定控制台应用程序是从命令行运行还是从Powershell运行

来自分类Dev

vb.net 2010控制台应用程序命令行参数

来自分类Dev

C#-从命令行全局运行控制台应用程序

来自分类Dev

从命令行运行的 PyQt 程序不实时路由控制台输出

来自分类Dev

控制台,外壳程序,终端,终端仿真器,终端多路复用器和窗口管理器之间有什么区别?

来自分类Dev

使用SVN更新命令行管理冲突

来自分类Dev

ubuntu软件中心和命令行安装之间的区别

Related 相关文章

  1. 1

    终端,控制台,命令行管理程序和命令行之间有什么区别?

  2. 2

    从命令行管道数据到 C# 控制台应用程序

  3. 3

    如何将输入重定向到命令行管理程序?

  4. 4

    摆脱控制台命令行

  5. 5

    通过命令行和代码设置系统属性之间有什么区别?

  6. 6

    Linux命令行中cat> filename和cat >> filename之间有什么区别

  7. 7

    启动按钮关闭和命令行关闭之间有什么区别?

  8. 8

    nautilus和命令行之间的/ home位置有什么区别?

  9. 9

    从统一图标和命令行启动程序有什么区别?

  10. 10

    Office 365 Exchange 命令行管理程序 - 使用 Excel 中的数据通过命令运行循环

  11. 11

    命令行参数与输入 - 有什么区别?

  12. 12

    如何从GUI和命令行管理Azure“文件”?

  13. 13

    这些ls命令行参数之间有什么区别:-d vs *

  14. 14

    Saltstack中的状态文件中的功能和命令行中的功能之间有什么区别?

  15. 15

    Azure命令行任务-“标准错误失败”和“错误继续(未选中)”之间有什么区别?

  16. 16

    dontet和dnx命令行工具有什么区别?

  17. 17

    命令行中的关键字“ python”和“ python3”有什么区别?

  18. 18

    hadoop 和 hdfs 命令行工具有什么区别?

  19. 19

    C#控制台应用程序使用命令行,命令不执行

  20. 20

    C#控制台应用程序使用命令行,命令不执行

  21. 21

    如何切换到命令行控制台

  22. 22

    如何切换到命令行控制台

  23. 23

    确定控制台应用程序是从命令行运行还是从Powershell运行

  24. 24

    vb.net 2010控制台应用程序命令行参数

  25. 25

    C#-从命令行全局运行控制台应用程序

  26. 26

    从命令行运行的 PyQt 程序不实时路由控制台输出

  27. 27

    控制台,外壳程序,终端,终端仿真器,终端多路复用器和窗口管理器之间有什么区别?

  28. 28

    使用SVN更新命令行管理冲突

  29. 29

    ubuntu软件中心和命令行安装之间的区别

热门标签

归档