Клавиши Backspace, Tab, Del и стрелки не работают в терминале (с использованием ssh)

Когда я подключаюсь по ssh к другой машине Ubuntu со своей учетной записью (с разрешениями sudo), моя клавиша backspace генерирует некоторые неудобные символы при нажатии. Также не работают клавиши Tab, Del и стрелки.

С другой стороны, у меня также есть другая учетная запись на том же компьютере, и когда я использую ssh через эту учетную запись, ее терминал работает отлично. Я не мог понять, почему это происходит.

РЕДАКТИРОВАТЬ: Ссылка: Mateng's ответ

Матенг близок к этому в том смысле, что я думаю, что вы, вероятно, управляете Bourne Shell. Но вы не должны редактировать свой /etc/passwd файл напрямую. Попробуйте использовать chsh команда вместо этого:

chsh -s /bin/bash

Флаг -s сделает новую оболочку (в данном случае Bash) вашей оболочкой входа в систему в дальнейшем.

при первом входе по ssh попробуйте выполнить следующие две команды

stty saneexport TERM=linux

Я должен сделать это на некоторых машинах, которые я использую, чтобы решить именно эту проблему

Следующие изменения решили проблему для меня. Сначала я проверил, какая оболочка запущена:

$ echo $0

который вернулся:

/bin/sh

Как я читал в этом сообщение в Ubuntuforums, изменив оболочку на /bin/bash приносит решение. Поэтому я отредактировал свои пользовательские настройки в /etc/passwd к:

johndoe:x:1001:104:John Doe:/home/johndoe:/bin/bash

Я вышел из системы, затем снова вошел в систему. Как ни странно, мне пришлось переключать оболочку вручную (возможно, какой-то кэш был активен), введя это:

/bin/bash

Вот!
[Проблема возникла из-за обновления дистрибутива.]

Один из самых простых способов устранить эту проблему - ввести /bin/bash в командной строке командной строки:

$ /bin/bash

Вышеупомянутая команда выполнит оболочку Bourne Again поверх существующей оболочки в качестве подпроцесса. Недостатком этого является использование большего количества ресурсов, но при этом ничего не нужно редактировать и никаких специальных разрешений не требуется. Например, в последних версиях Kubuntu он запускает сеанс /bin/bash поверх интерфейса командной строки /bin/dash по умолчанию.

Однако, чтобы сохранить изменения, можно отредактировать файл /etc/passwd и добавить/отредактировать/заменить оболочку по умолчанию на /bin/bash после последнего символа ':' в строке, соответствующей пользователю. Однако для редактирования этого файла потребуются права администратора.

"Терминал Gbnome" не совсем эмулирует "xterm"..

от: >>Википедия GNOME Terminal

GNOME Terminal эмулирует эмулятор терминала xterm и предоставляет некоторые из те же черты лица.


Трактат по этой проблеме и ее решению (решениям) можно найти здесь:

Linux Backspace/Delete mini-HOWTO

Каждый пользователь Linux рано или поздно оказывался в ситуации, когда наличие рабочих клавиш Backspace и Delete на консоли и на X казалось невозможным. В этой статье объясняется, почему это происходит, и предлагаются решения. Приведенные здесь понятия, по сути, не зависят от дистрибутива: из-за большого различия в содержании файлов конфигурации системы в каждом дистрибутиве я постараюсь дать читателю достаточно знаний, чтобы при необходимости придумать свои собственные исправления.

Я предполагаю, что клавиша Backspace должна вернуться на один символ назад, а затем стереть символ под курсором. С другой стороны, клавиша Удаления должна удалять символ под курсором, не перемещая его. Если вы считаете, что функции двух клавиш следует поменять местами, несмотря на то, что большинство клавиатур имеют стрелку, указывающую влево (←) на клавише Backspace, то эта статья не даст вам немедленных решений, но, безусловно, вы можете найти приведенные здесь объяснения полезными.

Самое простое решение (которое может сработать здесь) заключается в использовании: bash$ export TERM=gnome

Я перепробовал все вышеперечисленное плюс заметки от (эта ссылка) безрезультатно. Возможно, вы захотите проверить, установлен ли vim.

Обычно я использую vi, а не vim. Итак, я установил vim.

$ sudo apt-get install vim

После этого штрихи клавиатуры начали работать должным образом, когда я выполнил vi. Глядя на вывод следующего, похоже, что vi был сделан псевдонимом для vim после установки:

