Вопрос или проблема
Используя Fedora 27 (в виртуальной машине, хотя это и не имеет значения, но если кто-то хочет знать).
В терминале bash ввел символ ‘=’ и затем одновременно нажал ALT =, что дает список файлов так же, как если бы был введен ‘ls’, но также показывая скрытые конфигурационные файлы. Я проверил свой список алиасов, и очевидно, что ничто не соответствует этой комбинации клавиш. Какие-то предложения?
Чтобы было понятно, в терминале отображается один ‘=’ и затем я ввел ALT= сразу после этого.
Первоначальный =
на самом деле не имеет значения, он нужен только потому, что дополнение не срабатывает на пустом приглашении.
Нажатие Alt+= отправит управляющую последовательность ^[=
. Вы можете это выяснить, нажав Ctrl+v в терминале, а затем вашу комбинацию клавиш.
По умолчанию в bash
, это привязано к функции Readline possible-completions
:
$ bind -P | grep '='
possible-completions can be found on "\e=", "\e?".
possible-completions
определяется в man 1 bash
как:
possible-completions (M-?)
Список возможных дополнений текста перед курсором.
Возможно, это поведение вызвано функцией оболочки, конкретной настройкой Bash, вашим эмулятором терминала или вашей виртуальной машиной.
Вы можете проверить следующее:
1. Привязки клавиш Bash
В терминале выполните bind -P
, чтобы узнать, связана ли эта комбинация клавиш с командой.
2. Проверка Алиасов и Функций оболочки
Проверьте, может ли функция или скрипт быть ответственными в фоновом режиме.
Вы можете поискать функции оболочки, связанные с ls, выполнив:
declare -F | grep ls
3. Настройки Эмулятора Терминала
Ваш эмулятор терминала, особенно в Fedora 27, может иметь предопределенные комбинации клавиш.
4. Также проверьте ваш inputrc или bashrc
cat ~/.inputrc
cat ~/.bashrc
Проверьте настройки вашего эмулятора терминала на предмет предопределенных сочетаний клавиш.
В некоторых оболочках или средах то, что происходит с определенными комбинациями клавиш, специфично.
В моем случае, когда я нажимаю =
, а затем ALT
+=
или просто ALT
+=
, включается режим аргумента чисел.
Для меня это работает с =
, за которым следует ALT
+Shift
+=
с выводом ls
, как вы описали.
Ответ или решение
Чтобы ответить на ваш вопрос о последовательности клавиш, которая связана с комбинацией клавиш ALT
+ =
в терминале Bash на Fedora 27, давайте разберёмся детально с этим поведением.
Поведение комбинации клавиш
Когда вы вводите символ =
в Bash, а затем одновременно нажимаете ALT
+ =
, это вызывает определённый контрольный последовательность, известную как ^[=
(где ^
указывает на клавишу ALT
). Эта последовательность соответствует функции "possible-completions", что позволяет Bash выводить возможные варианты завершения команды на основании введённого текста.
Как это работает в Bash
-
Функция возможных завершений:
По умолчанию в Bash команда для завершения вывода вариантов (или возможных завершений) привязана к клавишамALT
+?
илиALT
+=
. Это можно проверить с помощью команды:bind -P | grep '='
Вы должны увидеть строку, указывающую на то, что
possible-completions
связано с\e=
. В документации Bash (см.man 1 bash
) это описано следующим образом:possible-completions (M-?)
List the possible completions of the text before point. -
Поведение вашего терминала:
Действия терминала могут варьироваться в зависимости от конфигураций и настроек. Чтобы определить источники этого поведения, выполните следующие шаги:-
Проверка привязок клавиш:
Выполните командуbind -P
, чтобы проверить, какая команда привязана к сочетаниям клавиш. Обратите внимание на возможные варианты, связанные с=
. -
Проверка алиасов и функций:
Убедитесь, что данный результат не связан с функциями или алиасами. Запустите:declare -F | grep ls
Это покажет, есть ли какие-либо функции, связанные с командой
ls
. -
Настройки эмулятора терминала:
Ваш терминал (например, GNOME Terminal или XTerm) может иметь свои собственные предустановленные сочетания клавиш. Проверьте документацию вашего терминала для получения дополнительной информации. -
Проверка конфигурационных файлов:
Убедитесь, что в файлах конфигурации Bash, таких как~/.bashrc
и~/.inputrc
, нет настроек, которые могли бы вызывать подобное поведение.
-
Дополнительные рекомендации
Если вы сталкиваетесь с странным поведением, связанным с клавиатурными сокращениями или поведением командной строки, попробуйте следующее:
- Обновление системы: И хотя Fedora 27 — устаревшая версия, убедитесь, что у вас установлены все обновления.
- Проверка на других машинах: Попробуйте воспроизвести ситуацию на других системах или версиях Linux.
- Использование альтернативных терминалов: Разные эмуляторы терминала могут вести себя по-разному. Попробуйте альтернативные терминалы, такие как
konsole
илиterminator
.
Заключение
Исходя из вышеизложенного, сочетание клавиш ALT
+ =
в вашем терминале связано с функционалом завершения команд, встроенным в Bash. Если у вас останутся вопросы или неполадки с данной функциональностью, не стесняйтесь задавать их для дальнейшего разбирательства.