技术解析

Linux 里的 TTY、Terminal、Shell、Console 傻傻分不清...
0
2021-07-02 16:07:04
idczone

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


https://www.zhihu.com/question/21711307
http://unix.stackexchange.com/questions/4126/what-is-the-exact-difference-between-a-terminal-a-shell-a-tty-and-a-con

啊,这种问题不需要大神回答,就由我这个初学者回答吧
Terminal 这个应用里面运行的带字的东西是 Shell (相对于 Kernel 的可以由你控制的部分),每打开一个 Terminal 窗口就是等着你做点什么,这个窗口或者 tab 要编号,从 tty000 编起。你输入一个 ps 的指令就看到了。
Console 是针对程序的定义……比如你用 terminal 开了一个 Minecraft 的服务器,这个服务器程序开始运行之后, terminal 窗口里就出现一行行更新的东西,最后一行还有一个“>”这样的待命符可以让你输入命令 op 玩家——这样的界面就是这个服务器的 console 。很多软件里面都有 console ,尤其是科学计算软件里。

不好意思是 ttys000

Terminal 是软件概念(tty 是狭义的 Teminal)
终端本身就是一个软件工具,可理解为它模拟命令行环境运行, tty 指文字输入输出,但终端不纯粹是文字输入输出,在 windows 类比(你说初学,估计接触 windows 多)就是 cmd
称为 Console 的图形化模拟器可能容易理解些
Shell 是原生概念
它是指命令组成,而不是具体实现这些命令的工具 /环境, windows 类比就是“ DOS 命令”(注意是命令,不是 DOS ,可以运行 DOS 命令的工具其实很多,不仅 cmd )
Console 是功能概念
在软件层面就是一个控制器,例如 sublimetext, 浏览器的 js 解析器都有控制台输出,但在系统层面,如 linux ,它就是非图形界面的命令运行器, windows 所说的开机直接进入 dos 也是这个意思

terminal 是硬件概念。软件的叫 terminal emulator
上述外设和电脑相连的时候,电脑这边的统一接口叫 tty ,后来虚化为 pty

没搜过知乎,第二个真详细。请问这个问题也可以解答一下吗 [NT 3.X 以后的 Windows 里, DOS 、 CMD 、 Batch 、 PowerShell 的关系是?]( https://www.v2ex.com/t/307585)

好像一楼的答案更严谨一点,谢谢啦,请问这个问题也可以解答一下吗 https://www.v2ex.com/t/307585

linux 萌新也问一下, bash 是跟 shell 同阶的吗?还是说是 shell 的一个子集?

http://lmgtfy.com/?q=bash

shell 有很多种, bash 只是 Linux 中默然使用的 shell

覺得 Bash = shell 的一定沒見過 /bin/sh ,/bin/ash ,/bin/csh ,/bin/tcsh ,/bin/zsh ……

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

还有 pty 、 pts 。。。。

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服