Linux 中的 TTY 是什么?
迟早,您在使用 Linux 时会遇到术语 tty。了解它是什么以及它的意义是什么。
当谈到 Linux 和 UNIX 时,您一定听说过“TTY”这个术语。但是,那是什么?
作为桌面用户,它对您有用吗?你需要它吗?而且,你能用它做什么?
在本文中,我将介绍让您熟悉 Linux 中术语 TTY 所必需的所有内容。
请注意,对此没有明确的答案,但它与过去输入/输出设备的交互方式有关。因此,您必须了解一些历史才能清楚地了解情况。
“TTY”一词背后的历史
这一切都始于 1830 年代的电传打字机。
电传打字机可让您通过线路发送/接收短信。它是摩尔斯电码通信的替代品,摩尔斯电码通信需要两名操作员才能有效地相互通信。
而且,电传打字机只需要一个操作员即可轻松传达信息。虽然它没有现代布局的键盘,但其系统后来由 Donald Murray 在 1901 年进行了改进,包括一个类似打字机的键盘。
默里码减少了操作员发送消息的工作量。并且,这使得电传打字机在 1908 年发展为商业电传打字机成为可能。TTY 是电传打字机的简写。
电传打字机和普通打字机之间的区别在于,电传打字机连接到通信设备以发送键入的消息。
到目前为止,电传打字机使人类能够在没有任何计算机的情况下通过电线更快地进行通信。
这就是“TTY”诞生的地方。
(相对)现代的概念
现在,您一定想知道,它是如何进入现代计算和 Linux 的?
首先,当电传打字机进入市场时,几年后半导体晶体管被开发出来,然后演变成微处理器,使计算机成为可能。
最初的计算机没有键盘的概念。打孔卡是输入法。
随着计算机的不断发展,批量输入卡最终被电传打字机取代,成为一种方便的输入/输出设备。
随着技术的进步,电传打字机被电子设备“虚拟化”。因此,您不需要物理的机械 TTY,而是虚拟的电子 TTY。
早期的计算机甚至没有视频屏幕。东西被打印在纸上,而不是显示在屏幕上(屏幕并不存在)。因此你会看到术语“打印”的使用,而不是“显示”。随着技术的进步,视频后来被添加到终端中。
换句话说,您可能听说过它们作为视频终端。或者,您可以将它们称为“物理”终端。
然后,这些演变成具有增强功能和特性的软件模拟终端。
这就是所谓的“终端模拟器”。例如,GNOME Terminal 或 Konsole 是 Linux 上最好的终端模拟器之一。
那么,Linux 中的 TTY 是什么?
对于Linux来说,TTY是UNIX和Linux中的一个抽象设备。有时它指的是物理输入设备,例如串行端口,有时它指的是虚拟 TTY,它允许用户与系统交互(参考)。
TTY 是 Linux 和 Unix 中的一个子系统,它通过 TTY 驱动程序在内核级别实现进程管理、行编辑和会话管理。
在编程方面,你需要深入研究。但是,考虑到本文的范围,这可能是一个容易理解的定义。
如果您好奇,您可以探索一个旧资源(TTY Demystified),它试图通过您需要的所有技术细节来清理 Linux 和 Unix 系统中的 TTY。
事实上,每当您启动终端模拟器或在系统中使用任何类型的 shell 时,它都会与称为伪 TTY 或 PTY 的虚拟 TTY 进行交互。
您只需在终端模拟器中输入 TTY 即可找到关联的 PTY。
如何在 Linux 中访问 TTY?
在 Linux 中访问 TTY 很容易。事实上,当我不知道它是什么时,我不小心访问了它,并对该怎么做(如何摆脱它)感到恐慌。
您可以在大多数发行版上使用以下键盘快捷键来获取 TTY 屏幕:
CTRL + ALT + F1 – 锁定屏幕
CTRL + ALT + F2 – 桌面环境
CTRL + ALT + F3 – TTY3< br>CTRL + ALT + F4 – TTY4
CTRL + ALT + F5 – TT5
CTRL + ALT + F6 – TTY6
您总共最多可以访问 6 个 TTY。但是,前两个快捷方式指向发行版的锁定屏幕和桌面环境。
因此,您将获得一个带有其余快捷方式的命令行界面。
你什么时候会在 Linux 中使用 TTY?
TTY 不仅仅是一个技术宝藏。即使对于像我这样的非开发人员的用户来说,它也很有用。
如果图形桌面环境冻结,它应该会派上用场。在某些情况下,从 TTY 重新安装桌面环境有助于解决该程序。
或者,您也可以选择在 TTY 中执行任务,例如更新 Linux 系统等,您不希望视觉问题中断您的进程。
最坏的情况是,如果图形用户界面没有响应,您可以转至 TTY 并重新启动计算机。
有些用户还喜欢在 TTY 的帮助下执行大文件传输(我不是其中之一)。
TTY 作为 Linux 中的命令
当您在终端仿真器中输入 TTY 时,它将打印连接到标准输入的终端的文件名,如手册页所述。
换句话说,要知道您连接的 TTY 号码,只需输入 TTY。而且,如果有多个用户远程连接到 Linux 计算机,您可以使用 who 命令来检查其他用户连接到哪些用户。