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

40

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

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

    
задан gopi1410 15.07.2012 в 10:56
источник

10 ответов

30

РЕДАКТИРОВАТЬ: Ссылка: Mateng Mateng

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

chsh -s /bin/bash

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

    
ответ дан Aaron 29.10.2012 в 16:48
источник
16

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

$ echo $0

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

/bin/sh

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

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

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

/bin/bash

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

    
ответ дан Mateng 29.10.2012 в 16:33
12

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

stty sane
export TERM=linux

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

    
ответ дан Drake Clarris 26.10.2012 в 13:01
4

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

$ / bin / bash

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

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

    
ответ дан nightsinwhiteaustin 25.08.2017 в 16:17
1

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

from: Wikipedia > > > Терминал GNOME

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

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

Linux Backspace / Delete mini-HOWTO

Every Linux user has been sooner or later trapped in a situation in which having working Backspace and Delete keys on the console and on X seemed impossible. This paper explains why this happens and suggests solutions. The notions given here are essentially distribution-independent: due to the widely different content of system configuration files in each distribution, I will try to give the reader enough knowledge to think up his/her own fixes, if necessary.

I assume that the Backspace key should go back one character and then erase the character under the cursor. On the other hand, the Delete key should delete the character under the cursor, without moving it. If you think that the function of the two keys should be exchanged, in spite of the fact that most keyboards feature an arrow pointing to the left (←) on the Backspace key, then this paper will not give you immediate solutions, but certainly you may find the explanations given here useful.

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

    
ответ дан david6 30.10.2012 в 09:19
1

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

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

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

    
ответ дан Nagaraj Vittal 04.09.2015 в 09:20
1

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

Обычно я использую vi not 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
    
ответ дан jtlindsey 13.01.2016 в 15:05
0

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

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

    
ответ дан sai siva sundar 15.09.2012 в 04:54
0

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

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

Итак ..

В то время как на оболочке bash я пробовал все комбинации, о которых я мог думать, CTRL + вверх, вниз, влево, ALT + вверх, вниз, влево, вправо, SHIFT + вверх, вниз, влево, CTRL + ALT + вверх, вниз, влево вправо, CTRL + SHIFT + вверх, вниз, влево вправо и т. д. Все еще не повезло, я также пробовал окна меню и окна приложений с помощью кнопок вверх, вниз, влево и вправо.

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

    
ответ дан PyTis 25.05.2017 в 16:28
0

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

В конечном итоге это проблема с terminfo. В принципе, мой гном-терминал говорит, что это терминал 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.

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

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

    
ответ дан user1448926 14.11.2017 в 14:52