![退格鍵、Tab 鍵在終端機中不起作用(使用 ssh)](https://rvso.com/image/23946/%E9%80%80%E6%A0%BC%E9%8D%B5%E3%80%81Tab%20%E9%8D%B5%E5%9C%A8%E7%B5%82%E7%AB%AF%E6%A9%9F%E4%B8%AD%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8%EF%BC%88%E4%BD%BF%E7%94%A8%20ssh%EF%BC%89.png)
當我使用我的帳戶(具有 sudo 權限)ssh 到另一台裝有 Debian 的機器時,我的退格鍵在按下時會產生一些尷尬的符號。而且Tab&del鍵也不起作用。
另一方面,我在同一台機器上還有另一個帳戶,當我透過這個帳戶進行 ssh 時,它的終端運作得很好。我不明白為什麼會發生這種情況。
答案1
除了“stty”解決方案之外,您還可以嘗試“TERM”解決方案。
您從某個終端機(putty、solaris dterm、debain xterm、you-name-it)透過 ssh 連接到 Debian,終端透過 TERM 環境變數宣布功能(包括 Backspace 和 Tab 等鍵)。
因此,在 ssh 到 unix 主機(它不依賴 debian 或其他主機)之後,根據您的終端設定 TERM 變數。假設您使用 bash 作為 shell,使用 vt100 作為終端:
export TERM=vt100
ps: TERM 應該透過 ssh 自動宣布,但在某些情況下這個魔法會失敗。
答案2
我以前見過這樣的問題。
以退格鍵為例,遠端主機期望使用某個字符作為“擦除/退格”,當您在終端中按退格鍵時,終端程式將向遠端主機發送一些字符,如果遠端主機期望的字符與遠端主機期望的字符不同終端程式發送的字符,就會遇到這個問題。因此,快速修復如下:
- 在遠端主機中執行命令
#stty -a
,並在輸出中找到預期的擦除程式碼。說erase=^?
。 - 在終端機中,按Ctrl+v並按退格鍵。您將看到發送“擦除”的程式碼。說是吧
^H
。 - 在遠端主機中,運行
#stty erase ^H
.
(注意:使用Ctrlv+ Backspace,不要手動輸入 ^ )
您可以使用與上面相同的方法修復選項卡問題。
答案3
這是因為您的預設 shell 是sh
,要使用,只需從您的 shellbash
運行即可。bash
bash
設定bash
為預設 shell:
chsh -s /bin/bash
或者
sudo chsh -s /bin/bash yourusername
答案4
您的 shell 可能被設定為/bin/sh
而不是/bin/bash