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


211

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


1
(1/2)Agent Cool在大多数情况下是正确的,但鉴于此主题,他提供的Console的定义已过时。如果您关注的话,他的链接具有正确的信息。在他的链接上阅读整个定义。控制台被广泛使用以表示许多类似的东西,但最重要的是,它通常是指本地连接的人为输入和输出设备,例如键盘,显示器,甚至鼠标。
0xSheepdog 2014年

1
(2/2)这似乎是一个学问点,但是作为经验丰富的systemadmin,我会告诉你不是。当系统出现问题并且似乎完全崩溃/关闭/脱机时,您应该检查系统的物理控制台以查看它是否仍在运行,而只是失去了网络连接。这个小细节可能会节省您或花费数据,信息处理等费用。Pedantic,是的。但是很重要。
0xSheepdog 2014年

6
@ 0xSheepdog您可能希望将这些注释扩展为完整的答案(也包括其他术语的定义或说明),并以此形式发布。一个问题有多个答案也很不错(也许当它们以完全相同的方式传达相同的信息时除外)。我不确定为什么在本地检查机器的重要实践实际上依赖于知道/将其物理人机界面称为控制台,但是也许有人认为这对于与同事进行有效的交流或使用文档很重要。(您可以在回答中加以说明。)
Eliah Kagan 2014年

4
由于它们的密切关系(请参阅所有好的答案),这些术语有时会被同义词使用,这可能就是您提出这一问题的原因。
2014年

Answers:


143

简短答案:

  • 终端 =文本输入/输出环境
  • 控制台 =物理终端
  • 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 shell。Ubuntu的默认外壳是Bash(与大多数其他Linux发行版一样)。流行的替代方法包括zsh(强调功能和可定制性)和fish(强调简单性)。

命令行外壳包含用于组合命令的流控制构造。除了在交互式提示下键入命令外,用户还可以编写脚本。最常见的Shell具有基于Bourne_shell的通用语法。在讨论“ shell编程 ”时,几乎总是暗示该外壳是Bourne风格的外壳。一些经常用于脚本编写但缺乏高级交互功能的外壳包括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回收


1
对于终端设备文件和/或内核中的终端处理代码(tty ioctls,原始的/编写的,基本的行编辑)的专有术语,我不得不不同意您的看法。terminal =用于处理转义码,将按键转换为字符并在屏幕上绘画(或在纸/带上打印)的东西。请参阅我的答案以获取更多详细信息。
彼得·科德斯

2
@PeterCordes在此级别的细节上,没有区别。在设备文件的意义上,POSIX终端定义为与终端设备同义。那就是Unix的意思。它确实比处理转义代码,将按键转换为字符并在屏幕上绘制(或通过网络传输或记录到文件等)要好。
吉尔斯2014年

