Проблемы с терминалом

Автор batan, 31 декабря 2019, 14:09:19

« назад - далее »

0 Пользователи и 2 гостей просматривают эту тему.

batan

Товарищи хакеры, ни с того, ни с сего мой терминал сошёл с ума. По нажатии на Backspace - вместо стирания последнего символа ставится пробел. А если нажимаю клавишу вверх - сразу как положено появляется последняя команда, но если нажать второй раз - последняя команда не пропадает, а к ней добавляется предпоследняя и т.д.
Для наглядности - вот скриншот двух нажатий клавиши "вверх":
Открыть содержимое (спойлер)
[свернуть]

Как видно, команды просто слепились в одну и стереть их я тоже не могу т.к. клавиша Backspace вместо удаления ставит то ли пробел, то ли табуляцию. И в какую сторону искать причину проблемы - я даже не знаю...

qupl

В других эмуляторах терминала что? И тот что на скрине как называется?

batan

Цитата: qupl от 31 декабря 2019, 15:24:00
В других эмуляторах терминала что? И тот что на скрине как называется?
1. С другими терминалами не пробовал, нет времени устанавливать новые эмуляторы только чтоб попробовать.
2. На скриншоте показал наглядный пример того, что получается, если нажать два раза клавишу "вверх" на клавиатуре, чтоб моё описание проблемы было более наглядным. Как видно - две последние команды "слепились" в одну.

В гугле единственное, что я нашёл по поводу своей проблемы - это вот эта тема:
https://ubuntugeeks.com/questions/2027/backspace-tab-del-and-arrow-keys-not-working-in-terminal-using-ssh

Из этой темы ужё всё перепробовал, ничего не помогло.
/bin/bash - не помогает;
/etc/passwd нет смысла менять, для моего профиля и так установлены параметры: /home/batan:/bin/bash
echo $0 возвращает: bash

Что я за день смог найти - это убедиться, что дело в моей оболочке. Т.к. проблема только с командами внутри системы. Если я в этом же терминале подключаюсь по ssh к другой машине - проблема пропадает. И стрелки, и Backspace начинают работать как надо.
Так же после подключения по ssh меняется ответ echo $0, он возвращает: -bash. Т.е. появляется дефис, но понять, что означает дефис в начале - не даёт отсутствие жизненного опыта.

Susumo

#3
[offtopic]
ЦитироватьС другими терминалами не пробовал, нет времени устанавливать новые эмуляторы только чтоб попробовать.
ЦитироватьВ гугле....
ЦитироватьИз этой темы ужё всё перепробовал....
Что то мне подсказывает, что это действие не такое долгое.
ЦитироватьЕсли я в этом же терминале подключаюсь по ssh к другой машине - проблема пропадает.
Хотя в свете этой информации мне оно кажется бесполезным. [/offtopic] Различается ли поведение терминала из под рута и пользователя? В /etc/inputrc руками лазили? В хомяке .inputrc или .bashrc создавали? Команду bind использовали? Опции readline меняли? Bash с какими ни будь хитрыми ключами запускали?

batan

И из под пользователя, и из под рута поведение одинаковое, единственное при подключении по ssh к другой системе - всё восстанавливается.Остальное вроди как не трогал. Но точно сказать не могу т.к. проблемы изначально не было и я не заметил, после чего конкретно всё это началось...  :-[

Susumo

#5
Bash (плюс еще ряд приложений) берут свои хоткеи из readline файлом инициализации которого является /etc/inputrc или /home/user/.inputrc. К примеру добавив в /home/user/.inputrc строки:"\e[A": history-search-backward
"\e[B": history-search-forward
то клавишами верх и низ предварительно набрав пару символов можно перебирать команды из истории начинающиеся с этих символов. Я думаю копать надо в этом направлении. В данной теме не особо силен. Можете прислать содержание /etc/inputrc я его со своим сравню. Более идей нет.

batan

Странно, но файлика ~/.inputrc не найдено...
А содержимое файла /etc/inputrc:
Открыть содержимое (спойлер)
# /etc/inputrc - global inputrc for libreadline
# See readline(3readline) and `info rluserman' for more information.

# Be 8 bit clean.
set input-meta on
set output-meta on

# To allow the use of 8bit-characters like the german umlauts, uncomment
# the line below. However this makes the meta key not work as a meta key,
# which is annoying to those which don't need to type in 8-bit characters.

# set convert-meta off

# try to enable the application keypad when it is called.  Some systems
# need this to enable the arrow keys.
# set enable-keypad on

# see /usr/share/doc/bash/inputrc.arrows for other codes of arrow keys

# do not bell on tab-completion
# set bell-style none
# set bell-style visible

# some defaults / modifications for the emacs mode
$if mode=emacs

# allow the use of the Home/End keys
"\e[1~": beginning-of-line
"\e[4~": end-of-line

# allow the use of the Delete/Insert keys
"\e[3~": delete-char
"\e[2~": quoted-insert

# mappings for "page up" and "page down" to step to the beginning/end
# of the history
# "\e[5~": beginning-of-history
# "\e[6~": end-of-history

# alternate mappings for "page up" and "page down" to search the history
# "\e[5~": history-search-backward
# "\e[6~": history-search-forward

# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
"\e[1;5C": forward-word
"\e[1;5D": backward-word
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word

$if term=rxvt
"\e[7~": beginning-of-line
"\e[8~": end-of-line
"\eOc": forward-word
"\eOd": backward-word
$endif

# for non RH/Debian xterm, can't hurt for RH/Debian xterm
# "\eOH": beginning-of-line
# "\eOF": end-of-line

# for freebsd console
# "\e[H": beginning-of-line
# "\e[F": end-of-line

$endif
[свернуть]

Susumo

Если нет ~/.inputrc значит действуют глобальные хоткеи. /etc/inputrc такой же как и у меня, у меня идеи кончались.

Butch

#8
Цитата: batan от 02 января 2020, 00:51:39С другими терминалами не пробовал, нет времени устанавливать новые эмуляторы только чтоб попробовать.

Список оболочек, которые в данный момент установлены и доступны в системе, хранится в файле /etc/shells
Просмотри уже имеющиеся: cat /etc/shells

Пример:
cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/bin/rbash
/bin/dash


Например, переключись на оболочку sh:
sh

Цитата: batan от 02 января 2020, 00:51:39На скриншоте показал наглядный пример того .....

Ты просто вопрос не понял.
Вопрос был: какая оболочка терминала на скрине?


debianforum@conference.jabber.ru

batan

Спасибо тебе, добрый человек, попробовал - при переключении в sh проблема частично решается, по крайней мере Backspace начинает работать адекватно.