Jak zainstalować i używać fzf na Linuxie: Kompletny przewodnik do wyszukiwania rozmytego w terminalu
Jeśli spędzasz znaczną ilość czasu w terminalu Linux, już wiesz, że wyszukiwanie plików, przypominanie sobie poleceń i nawigacja po katalogach mogą Cię spowolnić. fzf (Fuzzy Finder) to błyskawicznie szybkie, interaktywne narzędzie wiersza poleceń, które całkowicie eliminuje to tarcie. Niezależnie od tego, czy filtrujesz tysiące plików, przeszukujesz historię poleceń, czy przełączasz się między gałęziami Git, fzf przekształca żmudne zadania terminala w płynne, niemal natychmiastowe operacje.
W tym kompleksowym przewodniku nauczysz się, jak zainstalować fzf na Linuksie, opanować jego główne funkcje, zintegrować go z popularnymi narzędziami i dostosować go do swojego dokładnego przepływu pracy.
> Uruchamiasz własne środowisko Linux? Potężna konfiguracja programistyczna zaczyna się od odpowiedniej infrastruktury. VPS Hosting AlexHost daje Ci pełny dostęp root, wysokowydajny magazyn SSD i pełną swobodę konfiguracji serwera — idealną podstawę do budowania produktywnego przepływu pracy terminala Linux.
Czym jest fzf?
fzf to ogólnego przeznaczenia, napisany w Go, rozmyty wyszukiwacz wiersza poleceń. Odczytuje listę elementów ze standardowego wejścia i prezentuje je w interfejsie filtrowania w czasie rzeczywistym i interaktywnym. Podczas pisania fzf zawęża wyniki za pomocą algorytmu rozmytego dopasowania — co oznacza, że nie musisz wpisywać dokładnych ciągów znaków, aby znaleźć to, czego szukasz.
Kluczowe możliwości fzf obejmują:
- Wyszukiwanie plików i katalogów w dużych drzewach katalogów
- Nawigacja po historii poleceń z natychmiastowym przywołaniem
- Przeglądanie gałęzi i commitów Git
- Zarządzanie procesami i interaktywne zabijanie
- Wybór hosta SSH z pliku konfiguracyjnego
- Integracja z praktycznie każdym poleceniem, które generuje dane wyjściowe oparte na liniach
fzf jest lekki, niezależny od zależności po instalacji i bezproblemowo współpracuje z powłokami Bash, Zsh i Fish.
Instalacja fzf na Linuksie
Istnieją dwie główne metody instalacji: klonowanie oficjalnego repozytorium Git lub użycie menedżera pakietów dystrybucji. Obie są proste.
Metoda 1: Instalacja przez Git (Rekomendowana dla najnowszej wersji)
Instalacja z repozytorium GitHub zapewnia, że zawsze otrzymasz najnowszą wersję.
Krok 1 — Sklonuj repozytorium:
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzfKrok 2 — Uruchom skrypt instalacyjny:
cd ~/.fzf
./installPodczas instalacji zostaniesz poproszony o odpowiedź na trzy pytania konfiguracyjne:
- Włączyć powiązania klawiszy? (Rekomendowane: Tak) — Dodaje skróty
Ctrl+T,Ctrl+RiAlt+C - Włączyć rozmyte autouzupełnianie? (Rekomendowane: Tak) — Włącza integrację uzupełniania tabulatorem
- Zaktualizować pliki konfiguracyjne powłoki? (Rekomendowane: Tak) — Automatycznie źródłuje fzf w
.bashrc/.zshrc
Po instalacji przeładuj powłokę:
source ~/.bashrc # For Bash users
source ~/.zshrc # For Zsh usersMetoda 2: Instalacja przez menedżer pakietów
Instalacja przez menedżer pakietów jest szybsza i integruje się z mechanizmem aktualizacji systemu, chociaż może dostarczać nieco starszą wersję.
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/installZweryfikuj instalację:
fzf --versionPodstawowe użycie fzf
Po zainstalowaniu fzf jest natychmiast użyteczny. Oto podstawowe polecenia do zbudowania Twojej podstawy.
1. Interaktywne wyszukiwanie plików
Uruchom fzf w bieżącym katalogu, aby interaktywnie wyszukiwać pliki:
fzfPojawia się interaktywny monit. Zacznij pisać dowolną część nazwy pliku — fzf filtruje wyniki w czasie rzeczywistym. Użyj klawiszy strzałek do nawigacji i naciśnij Enter aby wybrać.
Przydatne skróty nawigacji:
| Klawisz | Akcja |
|---|---|
↑ / ↓ | Nawiguj wyniki |
Enter | Potwierdź wybór |
Tab | Oznacz wiele elementów |
Ctrl+C / Esc | Anuluj |
2. Wyszukaj historię poleceń
Jeden z najpopularniejszych przypadków użycia fzf to interaktywne wyszukiwanie historii poleceń:
history | fzfJeśli włączyłeś powiązania klawiszy podczas instalacji, możesz nacisnąć Ctrl+R w dowolnym momencie w terminalu, aby wyzwolić to natychmiast — znacznie bardziej potężne niż domyślne wyszukiwanie wstecz.
3. Połącz fzf z find
Wyszukaj rekurencyjnie w systemie plików i przesyłaj wyniki do fzf:
find . -type f | fzfAby wyszukiwać tylko katalogi:
find . -type d | fzf4. Nawiguj do katalogu za pomocą Alt+C
Jeśli włączyłeś powiązania klawiszy, naciśnięcie Alt+C otwiera interaktywny nawigator katalogów. Wybierz katalog, a fzf automatycznie uruchamia cd aby tam nawigować.
5. Wyszukaj gałęzie Git
Szybko znajdź i odwołaj się do gałęzi Git w dużych repozytoriach:
git branch | fzfAby interaktywnie wyewidencjonować gałąź:
git checkout $(git branch | fzf)Integracja fzf z innymi poleceniami
Rzeczywista moc fzf pojawia się, gdy łączysz go z innymi narzędziami za pomocą podstawienia poleceń ($(fzf)).
1. Otwórz plik bezpośrednio w vim lub nano
vim $(fzf)nano $(fzf)Wpisz część nazwy pliku, wybierz go, a edytor otworzy się natychmiast — nie ma potrzeby wpisywania pełnej ścieżki.
2. Skopiuj ścieżkę pliku do schowka
fzf | xclip -selection clipboardW systemach używających xsel:
fzf | xsel --clipboard --input3. Interaktywny wybór hosta SSH
Jeśli zarządzasz wieloma serwerami, ta integracja zmienia grę:
ssh $(grep -i "^Host " ~/.ssh/config | awk '{print $2}' | fzf)To analizuje plik konfiguracyjny SSH i pozwala Ci interaktywnie wybrać hosta przed połączeniem — nie ma już potrzeby zapamiętywania nazw hostów lub adresów IP.
> Zarządzasz wieloma zdalnymi serwerami? Serwery dedykowane AlexHost zapewniają sprzęt klasy korporacyjnej z pełną kontrolą administracyjną, co czyni je idealnymi dla zespołów, które polegają na przepływach pracy intensywnie korzystających z SSH.
4. Interaktywnie zabij proces
kill -9 $(ps aux | fzf | awk '{print $2}')Wylistuj wszystkie uruchomione procesy, rozmycie wyszukaj ten, który chcesz, i go zabij — wszystko bez konieczności wcześniejszego poznania PID.
5. Podgląd zawartości pliku podczas wyszukiwania
fzf obsługuje flagę --preview, która wyświetla zawartość pliku obok wyników wyszukiwania:
fzf --preview 'cat {}'Dla podglądów z wyróżnianiem składni (wymaga bat):
fzf --preview 'bat --color=always {}'Dostosowywanie fzf
fzf jest rozległy konfigurowalny za pośrednictwem zmiennych środowiskowych i plików konfiguracyjnych powłoki.
1. Ustaw opcje domyślne za pomocą FZF_DEFAULT_OPTS
Dodaj to do ~/.bashrc lub ~/.zshrc aby zastosować opcje globalnie:
export FZF_DEFAULT_OPTS="--height 40% --reverse --inline-info --border"Wyjaśnienie typowych opcji:
| Opcja | Opis |
|---|---|
--height 40% | Wyświetl fzf w dolnych 40% terminala |
--reverse | Pokaż wyniki od góry do dołu (wejście na górze) |
--inline-info | Wyświetl liczbę dopasowań w tekście |
--border | Narysuj obramowanie wokół okna fzf |
--multi | Włącz wielokrotny wybór za pomocą Tab |
2. Dostosuj kolory
Dopasuj schemat kolorów fzf do motywu terminala:
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"Ten przykład używa popularnego schematu kolorów Gruvbox. Dostosuj wartości szesnastkowe, aby pasowały do preferowanego motywu.
3. Niestandardowe powiązania klawiszy
Dodaj niestandardowe powiązania do pliku konfiguracyjnego powłoki:
# 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. Ustaw domyślne źródło pliku za pomocą FZF_DEFAULT_COMMAND
Domyślnie fzf używa find do wylistowania plików. Możesz to zastąpić szybszymi narzędziami, takimi jak fd lub 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. Trwały plik konfiguracyjny
Dla użytkowników Zsh możesz przechowywać trwałe ustawienia fzf w dedykowanym pliku:
echo "export FZF_DEFAULT_OPTS='--height 40% --reverse --inline-info --border'" >> ~/.fzf.zshUpewnij się, że ten plik jest źródłowany w ~/.zshrc:
[ -f ~/.fzf.zsh ] && source ~/.fzf.zshPraktyczne przykłady przepływu pracy fzf
Oto gotowe do użycia funkcje, które możesz dodać do .bashrc lub .zshrc:
Interaktywny cd z fzf
fcd() {
local dir
dir=$(find ${1:-.} -type d 2>/dev/null | fzf +m) && cd "$dir"
}
na wszystkich usługach hostingowych