Linux 黑话解释:TTY 是什么?
创始人
2024-03-02 09:30:52
0

谈到 Linux 和 UNIX 时,你一定听说过 “TTY” 这个术语,但是,这玩意是什么?

作为一个桌面用户,它对你有用吗?你需要它吗?你能用它做什么?

在本文中,让我向你介绍这些,帮助你熟悉 Linux 中的 TTY。

注意:这个问题没有明确的答案,但它与过去的输入/输出设备的交互方式有关。因此,你必须了解一些历史,才能清楚地了解情况。

“TTY” 背后的历史

一切始于 19 世纪 30 年代的 电传打印机 Teleprinter 。

电传打印机可以让你通过电线发送或接受消息,它取代了摩尔斯电码通信,那是一种需要两个操作员才能有效地相互通信的方式。

一台电传打印机只需要一个操作员就可以轻松地传递消息。虽然它没有现代布局的键盘,但它的系统后来由 Donald Murray 在 1901 年进行了改良,包括了一个类似打字机的键盘。

Murray 电码减少了操作员发送消息的工作量。这才使得电传打印机在 1908 年有了发展成为商业 电传打字机 Teletypewriter 的可能。TTY 即是电传打字机的缩写。

电传打字机和普通 打字机 typewriter 的区别在于,电传打字机连接到通信设备,直接发送输入的消息。

电传打字机使人类在没有计算机的情况下通过电线进行更快的通信成为可能

从这时起,“TTY” 一词就存在了。

(相对)现代的概念

现在,你一定想知道,它是如何进入现代计算机和 Linux 的?

最初是当电传打字机进入了市场,几年后半导体晶体管发展起来,然后演变成微处理器,为计算机的出现做好了准备。

最初的计算机没有键盘的概念, 打孔卡 Punch card 就是输入的方法。

一种插入计算机而不是通过键盘(TTY)输入的打孔卡计算机程序 | 图片来源于维基百科

随着计算机的发展,批量输入的打孔卡最终被电传打字机取代,成为一种方便的输入/输出设备。

1956 年的 LGP-30 计算机,附带 TTY

随着技术的进步,电传打字机被电子技术“虚拟化”了。因此,你不需要一个物理的、机械的 TTY,而是一个虚拟的电子 TTY。

早期的计算机甚至没有视频屏幕。字符被打印在纸上而不是显示在屏幕上。因此,你会看到“ 打印 print ”这个术语而不是“ 显示 display ”。随着技术的进步,视频显示后来被添加到终端中。

换句话说,你可能听说过把它们称为“视频终端”。或者,你可以称它们为“物理”终端。

后来,它们演变成具有更强的能力和功能的软件仿真的终端。

这就是所谓的“ 终端仿真器 terminal emulator ”,如 GNOME 终端或 Konsole,或者其他 你在 Linux 上找到的各种终端仿真器

所以,Linux 中的 TTY 到底是什么?

在 Linux 或 UNIX 中,TTY 变为了一个抽象设备。有时它指的是一个物理输入设备,例如串口,有时它指的是一个允许用户和系统交互的虚拟 TTY(参考此处)。

TTY 是 Linux 或 UNIX 的一个子系统,它通过 TTY 驱动程序在内核级别实现进程管理、行编辑和会话管理。

在编程的场景下,你还需要深入研究。但是考虑到本文的范围,这可能是一个容易理解的定义。

如果你好奇的话,你可以查看一个有点旧的资源(TTY 揭秘),它尽可能的澄清了 Linux 和 UNIX 系统中的 TTY 的各种技术细节。

事实上,每当你在系统中启动一个终端仿真器或使用任何类型的 shell 时,它都会与虚拟 TTY(也被称为 伪 TTY pseudo-TTY ,即 PTY)进行交互。

你可以在终端仿真器中输入 tty 来找到相关联的 PTY。

如何在 Linux 中访问 TTY?

在 Linux 中很容易访问 TTY。事实上,当我不知道它是什么时,我不小心打开了它,于是对要做什么、如何摆脱它感到恐慌。

在大多数 发行版 中,你可以使用以下键盘快捷键来得到 TTY 屏幕:

  • CTRL + ALT + F1 – 锁屏
  • CTRL + ALT + F2 – 桌面环境
  • CTRL + ALT + F3 – TTY3
  • CTRL + ALT + F4 – TTY4
  • CTRL + ALT + F5 – TTY5
  • CTRL + ALT + F6 – TTY6

你最多可以访问六个 TTY。但是,前两个快捷方式指向发行版的锁定屏幕和桌面环境。

而其他快捷方式将会让你进入一个命令行界面。

什么时候应该使用 TTY?

TTY 不仅是一个技术宝藏,即使像我这样不是开发人员的用户,它也很有用。

在图形桌面环境冻结的情况下,它应该可以派上用场。在某些情况下,从 TTY 重建桌面环境能帮助解决程序问题。

或者,你也可以选择在 TTY 中执行任务,例如更新 Linux 系统等。在这些情况下,你不希望显示问题中断你的进程。

最坏的情况是,如果图形用户界面失去响应,你可以进入 TTY 并重新启动计算机。

有些用户还喜欢在 TTY 的帮助下传输大文件(我不是其中之一)。

Linux 中的 TTY 命令

当你在终端模拟器中输入 tty 时,它将打印连接到标准输入的终端文件名,就像手册页描述的一样。

换句话说,要知道你连接的 TTY 编号,只需输入 tty。并且,如果有多个用户远程连接到 Linux 机器,你可以使用 who 命令来检查其他用户连接到的是哪个 TTY。


via: https://itsfoss.com/what-is-tty-in-linux/

作者:Ankush Das 选题:lujun9972 译者:MjSeven 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

7.4商业观察:端侧AI芯...
投资信息太多太杂,不知道什么是重点?「华彬金融观察」公众号,深度研...
2025-07-04 06:42:10
AI投资从叙事博弈走向产业...
□徐兵 上半年,AI行情上演了一场典型的资本“冷热交替”。一季度,...
2025-07-03 08:11:36
速递|谷歌“终端智能体”的...
图片来源:谷歌 谷歌正在推出一款新型 AI Agent工具,旨在...
2025-06-27 13:12:21
短短一年,是什么让移动AI...
2024年,是AI入端元年,大模型和agent被接入到各类移动终端...
2025-06-20 12:14:34
加速AI落地 荣耀与中国移...
6月19日,荣耀与中国移动在上海联合举办“中国移动&荣耀AI终端战...
2025-06-19 20:13:00
WPA破解-创建Hash-...
WPA破解-创建Hash-table加速并用Cowpatty破解 ...
2025-05-30 00:01:39

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...