15%

Сэкономьте 15% на всех хостинговых услугах

Проверьте свои навыки и получите скидку на любой тарифный план

Используйте код:

Skills
Начать
31.10.2024

Как установить и использовать fzf на Linux: полное руководство по нечеткому поиску в терминале

Если вы проводите значительное время в терминале Linux, вы уже знаете, что поиск файлов, вспоминание команд и навигация по каталогам могут замедлить вашу работу. fzf (Fuzzy Finder) — это молниеносный интерактивный инструмент командной строки, который полностью устраняет эту проблему. Будь то фильтрация тысяч файлов, поиск в истории команд или переключение между ветками Git, fzf превращает утомительные задачи терминала в плавные, почти мгновенные операции.

В этом подробном руководстве вы узнаете, как установить fzf на Linux, освоить его основные функции, интегрировать его с популярными инструментами и настроить его под вашу точную рабочую процедуру.

> Запускаете собственную среду Linux? Мощная среда разработки начинается с правильной инфраструктуры. VPS Hosting AlexHost предоставляет полный доступ root, высокопроизводительное хранилище SSD и полную свободу в настройке сервера — идеальную основу для создания продуктивного рабочего процесса терминала Linux.

Что такое fzf?

fzf — это универсальный поисковик командной строки, написанный на Go. Он читает список элементов со стандартного входа и представляет их в интерактивном интерфейсе фильтрации в реальном времени. По мере ввода текста fzf сужает результаты, используя алгоритм нечеткого сопоставления — это означает, что вам не нужно вводить точные строки для поиска нужного.

Ключевые возможности fzf включают:

  • Поиск файлов и каталогов в больших деревьях каталогов
  • Навигация по истории команд с мгновенным вспоминанием
  • Просмотр ветвей и коммитов Git
  • Управление процессами и интерактивное завершение
  • Выбор хоста SSH из вашего файла конфигурации
  • Интеграция практически с любой командой, которая выводит построчный вывод

fzf легкий, не требует зависимостей после установки и работает безупречно с оболочками Bash, Zsh и Fish.

Установка fzf на Linux

Существует два основных метода установки: клонирование официального репозитория Git или использование менеджера пакетов вашего дистрибутива. Оба являются простыми.

Метод 1: Установка через Git (рекомендуется для последней версии)

Установка из репозитория GitHub гарантирует, что вы всегда получите самую свежую версию.

Шаг 1 — Клонируйте репозиторий:

git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf

Шаг 2 — Запустите скрипт установки:

cd ~/.fzf
./install

Во время установки вам будут заданы три вопроса конфигурации:

  • Включить привязки клавиш? (Рекомендуется: Да) — добавляет сочетания клавиш Ctrl+T, Ctrl+R и Alt+C
  • Включить нечеткое автодополнение? (Рекомендуется: Да) — включает интеграцию автодополнения по табуляции
  • Обновить файлы конфигурации оболочки? (Рекомендуется: Да) — автоматически загружает fzf в .bashrc / .zshrc

После установки перезагрузите вашу оболочку:

source ~/.bashrc   # For Bash users
source ~/.zshrc    # For Zsh users

Метод 2: Установка через менеджер пакетов

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

Ubuntu / Debian:

sudo apt update && sudo apt install fzf

Fedora:

sudo dnf install fzf

Arch Linux / Manjaro:

sudo pacman -S fzf

macOS (Homebrew):

brew install fzf
$(brew --prefix)/opt/fzf/install

Проверьте вашу установку:

fzf --version

Базовое использование fzf

После установки fzf сразу же готов к использованию. Вот основные команды для создания вашей основы.

1. Интерактивный поиск файлов

Запустите fzf в текущем каталоге для интерактивного поиска файлов:

fzf

Появляется интерактивное приглашение. Начните вводить любую часть имени файла — fzf фильтрует результаты в реальном времени. Используйте клавиши со стрелками для навигации и нажмите Enter для выбора.

Полезные сочетания клавиш навигации:

КлавишаДействие
/ Навигация по результатам
EnterПодтвердить выбор
TabОтметить несколько элементов
Ctrl+C / EscОтмена

2. Поиск в истории команд

Один из самых популярных вариантов использования fzf — интерактивный поиск в истории команд:

history | fzf

Если вы включили привязки клавиш во время установки, вы можете нажать Ctrl+R в любой момент в вашем терминале, чтобы активировать это мгновенно — намного мощнее, чем поиск по умолчанию в обратном направлении.

3. Объедините fzf с find

Выполняйте рекурсивный поиск по вашей файловой системе и передавайте результаты в fzf:

find . -type f | fzf

Для поиска только каталогов:

find . -type d | fzf

4. Перейдите в каталог с Alt+C

Если вы включили привязки клавиш, нажатие Alt+C открывает интерактивный навигатор каталогов. Выберите каталог, и fzf автоматически запустит cd для навигации туда.

