Як встановити та використовувати 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 fzfFedora:
sudo dnf install fzfArch Linux / Manjaro:
sudo pacman -S fzfmacOS (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 | fzf4. Перейдіть до каталогу за допомогою 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 --input3. Інтерактивний вибір хоста SSH
Якщо ви керуєте кількома серверами, ця інтеграція змінює гру:
ssh $(grep -i "^Host " ~/.ssh/config | awk '{print $2}' | fzf)Це аналізує ваш файл конфігурації SSH та дозволяє вам інтерактивно вибрати хост перед підключенням — більше не потрібно запам’ятовувати імена хостів або IP-адреси.
> Керуєте кількома віддаленими серверами? Dedicated Servers 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:
###PPT_NOTR
на всіх хостингових послугах