McFly — замена функции поиска по истории Bash «Ctrl+R»
Большинство из вас наверняка использовали или слышали о функции обратного поиска в BASH. Сочетание клавиш для обратного поиска в Bash — Ctrl+r. Используя обратный поиск bash, мы можем вызвать все команды, которые мы ранее выполняли, без необходимости каждый раз вводить их заново. Вы, конечно, можете использовать стрелки ВВЕРХ/ВНИЗ для поиска в истории bash. Однако сочетание клавиш Ctrl+r сделает этот процесс намного проще и быстрее. Сегодня я наткнулся на замену функции поиска по истории Bash «Ctrl+r». Встречайте McFly, простой инструмент, написанный на языке программирования Rust, который заменяет стандартный поиск по истории Ctrl+r Bash на интеллектуальную поисковую систему. Все предложения команд, сделанные McFly, расставляются по приоритетам в режиме реального времени с помощью небольшой нейронной сети.
Что такое МакФлай?
McFly повторно связывает функциональность Ctrl+r, чтобы вызвать все недавно выполненные команды из вашей истории Bash. Он дополняет историю вашей оболочки, отслеживая следующее:
- Статус выхода команды,
- временная метка (когда вы запускаете команду),
- и каталог выполнения (где вы запускаете команду).
Он сохраняет все детали отслеживания в базе данных SQLite. Поскольку он отслеживает исторический статус завершения команды, вы можете просто игнорировать старые неудачные команды.
Предлагая команду, МакФлай учитывает следующие факты:
- В каком каталоге вы выполнили команду. Вероятно, вы повторите эту команду в том же каталоге в будущем.
- Какие команды вы вводили перед командой.
- Как часто вы запускаете команду.
- Когда вы в последний раз запускали команду.
- Если вы уже выбрали команду в McFly.
- Исторический статус выхода команды. Потому что вы, вероятно, не хотите запускать старые неудачные команды, верно?
McFly сохраняет файл истории Bash по умолчанию, поэтому вы можете прекратить использование McFly в любой момент. McFly предназначен не только для BASH, его можно расширить и для других оболочек.
Установите McFly в Linux
McFly можно установить с помощью Linuxbrew в Linux. Если вы еще не установили Linuxbrew, перейдите по следующей ссылке.
- Linuxbrew — общий менеджер пакетов для Linux и Mac OS X
После установки Linuxbrew выполните следующие команды для установки McFly:
brew tap cantino/mcfly https://github.com/cantino/mcfly
brew install mcfly
После завершения установки вы увидите следующий вывод.
==> Installing mcfly from cantino/mcfly
==> Downloading https://github.com/cantino/mcfly/releases/download/v0.2.5/mcfly-v0
==> Downloading from https://github-production-release-asset-2e65be.s3.amazonaws.c
######################################################################## 100.0%
==> ONE MORE STEP! Edit ~/.bashrc and add the following:
if [ -f $(brew --prefix)/opt/mcfly/mcfly.bash ]; then
. $(brew --prefix)/opt/mcfly/mcfly.bash
fi
? /home/linuxbrew/.linuxbrew/Cellar/mcfly/v0.2.5: 4 files, 3.5MB, built in 33 seconds
Установите McFly в Linux
Как видите, нам нужно сделать еще один шаг, прежде чем начать использовать McFly.
Добавьте следующие строки в файл ~/.bashrc:
if [ -f $(brew --prefix)/opt/mcfly/mcfly.bash ]; then
. $(brew --prefix)/opt/mcfly/mcfly.bash
fi
Наконец, выполните следующую команду, чтобы применить изменения эффектов:
source ~/.bashrc
Ваша история BASH будет импортирована в базу данных McFly при первом запуске этой команды. Это займет несколько минут в зависимости от размера вашего файла истории bash. После завершения импорта вы увидите следующее сообщение.
McFly: Importing Bash history for the first time. This may take a minute or two...done.
Теперь вы можете начать использовать McFly.
Поиск в истории bash с помощью McFly
Чтобы выполнить поиск в истории команд, просто введите «mcfly search», затем часть имени команды и нажмите клавишу ВВОД. Mcfly отобразит предложения команд на основе только что введенного вами поискового запроса.
mcfly search <part-of-the-command>
Например, я набираю следующую команду:
mcfly search mk
Вот пример вывода с моей машины с Ubuntu:
Поиск в истории bash с помощью McFly
Как видите, я использовал команду mkdir два раза. Если вы хотите запустить команду из списка предложений, просто используйте стрелки ВВЕРХ/ВНИЗ, чтобы выбрать ее, и нажмите ENTER, чтобы запустить ее немедленно. Если вы хотите отредактировать команду, выберите ее и нажмите клавишу TAB, чтобы вернуть ее в терминал, а затем отредактируйте ее перед запуском. Чтобы удалить выбранную команду из истории, просто нажмите F2.
Альтернативно, введите следующую команду, чтобы открыть поиск по истории, а затем введите любую команду или часть команды, чтобы просмотреть предложения из вашей истории.
mcfly search
McFly будет отображать предложения команд по мере ввода.
Вот короткая видеодемонстрация McFly:
Макфлай в действии
Посмотреть справку:
mcfly --help
Рекомендуем прочитать:
- HSTR – удобный просмотр, навигация, поиск и управление историей командной строки
- Pick – инструмент нечеткого поиска в командной строке для Linux
- Как удалить определенную команду из истории Bash в Linux
Удалить МакФлая
Не нравится МакФлай, не проблема! Удалите его с помощью следующих команд:
brew uninstall mcfly
brew untap cantino/mcfly
Наконец, удалите строки, которые мы добавили ранее из файла ~/.bashrc.
Ресурс:
- Репозиторий McFly на GitHub