Поиск по сайту:

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

Статьи по данной тематике