Distributions
› Ubuntu
› Fedora
› CentOS
中文资源站
› 网易开源镜像站
jmyz0455
V2EX  ›  Linux

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

  •  
  •   jmyz0455 · Sep 20, 2016 · 6465 views
    This topic created in 3699 days ago, the information mentioned may be changed or developed.

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

    13 replies  •  2016-09-21 12:14:02 +08:00
    FurN1
    FurN1
    Sep 20, 2016
    2
    啊,这种问题不需要大神回答,就由我这个初学者回答吧

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

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

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

    Console 是功能概念
    在软件层面就是一个控制器,例如 sublimetext, 浏览器的 js 解析器都有控制台输出,但在系统层面,如 linux ,它就是非图形界面的命令运行器, windows 所说的开机直接进入 dos 也是这个意思
    julyclyde
    julyclyde
    Sep 20, 2016
    5
    terminal 是硬件概念。软件的叫 terminal emulator
    上述外设和电脑相连的时候,电脑这边的统一接口叫 tty ,后来虚化为 pty
    jmyz0455
    jmyz0455
    OP
    Sep 20, 2016
    6
    @7sDream 没搜过知乎,第二个真详细。请问这个问题也可以解答一下吗 [NT 3.X 以后的 Windows 里, DOS 、 CMD 、 Batch 、 PowerShell 的关系是?]( https://www.v2ex.com/t/307585)
    jmyz0455
    jmyz0455
    OP
    Sep 20, 2016
    7
    @IgniteWhite 好像一楼的答案更严谨一点,谢谢啦,请问这个问题也可以解答一下吗 https://www.v2ex.com/t/307585
    Cabana
    Cabana
    Sep 20, 2016 via Android
    8
    linux 萌新也问一下, bash 是跟 shell 同阶的吗?还是说是 shell 的一个子集?
    eoo
    eoo
    Sep 20, 2016 via Android
    10
    @Cabana shell 有很多种, bash 只是 Linux 中默然使用的 shell
    franklinyu
    franklinyu
    Sep 20, 2016
    11
    覺得 Bash = shell 的一定沒見過 /bin/sh ,/bin/ash ,/bin/csh ,/bin/tcsh ,/bin/zsh ……
    okudayukiko0
    okudayukiko0
    Sep 21, 2016
    12
    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
    KingsWay
    Sep 21, 2016
    13
    还有 pty 、 pts 。。。。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4785 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 08:18 · PVG 16:18 · LAX 00:18 · JFK 03:18
    ♥ Do have faith in what you're doing.