Я новичок в Ubuntu, и когда я недавно попытался выполнить команду в терминале и нажал клавишу «b», он набрал «set», а затем начал рассылать спам «show-all-if-amset».
Как я могу решить эту проблему?
Редактировать: На второй взгляд, он просто набирает «set show-all» -if-am ", все еще не знаю, что это значит ...
Редактировать 2: Это также происходит в терминале визуального кода.
Правка 3: Это похоже на проблему с bash, та же проблема не возникает с dash или sh.
Вход, который Вы вводите, например, в терминале, оценен инструментом, названным Readline. Readline имеет несколько десятков переменных, которые могут быть установлены настроить его поведение. Одна из тех переменных show-all-if-ambiguous
. Синтаксис для изменения значения show-all-if-ambiguous
или другая переменная Readline был бы
set show-all-if-ambiguous on
или
set show-all-if-ambiguous off
соответственно. Те настройки предназначены для входа в файл конфигурации, названный .inputrc
(отметьте точку в запуске) в корневом каталоге пользователя.
похоже, что установка Readline была помещена где-нибудь, где это не принадлежит, и это бросает ключ в вещи. Возможно, Вы помещаете его где-нибудь сами, или программа / инструмент / сценарий/... Вы используете, багги или не правильно установленный.
, Если можно заставить терминал вести себя достаточно, чтобы сделать это, поиск "набора show-all-if-ambiguous" по корневому каталогу мог бы получить Вас на дорожке "преступника":
grep -rIl 'set show-all-if-ambiguous' /home/yourusername
необходимо заменить "yourusername" именем пользователя, очевидно, ;)
Я нашел проблему, в .inputrc файле у меня были следующие строки:
$include /etc/inputrc
set completion-ignore-case On
bind TAB:menu-complete
bind "set show-all-if-ambiguous on
я не знаю, почему это работало прежде, но по-видимому, как указано в этом сообщении: я can' t вводят “b” когда I' m в командной строке , слово "связывает", не распознан. Удаление связывания решило проблему.
Большое спасибо Henning Kokerbeck для сообщения мне проблема была с .inputrc файлом!