2008-11-19 5 views
3

Это всегда меня било. Когда я ssh или telnet на сервере Unix (независимо от его вкуса), он всегда правильно угадывает тип терминала, с которого я вхожу, и поэтому клавиатура всегда действует «нормально» ... т. Е. Работает ключ backspace.Удаленное сопоставление ключей терминала Unix

Но тогда, когда я успешно вошел в системе, часто угадает тип терминала я использую и делает неправильные сопоставления клавиша - особенно для клавиши возврата, то есть я должен выдать: тип

stty erase ... 

чтобы исправить это.

Любые гуру Unix знают, почему это происходит?

ответ

2

Я думаю, что вы имеете в виду забой правильно работает, когда вы вводите имя пользователя и пароль, то он перестает работать после того, как вы вошли в систему.

Скорее всего Запущенная создается что-то другое в ~/.profile или/etc/profile (или другой скрипт, который выполняется при входе в систему).

Найти этот файл и прокомментировать строку.

+0

Да, извините, я должен был быть более явным. Это скорее общий вопрос, чем конкретная платформа, но вы правы ... это, вероятно, так же просто, как что-то в файле/etc/profile – gnuchu 2008-11-19 13:03:43

0

Какое программное обеспечение SSH/telnet вы используете?

При входе через SSH, имя пользователя/пароль обычно обрабатывается клиентом, поэтому это может быть неактуально.

Я предполагаю, что переменная окружения TERM неправильно установлена ​​вашим программным обеспечением терминала, например. установлен на «vt100», когда терминал настроен так, чтобы вести себя как xterm и т. д.

1

Безопасная оболочка (ssh), скорее всего, попросит имя пользователя и пароль в клиентском программном обеспечении, прежде чем пытаться связаться с хостом, поэтому использует локальные конвенций.

Telnet обычно связывается с демоном telnetd на хосте (удаленный конец), и хост будет обрабатывать ввод-вывод.

Существует хорошая вероятность, что ваша программа терминала настроена правильно, чтобы поговорить с telnetd, но после входа в систему запускаются различные сценарии, которые могут повлиять на настройки терминала (что-то вроде stty erase '^H'). В зависимости от системы UNIX, к которой вы подключаетесь, и используемой оболочки, это может быть комбинация/etc/profile, ~/.profile, ~/.bashrc, ~/.kshrc и т. Д.).

Ваш лучший выбор - найти последний в цепочке файлов типа профиля (возможно, ~/.profile) и поместить там stty erase 'X', где X - фактическое желаемое нажатие клавиши для вашей терминальной программы.

В качестве сторонних, профильных типов запускаются только для оболочки входа, в то время как другие, как правило, запускаются для любой созданной суб-оболочки.

Смежные вопросы