tty1 中不显示按键

tty1 中不显示按键

我有 Ubuntu 16.04.04 LTS 服务器。我当时正在做一些工作tty1,然后午休了。与此同时,我的桌面显示器进入了睡眠状态。当我回来时,我按了一下Esc,我的屏幕被唤醒,我就在提示符下tty1,就在我上次停下来的地方。然而,当我开始打字时,我注意到我输入的字符没有在提示符下显示。就好像键盘不起作用,但我可以看到屏幕上预先存在的文本会随着我每次按下按键而闪烁。所以,我认为(A)物理键盘连接不是问题,(B)由于短暂的闪烁,按键正在某处注册。

为了再次检查,我按CtrlAltF2下去tty2并开始输入(用户名和密码),并且我在键盘上按下的字符按应有的方式显示。所以,我的键盘似乎在tty2(以及tty3tty4等)中工作得很好。

因此,我返回tty1并再次发现按键没有显示。tty1除了转到另一个终端的功能键之外,似乎没有任何组合键可以工作。

因为,我不知道如何让我的按键显示在 中tty1,我尝试过shutdown,但无法shutdown输入tty1。所以,我去了tty2并进入了shutdown。在 中tty2,该命令注册并说明计算机关闭的时间。当需要关闭时,显示一条消息,指出(我不记得确切的措辞)有另一​​个进程正在发生。我尝试CtrlC退出关机状态,但它也卡住了。所以,我去tty3尝试在那里关闭并再次陷入困境。因此,我最终按下计算机上的电源按钮几秒钟,然后以丑陋的方式关闭了计算机。当计算机重新启动时,问题就消失了,一切似乎都正常工作。

中的按键不显示(但使屏幕闪烁)是怎么回事tty1 渴望了解这一点。

答案1

基于字符的控制台(tty1tty2)是一个终端仿真器:它模仿串行端口连接终端的操作,并具有一些 Linux 特定的扩展。该仿真包括对 XON/XOFF 握手的支持……并且即使是偶然,也可以在键盘上轻松生成用于此类握手的字符。

如果您按 Control-S,它会发送 XOFF 控制字符,该字符将停止向终端输出,直到您按 Control-Q(也称为 XON 字符)。请注意,输入实际上并未与输出一起停止:如果您在 XOFF 有效时键入任何内容,那么一旦您按下 Control-Q,这些字符就会被输出。

stty可以使用命令(特别是使用ixon和标志)来控制此功能ixany。要完全禁用该功能,请使用stty -ixon;要再次启用它,请使用stty ixon.如果在该功能启用时使用stty ixany,任意键将恢复输出;如果使用stty -ixany,则只能使用 Control-Q 来恢复。

ixoff标志用于相反方向的传输:如果服务器端输入缓冲区有溢出的危险,服务器将向终端发送 Control-S 以使其停止传输,直到处理完前一个输入。在 Linux 控制台上,这显然不是很有用,因为“服务器”和“终端”共享相同的物理处理器。但该ixon标志仍然有用,因为您可以使用它来暂停滚动文本以便阅读它。

Linux 控制台的默认状态似乎是ixon -ixoff -ixany,即 Control-S 可以停止向控制台的输出,只有 Control-Q 可以恢复它。

相关内容