5. Поиск ветвей Git

Быстро найдите и ссылайтесь на ветви Git в больших репозиториях:

git branch | fzf

Для интерактивного переключения на ветку:

git checkout $(git branch | fzf)

Интеграция fzf с другими командами

Настоящая мощь fzf проявляется, когда вы объединяете его с другими инструментами, используя подстановку команд ($(fzf)).

1. Откройте файл прямо в vim или nano

vim $(fzf)
nano $(fzf)

Введите часть имени файла, выберите его, и редактор откроется мгновенно — не нужно вводить полный путь.

2. Скопируйте путь файла в буфер обмена

fzf | xclip -selection clipboard

На системах, использующих xsel:

fzf | xsel --clipboard --input

3. Интерактивный выбор хоста SSH

Если вы управляете несколькими серверами, эта интеграция — настоящий прорыв:

ssh $(grep -i "^Host " ~/.ssh/config | awk '{print $2}' | fzf)

Это анализирует ваш файл конфигурации SSH и позволяет вам интерактивно выбрать хост перед подключением — больше не нужно запоминать имена хостов или IP-адреса.

> Управляете несколькими удаленными серверами? Выделенные серверы AlexHost предоставляют оборудование корпоративного уровня с полным административным контролем, что делает их идеальными для команд, которые полагаются на рабочие процессы, интенсивно использующие SSH.

4. Интерактивное завершение процесса

kill -9 $(ps aux | fzf | awk '{print $2}')

Выведите список всех запущенных процессов, выполните нечеткий поиск нужного и завершите его — все без необходимости заранее знать PID.

5. Предпросмотр содержимого файла во время поиска

fzf поддерживает флаг --preview, который отображает содержимое файла рядом с результатами поиска:

fzf --preview 'cat {}'

Для предпросмотра с подсветкой синтаксиса (требуется bat):

fzf --preview 'bat --color=always {}'

Настройка fzf

fzf широко настраивается через переменные окружения и файлы конфигурации оболочки.

1. Установите параметры по умолчанию с FZF_DEFAULT_OPTS

Добавьте это в ваш ~/.bashrc или ~/.zshrc для глобального применения параметров:

export FZF_DEFAULT_OPTS="--height 40% --reverse --inline-info --border"

Объяснение общих параметров:

ПараметрОписание
--height 40%Отобразить fzf в нижних 40% терминала
--reverseПоказать результаты сверху вниз (ввод вверху)
--inline-infoОтобразить количество совпадений встроенным образом
--borderНарисовать границу вокруг окна fzf
--multiВключить множественный выбор с Tab

2. Настройка цветов

Сопоставьте цветовую схему fzf с темой вашего терминала:

export FZF_DEFAULT_OPTS="--color=bg+:#3c3836,bg:#282828,fg:#ebdbb2,fg+:#ebdbb2,hl:#fabd2f,hl+:#fabd2f,info:#83a598,prompt:#bdae93,spinner:#fabd2f,pointer:#83a598,marker:#fe8019,border:#665c54"

Этот пример использует популярную цветовую схему Gruvbox. Отрегулируйте значения hex в соответствии с предпочитаемой темой.

3. Пользовательские привязки клавиш

Добавьте пользовательские привязки в файл конфигурации вашей оболочки:

# Ctrl+T — fuzzy file finder
export FZF_CTRL_T_COMMAND="find . -type f 2>/dev/null"

# Alt+C — fuzzy directory navigator
export FZF_ALT_C_COMMAND="find . -type d 2>/dev/null"

# Ctrl+R — command history search with preview
export FZF_CTRL_R_OPTS="--preview 'echo {}' --preview-window down:3:hidden:wrap --bind '?:toggle-preview'"

4. Установите источник файлов по умолчанию с FZF_DEFAULT_COMMAND

По умолчанию fzf использует find для вывода списка файлов. Вы можете заменить это более быстрыми инструментами, такими как fd или ripgrep:

# Using fd (faster alternative to find)
export FZF_DEFAULT_COMMAND="fd --type f --hidden --follow --exclude .git"

# Using ripgrep
export FZF_DEFAULT_COMMAND="rg --files --hidden --follow --glob '!.git'"

5. Файл постоянной конфигурации

Для пользователей Zsh вы можете хранить постоянные параметры fzf в отдельном файле:

echo "export FZF_DEFAULT_OPTS='--height 40% --reverse --inline-info --border'" >> ~/.fzf.zsh

Убедитесь, что этот файл загружается в вашем ~/.zshrc:

[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh

Практические примеры рабочего процесса fzf

Вот готовые к использованию функции, которые вы

15%

Сэкономьте 15% на всех хостинговых услугах

Проверьте свои навыки и получите скидку на любой тарифный план

Используйте код:

Skills
Начать