Backspace, Tab не работают в терминале (используя ssh)

Backspace, Tab не работают в терминале (используя ssh)

Когда я подключаюсь по 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 в терминале, терминальная программа отправит какой-то символ на удаленный хост, если то, что ожидает удаленный хост, отличается от символов, отправленных терминальной программой, вы столкнетесь с этой проблемой. Поэтому быстрое решение выглядит следующим образом:

  1. запустите команду #stty -aна удаленном хосте и найдите в выходных данных то, что, как ожидается, будет кодом стирания. Скажите erase=^?.
  2. В терминале нажмите Ctrl+ vи нажмите клавишу backspace. Вы увидите, какой код отправлен как "erase". Допустим, это ^H.
  3. На удаленном хосте запустите #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

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