透過 ssh 登入時無法輸入正斜線字符

透過 ssh 登入時無法輸入正斜線字符

當我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'.你可以看到一個完整的按鍵符號列表在這裡

相關內容