Как да инсталирате и използвате fzf на Linux: Пълното ръководство за размито намиране в терминала
Ако прекарвате значително време в Linux терминала, вече знаете, че намирането на файлове, припомнянето на команди и навигирането в директориите могат да ви забавят. fzf (Fuzzy Finder) е невероятно бърз, интерактивен инструмент за командния ред, който напълно елиминира това трение. Независимо дали филтрирате хиляди файлове, търсите история на команди или превключвате Git клонове, fzf превръща досадните терминални задачи в плавни, почти мигновени операции.
В този всеобхватен справочник ще научите как да инсталирате fzf на Linux, да овладеете основните му функции, да го интегрирате с популярни инструменти и да го персонализирате според вашия точен работен процес.
> Работите ли със собствена Linux среда? Мощна разработка започва с правилната инфраструктура. AlexHost VPS хостинг ви дава пълен root достъп, висока производителност SSD хранилище и пълна свобода да конфигурирате вашия сървър — идеалната основа за изграждане на продуктивен Linux терминален работен процес.
Какво е fzf?
fzf е универсален, командно-редов fuzzy finder, написан на Go. Той чете списък от елементи от стандартния вход и ги представя в интерфейс за реално време, интерактивно филтриране. Докато пишете, fzf стеснява резултатите, използвайки fuzzy-matching алгоритъм — което означава, че не трябва да пишете точни низове, за да намерите това, което търсите.
Ключовите възможности на fzf включват:
- Търсене на файлове и директории в големи дърветата на директориите
- Навигация в историята на команди с мигновено припомняне
- Преглед на Git клонове и commit
- Управление на процеси и интерактивно убиване
- Избор на SSH хост от вашия конфигурационен файл
- Интеграция с практически всяка команда, която произвежда изход, базиран на редове
fzf е лек, без зависимости след инсталация и работи безпроблемно с Bash, Zsh и Fish shell.
Инсталиране на 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преки пътища - Активиране на fuzzy автодопълване? (препоръчано: Да) — Активира интеграция на tab-допълване
- Актуализиране на конфигурационни файлове на shell? (препоръчано: Да) — Автоматично sourcing на fzf в
.bashrc/.zshrc
След инсталация, презаредете вашия shell:
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 се появява, когато го комбинирате с други инструменти, използвайки command substitution ($(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 адреси.
> Управлявате ли множество отдалечени сървъри? AlexHost Dedicated Servers предоставят хардуер на ниво предприятие с пълен административен контрол, което ги прави идеални за екипи, които разчитат на SSH-интензивни работни процеси.
4. Интерактивно убиване на процес
kill -9 $(ps aux | fzf | awk '{print $2}')Изведете списък на всички работещи процеси, fuzzy-търсете този, който искате, и го убийте — всичко без необходимост да знаете PID предварително.
5. Преглед на съдържанието на файл по време на търсене
fzf поддържа флаг --preview, който показва съдържанието на файл заедно с резултатите от търсенето:
fzf --preview 'cat {}'За преглед с синтаксис подсветка (изисква bat):
fzf --preview 'bat --color=always {}'Персонализиране на fzf
fzf е обширно конфигурируем чрез променливи на среда и конфигурационни файлове на shell.
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. Регулирайте шестнадесетичните стойности, за да съответстват на вашата предпочитана тема.
3. Персонализирани клавишни комбинации
Добавете персонализирани комбинации към вашия конфигурационен файл на shell:
# 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Уверете се, че този файл е sourced във вашия ~/.zshrc:
[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
от всички хостинг услуги