Когда я ssh
захожу на один из наших серверов, я не могу ввести символ косой черты, что затрудняет выполнение практически любых действий (например, ls /
). Как мне заставить работать косую черту?
Дополнительная информация:
/etc/issue
утверждает, что работает под управлением «CentOS release 5.7 (Final)»- Единственный способ узнать это — побежать
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
'. Вы можете увидеть полнуюсписок символов клавиш здесь.