Q: 计算机的书籍中,在描述终端/shell的时候,到处充斥着tty/console/shell/stdout之类的字眼,我们该如何理解它们?
A: 因为历史原因, 有一些名词慢慢失去了最开始的含义,而跟着时代变迁开始扩展新的含义。
名词/时间 | 早期 | 现代 | 解读 |
终端(Terminal) | 计算机主机配备的用于输入和显示结果的外围设备: 一般就是显示设备和键盘. | 任何可以用于输入和显示的设备或程序或端口 | 1 "电线"的末端; 2 可以连接到"主机"的任何硬件或软件形态. |
TTY | 电传打字机: 早期终端的一种 | 各种终端设备的统称 | TTY既有硬件概念, 也有软件概念 |
控制台(Console) | 计算机主机最重要的控制设备, 有开关和状态显示,一般由管理员控制 | 计算机或服务器最重要的命令行控制界面 | "最重要"的终端 |
Shell | 命令行CLI解释器, 处理输入和输出数据 | GUI或CLI形式的接口或程序, 方便用户操作计算机 | Shell一般配合终端一起处理, 终端一般会默认运行shell以方便输入输出控制 |
Stdout | 操作系统文件概念, 字符形式输出设备 | 同早期概念 | 软件概念的"输出设备" |
个人电脑的屏幕和键盘 --> 控制台
终端应用程序(或不同标签页) --> “虚拟”终端(TTY)
终端应用程序 打开的默认输入输出接口 --> Shell
/dev/tty... --> stdout
作者: 陈曦
环境: MacOS 10.14.5
Apple LLVM version 10.0.1 (clang-1001.0.46.4)
Target: x86_64-apple-darwin18.6.0
转载请注明出处