當我ssh
進入我們的一台伺服器時,我無法輸入正斜線字符,這使得幾乎無法執行任何操作(例如ls /
)。 我怎樣才能讓正斜線運作?
一些附加資訊:
/etc/issue
聲稱它正在運行“CentOS 版本 5.7(最終版)”- 我知道這一點的唯一方法是運行
ssh me@some-host cat /etc/issue
- 我正在使用 Mac OS X Terminal.app,在 Centos 5 系統或其他系統上我從未遇到過此問題
- 我不知道這台機器是誰或如何建造和設定的
echo $TERM
報告xterm-256color
我不知道這對任何人是否有意義(對我來說沒有意義),但我
diff
用/etc/inputrc
一台可以正常工作的伺服器修復了故障伺服器,並獲得了以下資訊:$ diff /tmp/{good,bad}_inputrc 1c1 < # do not bell on tab-completion --- > /# do not bell on tab-completion 37a38,49 > > # Home Key > "\e[7~":beginning-of-line > > # End Key > "\e[8~":end-of-line > > # Delete Key > "\e[3~":delete-char > > # Insert Key > "\e[2~":paste-from-clipboard
答案1
這條線是你的問題
/# do not bell on tab-completion
如果我將該行添加到我的工作配置中,斜線將停止工作。
我能找到的唯一線索是在 readline 手冊頁:
空行將被忽略。以 # 開頭的行是註解。以 $ 開頭的行表示條件結構。其他行表示鍵綁定和變數設定。
由於它不是空行,並且不以#
or開頭$
,因此它必須被視為鍵綁定。
答案2
名為 xmodmap 的程式可用於修改鍵盤映射。查看man xmodmap
是否已經安裝。
簡而言之,用於xev
查看有關 X 事件的詳細資訊。啟動它,然後敲擊 / 鍵。在我的設置中,這是我得到的結果:
KeyRelease event, serial 34, synthetic NO, window 0x4e00001,
root 0x15a, subw 0x0, time 107752919, (784,828), root:(789,850),
state 0x10, keycode 61 (keysym 0x2f, slash), same_screen YES,
XLookupString gives 1 bytes: (2f) "/"
XFilterEvent returns: False
然後,在遠端電腦上,使用xmodmap -e 'keycode [KEYCODE] = [KEYSYM]
建立映射,其中 [KEYCODE] 和 [KEYSYM] 是從 xev 檢索的值。首先嘗試設定預設的61,0x2f,看看是否只需要重設。 (IE,xmodmap -e 'keycode 61 = 0x2f'
)
如果不行,請嘗試映射不同的鍵。例如,我嘗試將鍵碼 105(右控制)改為 0x2f。這對我來說在本地和 ssh 會話中都有效。
編輯:
您可能還想設定問號。將前面的命令擴展為xmodmap -e 'keycode 61 = 0x2f 0x3f
'.你可以看到一個完整的按鍵符號列表在這裡。