Linux 里的 TTY、Terminal、Shell、Console 傻傻分不清...

2016-09-20 10:11:41 +08:00
 jmyz0455

初学 Linux ,虽然会用但是分不清 TTY 、 Terminal 、 Shell 、 Console 各种的原理和区别。网上大多答案只是啰啰嗦嗦回答了是什么,但是没有说不同点,搞得我更乱了。有深明大义的大神深入浅出地解答一下吗?

5458 次点击
所在节点    Linux
13 条回复
7sDream
2016-09-20 10:21:47 +08:00
IgniteWhite
2016-09-20 10:47:44 +08:00
啊,这种问题不需要大神回答,就由我这个初学者回答吧

Terminal 这个应用里面运行的带字的东西是 Shell (相对于 Kernel 的可以由你控制的部分),每打开一个 Terminal 窗口就是等着你做点什么,这个窗口或者 tab 要编号,从 tty000 编起。你输入一个 ps 的指令就看到了。

Console 是针对程序的定义……比如你用 terminal 开了一个 Minecraft 的服务器,这个服务器程序开始运行之后, terminal 窗口里就出现一行行更新的东西,最后一行还有一个“>”这样的待命符可以让你输入命令 op 玩家——这样的界面就是这个服务器的 console 。很多软件里面都有 console ,尤其是科学计算软件里。
IgniteWhite
2016-09-20 10:48:24 +08:00
@IgniteWhite 不好意思是 ttys000
imn1
2016-09-20 11:22:53 +08:00
Terminal 是软件概念(tty 是狭义的 Teminal)
终端本身就是一个软件工具,可理解为它模拟命令行环境运行, tty 指文字输入输出,但终端不纯粹是文字输入输出,在 windows 类比(你说初学,估计接触 windows 多)就是 cmd
称为 Console 的图形化模拟器可能容易理解些

Shell 是原生概念
它是指命令组成,而不是具体实现这些命令的工具 /环境, windows 类比就是“ DOS 命令”(注意是命令,不是 DOS ,可以运行 DOS 命令的工具其实很多,不仅 cmd )

Console 是功能概念
在软件层面就是一个控制器,例如 sublimetext, 浏览器的 js 解析器都有控制台输出,但在系统层面,如 linux ,它就是非图形界面的命令运行器, windows 所说的开机直接进入 dos 也是这个意思
julyclyde
2016-09-20 11:36:23 +08:00
terminal 是硬件概念。软件的叫 terminal emulator
上述外设和电脑相连的时候,电脑这边的统一接口叫 tty ,后来虚化为 pty
jmyz0455
2016-09-20 16:52:24 +08:00
@7sDream 没搜过知乎,第二个真详细。请问这个问题也可以解答一下吗 [NT 3.X 以后的 Windows 里, DOS 、 CMD 、 Batch 、 PowerShell 的关系是?]( https://www.v2ex.com/t/307585)
jmyz0455
2016-09-20 16:55:28 +08:00
@IgniteWhite 好像一楼的答案更严谨一点,谢谢啦,请问这个问题也可以解答一下吗 https://www.v2ex.com/t/307585
Cabana
2016-09-20 19:22:55 +08:00
linux 萌新也问一下, bash 是跟 shell 同阶的吗?还是说是 shell 的一个子集?
hitmanx
2016-09-20 20:32:27 +08:00
eoo
2016-09-20 23:05:49 +08:00
@Cabana shell 有很多种, bash 只是 Linux 中默然使用的 shell
franklinyu
2016-09-20 23:30:05 +08:00
覺得 Bash = shell 的一定沒見過 /bin/sh ,/bin/ash ,/bin/csh ,/bin/tcsh ,/bin/zsh ……
okudayukiko0
2016-09-21 00:24:37 +08:00
TTY 约等于 Console
Terminal=Console
早期的 Unix 是没有显卡和显示屏的
后来有了显卡和显示器,文本界面就称为终端( Terminal )
Shell 吗, OS 的操作界面就是 Shell ,包括 GNOME , BASH ...不过大家所讲的 Shell 一般指命令行 BASH 。
BASH 是 Linux 里最常见的命令行 Shell ,除此外还有 ZSH , TCSH 等。
https://zh.wikipedia.org/wiki/%E7%B5%82%E7%AB%AF
https://zh.wikipedia.org/wiki/Getty_(Unix)
https://zh.wikipedia.org/wiki/%E6%AE%BC%E5%B1%A4
https://zh.wikipedia.org/wiki/Bash
KingsWay
2016-09-21 12:14:02 +08:00
还有 pty 、 pts 。。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/307430

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX