問題描述
當我使用我的帳戶(具有sudo權限)ssh到另一台Ubuntu計算機時,我的退格鍵在按下時會生成一些尷尬的符號。 Tab鍵,Del鍵和箭頭鍵也不起作用。
另一方麵,我在同一台機器上也有另一個帳戶。當我通過這個帳戶,它的終端工作得非常好。我無法弄清楚為什麽會這樣。
最佳解決辦法
編輯:參考:Mateng的answer
Mateng很接近,我認為你可能正在運行Bourne Shell。但是您不應該直接編輯/etc/passwd
文件。請嘗試使用chsh
命令:
chsh -s /bin/bash
-s標誌將使新的shell(在本例中為Bash)成為您的登錄shell,繼續前進。
次佳解決辦法
以下更改為我解決了問題。首先,我檢查了哪個shell正在運行:
$ echo $0
返回:
/bin/sh
正如我在此post in Ubuntuforums中讀到的那樣,將shell更改為/bin/bash
會帶來解決方案。所以我在/etc/passwd
中將我的用戶設置編輯為:
johndoe:x:1001:104:John Doe:/home/johndoe:/bin/bash
我退出了,然後再次登錄。奇怪的是,我必須通過輸入以下命令手動切換shell(可能有些緩存處於活動狀態):
/bin/bash
瞧! [問題是由於分發更新引起的。]
第三種解決辦法
當你第一次進入ssh時,嘗試這兩個命令
stty sane
export TERM=linux
我必須在一些機器上執行此操作,以便解決此問題
第四種辦法
解決此問題的最簡單方法之一是在命令行界麵提示符下鍵入/bin /bash:
$ /bin /bash
上述命令將在現有shell的頂部執行Bourne Again Shell作為子進程。這帶來了利用更多資源的缺點,但不需要編輯任何內容,也不需要特殊權限。例如,在最近的Kubuntu版本中,它將在默認的/bin /dash命令行shell接口上啟動/bin /bash會話。
但是,要保留更改,一種可能性是編輯/etc /passwd文件,並在與用戶對應的行中的最後一個’:’字符之後添加/編輯/替換默認shell到/bin /bash。但是,為了編輯此文件,需要管理員權限。