$ ls -al /etc/alternatives | grep vi lrwxrwxrwx   1 root root    18 Jan 13 09:38 vi -> /usr/bin/vim.basic

Как пользователь root отредактируйте файл /etc/passwd для своего пользователя и измените /bin/sh на /bin/bash

hdfs:x:1020:1001::/home/hdfs:/bin/sh в hdfs:x:1020:1001::/home/hdfs:/bin/bash

Это сработало для меня.

Ни один из приведенных выше ответов не исправил мою идентичную проблему, т.Е. я не могу использовать backspace или аналогичные клавиши после подключения к удаленному компьютеру с Ubuntu (здесь ubuntu-17.10 с ncurses-6.0).

В конечном итоге это становится проблемой с terminfo. По сути, мой gnome-терминал говорит, что это терминал xterm-256color (через переменную TERM, которая экспортируется по ssh на пульт дистанционного управления), но на пульте дистанционного управления не было конфигурации terminfo для xterm-256color.

Выполнение следующих действий устранило проблему:

>$host: echo $TERMxterm-256color$host: infocmp terminfo.src$host: tic terminfo.src$host: scp .terminfo/x/xterm-256color $remote:/usr/share/terminfo/x/xterm-256color

infocmp, без какой-либо опции, создает список источников для терминала в переменной среды $TERM. Таким образом, это эквивалентно infocmp -I $TERM.

Затем результирующий исходный код компилируется с помощью tic.

Наконец, установите соответствующую конфигурацию terminfo в удаленное расположение. Итак, в следующий раз, когда я подключусь к $remote через $host, он узнает о моем терминале.

Это проблема совместимости с клавиатурой, то есть с тем, как она интерпретируется в хост-системе. Возможно, вам придется использовать j или h для перемещения в редакторе vi в командном режиме. Стрелки не будут работать.

>Проверьте настройки профиля-совместимость в хост-системе для этого конкретного пользователя.

Хорошо, я знаю, что это не "решение", как говорится, и это может не помочь многим из вас, но надеюсь, это поможет хотя бы 1 из вас. Это действительно решило мою проблему.

Мой шестимесячный ребенок стучал по моей клавиатуре, и мои клавиши со стрелками перестали работать во время моего сеанса putty в окне Debian. Они действительно работали везде (все другие программы за пределами putty). После поиска в Google и даже приземления здесь (я собирался закрыть эту вкладку, но это не решило проблему для меня). Я кое-что попробовал. Я открыл новый сеанс ssh в том же окне, и мои клавиши со стрелками сработали. Я присоединился к своему сеансу просмотра экрана, и они не сработали. Итак, что-то только что произошло, связанное с текущим сеансом экрана, отключающим клавиши со стрелками. К сожалению, я был (нахожусь) в середине большого проекта, у меня было открыто 28 окон в моем сеансе экрана, и я не хотел закрывать сеанс, теряя свое место во всех 28 окнах.

Так..

Находясь в оболочке bash, я перепробовал все комбинации, которые только мог придумать: CTRL + up, down, left right, ALT + up, down, left, right, SHIFT + up, down, left right, CTRL+ALT+ up, down, left right, CTRL+SHIFT+ up, вниз, влево, вправо и т.д. По-прежнему безуспешно, я также попробовал меню Windows и клавиши Windows app с помощью кнопок вверх, вниз, влево вправо.

Теперь мои стрелы снова работают! Что-то в одной из комбинаций того, что указано выше, и клавиши со стрелками исправили это.

У меня та же проблема - мой хост Win7-64, а мои удаленные гостевые системы - Ubuntu Server 10.04. На одном сервере ключи работают, на другом - нет.

Дополнительная информация: Я вхожу в удаленные машины с помощью Putty / Kitty

Можете ли вы попробовать подключиться по ssh через другую программу или создать новый профиль для целевой системы?

Я тоже столкнулся с проблемой с cygwin (в win 7)

Что возвращается при вводе echo “$TERM”, когда это происходит?

echo "$TERM" > xterm

Я вошел в систему с помощью (1) Kitty, (2) Putty, (3) нового профиля Kitty и (4) с терминала Gnome Ubuntu 12.04. Во всех случаях проблема сохраняется.

Возможно ли, что сброс конфигурации xterm поможет?

Пожалуйста, лучше определите проблему. *** Какая версия Ubuntu (локальная машина и / или удаленный хост) и версия терминала Gnome вызывают эту проблему? *** * Любые другие варианты должны быть их собственным вопросом или задаваться в другом месте.*