Невозможно ввести символ косой черты при входе через ssh

Невозможно ввести символ косой черты при входе через ssh

Когда я 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'. Вы можете увидеть полнуюсписок символов клавиш здесь.

Связанный контент