2
嗯,终端确实在这种意义上被使用了。假设内核正在处理的终端设备的一端有一个终端仿真器或一个连接有终端设备的串行端口。内核tty处理(在熟模式下)仅处理一些控制代码(^ c上的信号,^ u / ^?上的行编辑(删除)。我试图在tty代码和Linux部分之间画一条线。实现显卡和USB / PS2 / AT键盘上的VT100类终端可以编译Linux不必说,但也不是没有TTY。
彼得·科德斯

3
@PeterCordes在内核配置中,可以省略对终端的支持(这对于某些内存非常紧张的罕见嵌入式系统很有用);由所控制CONFIG_TTY。对终端仿真器(更正确地称为伪终端,“终端仿真器”并不总是包括telnetd,screen,expect等)的支持由来控制CONFIG_UNIX98_PTYS。对PC文本模式显示和键盘等的支持由来控制CONFIG_VT。请参阅drivers/tty/Kconfig内核源代码。
吉尔斯2014年

2
糟糕,我最近没有内核资源。CONFIG_TTY只是在2012年才添加。无论如何,是的,希望这能帮助任何想将难题的不同内容以及它们如何组合在一起的人。
彼得·科德斯

60

视觉表示。

终奌站

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

终奌站

安慰

一些硬件可以完成很多工作。

安慰

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

贝壳

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

贝壳贝壳

命令行[接口]

基本上任何您输入命令的内容。

命令行界面命令行界面


8
您偷走了我的想法-我将给出基本相同的答案。这样您就可以投票了。重点当然是,尽管这些术语如今几乎是同义的,但诸如“终端”和“控制台”之类的术语却起源于较早的计算概念。
thomasrutter 2014年

2
好功夫。简单易用
Umar Mukthar 2014年

19

来自Linux信息项目

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

用我们的话说就是GUI应用程序,从这里我们可以访问用户的控制台。

控制台:包含计算机控件的仪表板

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

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


5
“终端”代表物理纯文本屏幕。您所说的实际上是“终端仿真器”。
注册用户

2
@RegisteredUser终端仿真器是一种终端。字终端不限于物理终端(对于通常的字是控制台)。
吉尔斯2014年

2
命令行的此定义是错误的。命令行不限于纯文本显示模式。
吉尔斯2014年

1
@Gilles我已经从一个网络链接中获取了它。您提到了正确的答案。
rɑːdʒɑ

5
@AgentCool我不怀疑您具有复制粘贴功能。我质疑您选择的来源。无论您是否撰写,您发布的内容都是您的责任。
吉尔斯2014年

15

这里的答案似乎很好。但是,对于我的口味而言,它们太干又太技术性,所以我会考虑一下。

终点是某物的终点-终点。例如,如果您在某个城市乘地铁,您下车的车站就是您的终点站。或者在机场,人们到达目的地国家/地区时出来的地方被视为航站楼。如今,机场航站楼之所以成为人们登机的地方,还是人们下飞机的地方,都是出于明显的经济原因。

计算机的目的是获取数据,对其进行处理并吐出结果。因此,终端是可以从中获取计算结果的任何设备(例如屏幕)。碰巧,在最初的计算机中,通常将输入(键盘)和输出(屏幕)作为单个设备。因此,当今的终端被视为任何输入/输出设备。鼠标,键盘,屏幕,照相机都是端子。

Shell是OS的东西。在计算机上,您具有内核,例如在Ubuntu上是Linux部分。现在,由于内核确实是低级的,因此提供了一个shell-一个程序,使用户可以轻松地与内核进行交互。例如,这就是BASH。

控制台是(来自词典)

包含机器,一件电气设备等的控件的平面。

这就是为什么在音乐行业中带有所有旋钮的面板,或者在命令表的航天飞机中,它们都被视为控制台的原因。超级任天堂和PS2在历史上也被称为游戏机,因为第一个这样的娱乐设备看上去就像盒子上带有一堆按钮。

命令行只是一个界面-与GUI相反。即,计算机上有两种类型的接口:CLI(命令行界面)和GUI(图形用户界面)。主要区别在于,第一个从键盘输入,而第二个从鼠标输入。


1
您是什么意思“ GUI的反面”?
Koray Tugay 2015年

2
相反,我的意思是您拥有CLI或GUI。我现在已经在答案中阐明了更多。
Pithikos

12

总结一下我的答案:

Shell是一个processes命令和returns输出程序,就像Linux中的bash一样。

Terminal是一个程序,它是run一个外壳程序,过去是一个物理设备(在终端是带键盘的显示器之前,它们是电传打字机),然后将其概念转移到Gnome-Terminal软件中

因此,我打开Gnome-Terminal,出现一个运行Shell的黑色窗口,以便我可以运行命令。

控制台是一种特殊的终端,它也是一种物理设备。在Linux的例子中virtual console,我可以通过Ctrl+ Alt+ 的组合来访问它们F1 to F7

控制台有时表示物理连接到此计算机的键盘和监视器。


11

这些术语经常一起使用,因此人们使用其中一个术语来引用集合。(即从上下文中通常很明显,它们表示一个提供与命令行shell界面的终端窗口)。

为了避免这个问题变得冗长,我只想说xterm是XTerm / Gnome Terminal / Konsole / mrxvt / etc / etc的替代者。bash也是如此。

控制台还有其他多种特定含义,因此暂时将其忽略。

终端:通过双向ASCII / UTF8 /其他字符流(通常使用VT100或类似的转义码处理)提供与程序的人机交互的功能。(例如,退格键,删除键,箭头键等会生成转义码。程序可以打印转义码,以在终端屏幕上移动光标,切换为粗体和/或彩色,清除或滚动屏幕等。)过去,这通常是带有屏幕和键盘以及串行端口的专用设备。现在,它通常是xterm之类的程序。

有设备文件供程序从终端读取/写入终端,虚拟终端也可以将另一端作为设备文件访问。这是xterm写入您的输入的地方,以便bash可以读取它。

每个终端(包括虚拟终端)处于煮熟(而不是原始)模式时,都可以提供基本的行编辑。这由内核代码处理。bash提供了可以使用箭头键进行的行编辑的功能。(cat如果您想查看内核提供的基本行编辑是什么样的,请尝试运行并输入内容。退格键有效,并且根据您的stty设置,还可以进行其他操作。)

即使终端设备后面有很多内核代码,也将其称为终端处理代码,而不是终端本身。

编辑:吉尔(Gilles)已经说服我,将tty称为终端是正确的用法。终端仿真器以及与终端连接运行的交互式程序,都取决于内核实现的终端语义。(大多数行为是由POSIX标准化的,并且在Linux / * BSD /其他Unix中是相同的。)全屏文本编辑器取决于Unix tty行为以及光标移动转义码处理,和终端仿真器的许多其他功能。

但是,具有屏幕,键盘和串行端口的物理VT100是终端的一个实例。它不需要串行端口另一端的Unix内核即可完成。可能完全不同的是,将其发送转义码和ASCII文本,然后从中接收相同的内容。它只是VT100,而不是Unix终端。终端仿真器加上Unix tty语义构成了通常运行bash之类的Unix终端的完整程序包。

命令行是一种用户界面样式,您可以在其中键入一些内容,然后按回车键以使某些事情发生。它也用作命令行shell(如bash或MS-DOS)的简写,但是您也可以对fdisk之类的内容说“这是一个命令行工具”。仅考虑将终端用于其UI的程序,两个主要族是命令行和全屏文本(例如,诸如vi或的编辑器emacs -nw)。

通常在终端上运行的命令行程序几乎始终可以将其输入和输出重定向到文件上,但是基于终端的全屏程序(例如编辑器或电子邮件客户端)仅是交互式的,因此无法使用。

一个外壳是启动其他程序的程序。在Unix上下文中,通常指的是命令行shell(即Bourne shell或等效的C shell)。Unix shell也可以从文件(即shell脚本)读取其输入。它们是完整的编程语言,具有变量,循环和条件,并且许多程序都是用bash编写的(或者仅具有/bin/shPOSIX shell功能,以提高可移植性)。也可以轻松地for i in *.something; do some_program "$i";done 在交互式shell中编写快捷方式 。

放在一起,像bash这样的shell(或通过运行shell命令启动的任何程序)将/dev/pts/N在xterm将您的输入写入到伪终端一侧后,从终端设备接收字符。如果您运行cat,然后点击^c,则内核tty代码将作用于上^c,并将a发送SIGINT到该终端上的前台进程。(注意终端的用法在这种情况下,它表示的是Unix tty,而不是终端仿真器或连接到串行端口的东西。)之所以发生这种情况,是因为Shell在启动任何程序之前将终端置于“煮熟”模式,这意味着内核将对某些控件进行操作-序列。(tty代码仍然与处理VT100转义代码无关,只是与一些低ASCII控制代码无关。)如果您使用Linux控制台文本终端而不是xterm,则内核正在执行VT100仿真,并且处理所有这些东西。可以在没有虚拟控制台文本终端支持的情况下编译Linux,但在没有tty支持的情况下不能编译。

控制台有时被用作终端的同义词(KDE甚至有一个名为Konsole的终端仿真器)。

正如0xSheepdog指出的那样,它还有另一个含义:本地连接的人机交互硬件。

在内核上下文中,控制台还有另一种特定含义:控制台是写入引导消息的终端。这可以是一个串行端口。当然,通常情况下,通常是内核在图形硬件和USB / ps2 / AT键盘驱动程序之上实现的文本控制台。如果console=tty0 console=ttyS0,115200n8在命令行中使用Linux启动,则会在屏幕上以及在串行端口上获得内核消息。

Linux实现了虚拟控制台(/dev/tty1N)。您可以使用Ctrl+ Alt+ 交换您的物理屏幕/键盘正在控制的屏幕。典型的Linux发行版创建6,然后全部启动,因此即使您不能启动X11,也可以登录6次并在命令,手册页和其他任何内容之间切换运行屏幕之类的程序。Linux(内核)包括VT100样式的终端仿真器,可通过虚拟控制台上的屏幕和键盘提供终端接口。FNgetty

带登录提示的标准6个虚拟终端是Ctrl+ Alt+带F7您回到X11会话的原因:X服务器获取下一个可用的虚拟控制台。(不过,X服务器会/dev/input/...直接打开,而不是从中获取按键/dev/tty7。)

因此,“交换到文本控制台”意味着按下Ctrl+ Alt+ F1并使用该终端。早在计算机运行缓慢且没有太多RAM的时候,有些人在文本控制台上花费了很多时间,因为它们速度很快,您可以设置一个不错的字体,甚至将终端大小更改为较小的字符,但是一次在屏幕上显示更多。 Alt+ LeftAlt+ Right交换到上一个/下一个控制台。(当然,X11为其控制台禁用了此功能,仅保留Ctrl+ Alt+ 组合键。)FN

因此,控制台是其中唯一没有一个明确定义的技术含义的术语。它有几个不同的。(根据您对终端正确与终端加上tty处理的感觉,您可以说终端也有多种含义。)


2
控制台意味着“主要”物理终端不仅在内核上下文中。这是同样的意思/dev/console控制台并不是特别模棱两可的-尽管偶尔在更一般的终端意义上使用控制台,但这种情况非常罕见(比终端专门用来表示控制台要少得多)。
吉尔斯2014年

1
对,是,echo foo | 如果当前的VT处于文本模式(包括帧缓冲控制台,而不仅仅是VGA文本模式),那么sudo tee / dev / console> / dev / null将显示在屏幕上。如果您在串行端口上使用控制台启动,我认为它将在该端口启动。您可以说/ dev / console成为设备文件,无论内核将其视为系统控制台如何。系统中的其他所有内容都不需要具有控制台tty(除了引导恢复程序,如果系统无法引导至多用户模式,通常会从initrd启动在控制台TTY上运行Shell的引导恢复程序)
彼得·科德斯(Peter Cordes)2014年

1
xorg X服务器(字符串/ usr / bin / Xorg)不使用/ dev / console进行硬件访问。它确实使用/ dev / tty0,/ dev / tty%d和/ dev / vc /%d来设置自己的VT。我非常确定Xorg在通过内核控制台通过串行端口启动的PC上仍然可以正常运行。而且文本模式虚拟终端仍然可以使用。我考虑的越多,我越倾向于在内核上下文中将控制台视为仅在启动时选择的特殊终端。(如果您要求的话,Linux实际上可以一次在多个终端上输出其控制台消息。)
Peter Cordes 2014年

6

我认为,在分时使用计算机的早期,每个用户都有一个终端(只要有机会就可以使用它!),但是只有系统操作员才有一个控制台。该控制台可用于诸如重启计算机或获取用户终端无法完成的系统诊断之类的任务。控制台在机房中,机房是计算机的固有部分,而终端可以是远程的。控制台还将包括硬件灯和开关,而不仅仅是文本输入和输出。

我要说的是,命令行是用户可以键入命令的区域,而shell是解释/服从该命令的程序。术语“ shell”对于Unix派生类非常特殊。在Windows / DOS传统中,“命令行”更多。大型机上的等效语言通常称为“作业控制语言”。

显然,随着技术的发展,这些原始的区别随着时间的流逝而变得模糊。


3

尝试以用户为中心的简短答案:

命令行 -输入命令的行。通常,它用来告诉您需要在操作系统提供的文本模式窗口(命令行界面)中运行某些内容。

shell-操作系统运行的实际程序,用于处理您输入的内容command line。因此,名称为-非友好OS内核的用户友好外壳。它提供命令提示符,例如$>,运行其自己的命令和应用程序。您始终会通过该shell程序进行操作,而不会直接在控制台或终端上进行操作。

控制台 -是运行文本模式程序的窗口。该窗口处理按键,知道它的宽度和高度。可以全屏显示。

终端 -带有人类显示屏的某些设备,可以接受字符输入并显示它们。没有关于高度或宽度(仅hack)或键盘按键的反馈给用户-只有字符正在向其移动。终端在此流中处理特殊的序列,以使事物变色,清理屏幕并执行其他令人讨厌的事情。终端是易碎的,因为如果要传递给输出的文件包含特殊序列,则很容易使事情混乱。它们在网络和设备调试接口中很流行,因为您只需要一个流就可以发送输出并控制输出设备,并且您可以tap进行对话而无需初始化或创建窗口。

串行控制台 -是一个像终端一样处理输入流的控制台。


3

这是一个模糊的话题,因为这些术语非常含糊。我强烈建议您阅读我在整个答案中提供的链接,这些链接也是我获得此答案的来源。

是内核上的层:

  • 它解释用户输入的命令并进行处理。与用户不同,shell可以访问内核。用户只能通过使用Shell输入命令以及使用进程(即运行程序)来访问内核。程序使用系统调用来访问内核功能。所有系统调用共同构成系统API。
  • 外壳的示例在第二个终端定义中给出。

终端有许多含义:

  • (1)文本终端。这是显示监视器和键盘的组合。电缆将终端连接到计算机(通常是间接连接)。因为它位于电缆的末端,所以它被称为端子。这些终端通常在物理上与计算机分离,因为在过去,许多终端都连接到一台大型机/计算机,因此多个用户可以同时访问该计算机。
  • (2)终端窗口又名终端仿真器。在Linux中,终端窗口是GUI窗口中包含的控制台的仿真。这是您在其中键入文本的CLI,而您使用的Shell会读取此输入。外壳有很多类型(例如bash,dash,ksh88)和终端(例如konsole,gnome)。
  • (3)有关的说明伪终端,查看。它是两个“设备文件”对,用于在进程和终端仿真器之间进行通信。

一个控制台有很多含义:

  • (1)包含计算机控件的仪表板。
  • (2)系统控制台,又称计算机控制台。这是显示监视器和连接到计算机的键盘的组合。这就是所谓的“文本终端”的同义词。有时,其他用户输入的外围设备(例如鼠标)也是控制台的一部分。
  • (3)覆盖全屏的命令行界面。这与终端窗口相反,后者是一个GUI,右上角带有X来关闭它。这是类Unix系统中CLI(命令行界面)的两种显示模式。类似于终端窗口,控制台也可以运行许多shell。

通常,操作系统允许您在物理控制台上运行多个控制台(控制台定义2)。这些称为虚拟控制台,又称为虚拟终端,可以通过ctrl+ alt+ Fx组合进行访问。例如,如果要打开第3个虚拟控制台,请使用ctrl+ alt+ 组合键F3

控制台(定义3)在您看来可能不合时宜,但专家应该放心使用它们,因为许多操作系统不支持GUI。另外,如果GUI停止响应,则控制台可能仍然可以工作。


2

如今,大多数终端严格来说都是终端仿真器。它是类UNIX系统中的一种角色,同时又是系统提供的基本接口。实际上,包括GUI在内的所有内容都建立在其之上。
口语中的“终端”也可以指具有星形地形的计算机网络中的端点。

控制台是指终端的(硬件)接口。即有串行控制台,如今主要是虚拟控制台。
俗称“控制台”窗口的窗口是一个外壳,通过虚拟控制台连接到系统的终端。

早在计算机昂贵的时候,一个设施可能已经通过串行电缆(“串行控制台”)连接了一台实际的计算机和多个终端。OS,操作等在物理计算机上执行,输入和输出在控制台上进行。
您可以通过按CTRL+ ALT+ F1(从到F6)在虚拟终端之间切换:这些时间的剩余时间。
如今,“瘦客户机”的概念又回到了集中大量资源并提供足够硬件以在实际工作场所提供最先进接口的方向。

shell是您在终端中看到的“引擎”。它提供了与系统本身的互操作性,并添加了诸如自动完成,变量等漂亮的功能。
它在使用系统调用的实际OS /内核与您之间来回转换。没有外壳程序的系统调用有点像编码,assembler而外壳程序至少可以为您提供C

命令行是指通过文本窗口交换输入和输出的方法。严格地说在其中键入是行(目前的)命令行。通常将该方法更正确地称为命令行界面或CLI。

  1. 核心
  2. 提供终端
  3. 终端通过控制台连接
  4. 控制台运行外壳
  5. 通过命令行(接口)交换命令和输出

1
内核不理解命令行指令,但是外壳不理解。“内核理解的指令的核心框架”将是系统调用。“基本UNIX命令行界面”是一个外壳程序,它与“不错的功能”之间没有任何区别。“终端仿真器窗口”不是控制台。
吉尔斯

1
@吉尔斯调整。显然我自己在那里有些困惑。
2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.