什么是Linux上的TTY? (以及如何使用tty命令)

那是什么 蒂蒂 命令吗?它会打印您正在使用的终端的名称。 TTY代表“打字机”。命令名称背后的故事是什么?这需要更多的解释。

1800年代的电传打印机

在1830年代和1840年代,开发了称为电传打印机的机器。这些机器可以将键入的消息“线下”发送到遥远的位置。邮件是由发件人在各种键盘上键入的。它们在接收端打印在纸上。它们是电报中的进化步骤,以前是依靠莫尔斯电码和类似的密码。

消息被编码和传输,然后被接收,解码和打印。有几种用于编码和解码消息的技术。埃米尔·鲍多(ÉmileBaudot)在1874年申请了最著名的专利,也是最多产的专利之一,并以其波特率命名。他的字符编码方案比ASCII早了89年。

最终,Baudot的编码成为最接近电传打印机编码标准的编码,并且被大多数制造商采用。鲍多的原始硬件设计只有五个键,类似于钢琴键。要求操作员学习每个字母的特定按键组合。最终,Baudot编码系统与传统的键盘布局相结合。

为了纪念这一进步,这些机器被称为电传打字机。这被缩短为电传打字机,最终缩短为TTY。这就是我们的首字母缩写TTY,但电报与计算有何关系?

ASCII和电传

ASCII在1963年问世时,被电传打字机制造商采用。尽管电话的发明和广泛使用,电传打字机仍在发展。

电传是电传打字机的全球网络,它使书面消息可以在全球范围内发送。在第二次世界大战之后到1980年代传真机热潮时期,它们是传输书面消息的主要手段。

电脑也在不断发展。他们变得能够与用户进行实时交互,并支持多个用户。旧的批处理方法变得不够用。人们不想等待24小时或更长时间才能获得结果。堆积成堆的打孔卡并等待一整夜的结果不再是可以接受的。

人们需要一种允许他们输入指令并将结果发送回给他们的设备。人们想要效率。

重新设计的电传打字机

电传打字机是输入/输出设备的理想选择。毕竟,它是一种旨在允许对消息进行键入,编码,发送,接收,解码和打印的设备。

如果连接另一端的设备不是另一个电传电报,电传电报会在乎什么呢?只要电传使用相同的编码语言并且可以接收和发送回消息,电传打字机就很高兴。

当然,它使用或多或少的标准键盘。

硬件模拟电传打字机

电传打字成为与那个时代的大型微型计算机和大型计算机交互的默认方式。

最终它们被替换为 模拟的 那些使用电子设备的机电设备。这些具有阴极射线管(CRT)而不是纸卷。从计算机传递响应时,他们没有动摇。他们允许使用迄今为止无法实现的功能,例如在屏幕上移动光标,清除屏幕,加粗文本等。

DEC VT05是虚拟电传打字机的早期示例,并且是著名的DEC VT100的祖先。售出了数百万台DEC VT100。

软件模拟电传打字机

在Linux和其他类似Unix的操作系统(例如macOS)的桌面环境中,终端窗口和应用程序(例如x-term和Konsole)是虚拟电传打字机的示例。但是这些都是完全在软件中模拟的。它们被称为伪teletypes。缩短为PTS。

那就是那里 蒂蒂 进来。

tty能告诉我们什么?

在Linux中,有一个伪电信型多路复用器,它处理来自所有终端窗口伪电信型(PTS)的连接。多路复用器是主设备,PTS是从设备。内核通过位于/ dev / ptmx的设备文件对多路复用器进行寻址。

蒂蒂 命令将打印您的伪原型从属设备用来与主设备接口的设备文件的名称。实际上,这就是终端窗口的编号。

让我们看看 蒂蒂 我们终端窗口的报告:

蒂蒂

响应显示我们已连接到/ dev / pts / 0处的设备文件。

我们的终端窗口是电传打字机(TTY)的软件仿真,它以伪电传打字机(PTS)的形式连接到伪电传复用器。它恰好是零。

沉默的选择

-s (静默)选项原因 蒂蒂 没有产生任何输出。

tty -s

它确实会产生一个退出值,但是:

  • 0:如果标准输入来自TTY设备(模拟的或物理的)。
  • 1:如果标准输入不是来自TTY设备。
  • 2:语法错误,使用了错误的命令行参数。
  • 3:发生写入错误。

这可能在Bash脚本中最有用。但是,即使在命令行上,我们也可以演示仅在终端窗口(TTY或PTS会话)中运行时如何执行命令。

tty -s && echo“在tty中”

因为我们在TTY会话中运行,所以我们的退出代码为0,并执行了第二个命令。

谁指挥

其他命令可以显示您的TTY号码。这 WHO 该命令将列出所有登录用户(包括您自己)的信息。

Alec和Mary远程连接到Linux计算机。它们连接到PTS一和二。

用户dave显示为已连接到“:0”。

这表示物理连接到计算机的屏幕和键盘。即使屏幕和键盘是硬件设备,它们仍然通过设备文件连接到多路复用器。 蒂蒂 显示它是/ dev / pts / 2。

WHO
蒂蒂

有关的:如何在Linux中确定当前用户帐户

访问TTY

您可以通过按住Ctrl + Alt键并按功能键之一来访问全屏TTY会话。

Ctrl + Alt + F3将弹出tty3的登录提示。

如果您登录并发出 蒂蒂 命令,您将看到已连接到/ dev / tty3。

这不是伪teletype(在软件中模拟);它是虚拟电传打字机(在硬件中模拟)。它使用连接到计算机的屏幕和键盘来模拟虚拟电传打字机,例如用于DEC VT100的虚拟电传打字机。

您可以将功能键Ctrl + Alt与功能键F3至F6结合使用,并且可以选择打开四个TTY会话。例如,您可以登录tty3,然后按Ctrl + Alt + F6转到tty6。

要返回图形桌面环境,请按Ctrl + Alt + F2。

按Ctrl + Alt + F1将返回图形桌面会话的登录提示。

一次,从Ctrl + Alt + F1到Ctrl + Alt + F6将打开全屏TTY控制台,而Ctrl + Alt + F7将使您返回图形桌面环境。如果您运行的是较旧的Linux发行版,则可能是系统的行为。

经过测试 当前的 发行的Manjaro,Ubuntu和Fedora,它们的行为都如下所示:

  1. Ctrl + Alt + F1:使您返回图形桌面环境登录屏幕。
  2. Ctrl + Alt + F2:使您返回图形桌面环境。
  3. Ctrl + Alt + F3:打开TTY 3。
  4. Ctrl + Alt + F4:打开TTY 4。
  5. Ctrl + Alt + F5:打开TTY 5。
  6. Ctrl + Alt + F6:打开TTY 6。

可以使用这些全屏控制台,使仅使用命令行安装Linux的人们(并且许多Linux服务器是通过这种方式配置的)可以使用多个控制台。

您是否曾经在带有图形桌面环境的Linux机器上工作,并且有什么原因导致会话冻结?现在,您可以跳到TTY控制台会话之一,以便尝试纠正这种情况。

您可以使用 最佳ps 尝试识别失败的应用程序,然后使用 终止它,或只是使用 关掉 尝试在计算机状态允许的范围内正常关闭。

有关的:如何从Linux终端中终止进程

具有悠久历史的三封小书

蒂蒂 该命令的名称来自1800年代后期的一种设备,该设备于1971年出现在Unix中,并且至今仍是Linux和类Unix操作系统的一部分。

这个小家伙在他身后有一个传奇。


$config[zx-auto] not found$config[zx-overlay] not found