SSH経由でログインするときにスラッシュ文字を入力できません

SSH経由でログインするときにスラッシュ文字を入力できません

弊社のサーバーの 1 つにログインすると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 のマニュアル ページにあります。

空白行は無視されます。# で始まる行はコメントです。$ で始まる行は条件構文を示します。その他の行はキー バインディングと変数設定を示します。

これは空行ではなく、#またはで始まっていないため$、キーバインディングとして扱われている必要があります。

答え2

xmodmap というプログラムを使用してキーマップを変更できます。man xmodmapすでにインストールされているかどうかを確認してください。

簡単に言うと、xevX イベントの詳細を確認するには を使用します。これを起動して、/ キーを押します。私の設定では、次の結果が得られます。

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 を設定して、リセットする必要があるかどうかを確認します。(つまり、xmodmap -e 'keycode 61 = 0x2f')

それでもダメなら、別のキーをマッピングしてみてください。たとえば、キーコード 105 (右コントロール) を 0x2f にマッピングしてみました。ローカルでも SSH セッションでもうまくいきました。

編集:

疑問符を設定することもできます。前のコマンドをxmodmap -e 'keycode 61 = 0x2f 0x3f'に拡張します。完全なキーシンボルのリストはこちら

関連情報