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

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

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

44
задан 31 October 2012 в 00:42

11 ответов

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

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

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

0
ответ дан 31 October 2012 в 00:42

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

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

chsh -s /bin/bash

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

0
ответ дан 31 October 2012 в 00:42

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

$ / bin / bash

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

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

0
ответ дан 31 October 2012 в 00:42

Я попробовал все вышеперечисленные плюсовые заметки из ( этой ссылки ) безуспешно. Вы можете проверить, установлен ли 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
0
ответ дан 31 October 2012 в 00:42

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

$ echo $0

который возвратился:

/bin/sh

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

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

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

/bin/bash

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

17
ответ дан 31 October 2012 в 00:42

когда вы впервые входите в ssh, попробуйте эти две команды

stty sane
export TERM=linux

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

0
ответ дан 31 October 2012 в 00:42

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

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

0
ответ дан 31 October 2012 в 00:42

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

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

Итак ..

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

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

0
ответ дан 31 October 2012 в 00:42

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

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

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

$host: echo $TERM
xterm-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.

Затем полученный источник компилируется через тик.

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

0
ответ дан 31 October 2012 в 00:42

«Терминал Gbnome» точно не эмулирует «xterm» ..

из: Википедия >> Терминал GNOME

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


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

Linux Backspace / Delete mini-HOWTO

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

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

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

0
ответ дан 31 October 2012 в 00:42

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

$ sudo adduser username sudo
$ sudo adduser username admin
0
ответ дан 18 March 2020 в 14:42

Другие вопросы по тегам:

Похожие вопросы: