Заощадьте 15% на всіх хостингових послугах

Перевірте свої навички і отримайте Знижку на будь-який план хостингу

Використовуй код: Skills Почати
Рубрики
Linux Віртуальні сервери

Як встановити та використовувати 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-адреси.

> Керуєте кількома віддаленими серверами? 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

Адміністрація Виділені сервери Віртуальні сервери
Linux Безпека
Linux Віртуальні сервери