Когда я подключаюсь по ssh к другой машине с Debian с помощью своей учетной записи (с правами sudo), моя клавиша backspace генерирует какие-то странные символы при нажатии. Также клавиши Tab& delне работают.
С другой стороны, у меня есть еще одна учетная запись на той же машине, и когда я подключаюсь по ssh через эту учетную запись, ее терминал работает отлично. Я не мог понять, почему это происходит.
решение1
Помимо решения «stty», вы можете попробовать решение «TERM».
Вы подключаетесь по ssh к своему Debian из какого-либо терминала (putty, solaris dterm, debain xterm, и т. д.), этот терминал объявляет о своих возможностях (включая такие клавиши, как Backspace и Tab) через переменную окружения TERM.
Итак, после ssh на хост unix (независимо от того, Debian это или другой хост) установите переменную TERM в соответствии с вашим терминалом. Предположим, что вы используете bash как оболочку и vt100 как терминал:
export TERM=vt100
ps: TERM должен быть объявлен через ssh автоматически, но в некоторых случаях эта магия не срабатывает.
решение2
Я уже сталкивался с подобными проблемами.
Возьмем, к примеру, backspace, удаленный хост ожидает, что какой-то символ будет использоваться как "стирание/возврат", при нажатии backspace в терминале, терминальная программа отправит какой-то символ на удаленный хост, если то, что ожидает удаленный хост, отличается от символов, отправленных терминальной программой, вы столкнетесь с этой проблемой. Поэтому быстрое решение выглядит следующим образом:
- запустите команду
#stty -a
на удаленном хосте и найдите в выходных данных то, что, как ожидается, будет кодом стирания. Скажитеerase=^?
. - В терминале нажмите Ctrl+ vи нажмите клавишу backspace. Вы увидите, какой код отправлен как "erase". Допустим, это
^H
. - На удаленном хосте запустите
#stty erase ^H
.
(Примечание: используйте Ctrlv+ Backspace, не вводите ^ вручную)
Проблему с вкладками можно решить так же, как описано выше.
решение3
Это связано с тем, что ваша оболочка по умолчанию — sh
, для ее использования bash
просто запустите ее bash
из оболочки.
bash
Чтобы установить bash
оболочку по умолчанию:
chsh -s /bin/bash
или
sudo chsh -s /bin/bash yourusername
решение4
Ваша оболочка может быть установлена /bin/sh
вместо/bin/bash