弊社のサーバーの 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
すでにインストールされているかどうかを確認してください。
簡単に言うと、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 を設定して、リセットする必要があるかどうかを確認します。(つまり、xmodmap -e 'keycode 61 = 0x2f'
)
それでもダメなら、別のキーをマッピングしてみてください。たとえば、キーコード 105 (右コントロール) を 0x2f にマッピングしてみました。ローカルでも SSH セッションでもうまくいきました。
編集:
疑問符を設定することもできます。前のコマンドをxmodmap -e 'keycode 61 = 0x2f 0x3f
'に拡張します。完全なキーシンボルのリストはこちら。