按鍵不顯示在 tty1
我有 Ubuntu 16.04.04 LTS 伺服器。我正在做一些工作,
tty1
然後午休。與此同時,我的桌面顯示器進入休眠狀態。當我回來時,我按下Esc
並喚醒我的螢幕,我在tty1
提示符處,正是我離開的地方。但是,當我開始輸入時,我注意到我輸入的字元沒有在提示符處顯示。就好像鍵盤不工作一樣,但我可以看到螢幕上預先存在的文本會隨著我每次按鍵而閃爍。所以,我認為(A)物理鍵盤連接不是問題,(B)由於短暫的閃爍,按鍵正在某處註冊。只是為了仔細檢查,我按
Ctrl``Alt``F2
下去tty2
並開始輸入(使用者名和密碼),我在鍵盤上按下的字元顯示正常。因此,我的鍵盤似乎在tty2
(以及在tty3
、tty4
等)中執行良好。所以,我回去了
tty1
,再一次,按鍵沒有顯示。tty1
除了轉到另一個終端的功能鍵之外,似乎沒有任何組合鍵起作用。因為,我不知道如何讓我的按鍵顯示在 中
tty1
,我嘗試了shutdown
,但我無法shutdown
進入tty1
。所以,我去了tty2
並進入shutdown
。在tty2
中,該命令註冊並說明了電腦將關閉的時間。到了關機的時候,會顯示一條消息,指出(我不記得確切的措辭)正在發生另一個過程。我試圖Ctrl``C
退出關機,但它也卡住了。所以,我去那裡tty3
嘗試關閉並再次卡住。所以,我最終按下了電腦上的電源按鈕幾秒鐘,然後以醜陋的方式關閉了我的電腦。當電腦重新啟動時,問題消失了,一切似乎都正常工作。按鍵不顯示(但使螢幕閃爍)是
tty1
怎麼回事? 渴望了解這一點。
基於字元的控制台(
tty1
等tty2
)是一個終端仿真器:它模仿串列埠連接終端的操作,並帶有一些特定於 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 可以恢復它。