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 dowiesz się, jak zainstalować fzf na Linux, opanować jego podstawowe funkcje, zintegrować go z popularnymi narzędziami i dostosować go do swojego dokładnego przepływu pracy.
> Uruchamiasz własne środowisko Linux? Potężne środowisko programistyczne zaczyna się od odpowiedniej infrastruktury. VPS Hosting AlexHost daje Ci pełny dostęp root, wysokowydajny magazyn SSD i całkowitą swobodę konfiguracji serwera — idealną podstawę do budowania produktywnego przepływu pracy w terminalu Linux.
Co to jest fzf?
fzf to ogólnego przeznaczenia, działający z linii poleceń fuzzy finder napisany w Go. Odczytuje listę elementów ze standardowego wejścia i przedstawia je w interfejsie filtrowania w czasie rzeczywistym, interaktywnym. Podczas pisania fzf zawęża wyniki za pomocą algorytmu fuzzy-matchingu — 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 historią poleceń z natychmiastowym przywołaniem
- Przeglądanie gałęzi i commitów Git
- Zarządzanie procesami i interaktywne ich kończenie
- Wybór hosta SSH z pliku konfiguracyjnego
- Integracja z praktycznie każdym poleceniem produkującym wyjście 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.
Instalowanie fzf na Linux
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 (Rekomendowane 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 instalacji:
cd ~/.fzf
./installPodczas instalacji zostaniesz poproszony o odpowiedź na trzy pytania konfiguracyjne:
- Włączyć skróty klawiszowe? (Rekomendowane: Tak) — Dodaje skróty
Ctrl+T,Ctrl+RiAlt+C - Włączyć rozmyte automatyczne uzupełnianie? (Rekomendowane: Tak) — Włącza integrację uzupełniania za pomocą tabulatora
- Zaktualizować pliki konfiguracji powłoki? (Rekomendowane: Tak) — Automatycznie ładuje 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 dostarczyć 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/installSprawdź instalację:
fzf --versionPodstawowe użycie fzf
Po zainstalowaniu fzf jest natychmiast gotowy do użycia. Oto niezbędne polecenia, aby zbudować swoje fundamenty.
1. Interaktywne wyszukiwanie plików
Uruchom fzf w bieżącym katalogu, aby interaktywnie wyszukiwać pliki:
fzfPojawia się interaktywny prompt. 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 nawigacyjne:
| Klawisz | Akcja |
|---|---|
↑ / ↓ | Nawigacja po wynikach |
Enter | Potwierdź wybór |
Tab | Zaznacz wiele elementów |
Ctrl+C / Esc | Anuluj |
2. Wyszukiwanie historii 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
Wyszukuj rekurencyjnie w systemie plików i przesyłaj wyniki do fzf:
find . -type f | fzfAby wyszukiwać tylko katalogi:
find . -type d | fzf4. Przejdź 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 się tam nawigować.
5. Wyszukiwanie gałęzi Git
Szybko znajdź i odwołaj się do gałęzi Git w dużych repozytoriach:
git branch | fzfAby interaktywnie sprawdzić gałąź:
git checkout $(git branch | fzf)Integracja fzf z innymi poleceniami
Prawdziwa 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 ją, 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 interaktywnie wybrać hosta przed połączeniem — nie musisz już zapamiętywać nazw hostów ani adresów IP.
> Zarządzasz wieloma zdalnymi serwerami? Serwery dedykowane AlexHost zapewniają sprzęt klasy enterprise z pełną kontrolą administracyjną, co czyni je idealnymi dla zespołów polegających na przepływach pracy intensywnie korzystających z SSH.
4. Interaktywnie zabij proces
kill -9 $(ps aux | fzf | awk '{print $2}')Wyświetl listę wszystkich uruchomionych procesów, wyszukaj rozmycie ten, który chcesz, i go zabij — wszystko bez konieczności wcześniejszego znania 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 szeroko konfigurowalny za pomocą 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 u góry) |
--inline-info | Wyświetl liczbę wyników 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 wyświetlania listy plików. Możesz zastąpić to 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 załadowany 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 swojego .bashrc lub .zshrc:
Interaktywny cd z fzf
fcd() {
local dir
dir=$(find ${1:-.} -type d 2>/dev/null | fzf +m) && cd "$dir"
}Otwórz ostatnie pliki w vim
fvim() {
local file
file=$(find . -type f -name "*.${1:-*}" | fzf --preview 'cat {}')
[ -n "$file" ] && vim "$file"
}Wyszukaj i zastosuj Git Stash
fstash() {
local stash
stash=$(git stash list | fzf | cut -d: -f1)
[ -n "$stash" ] && git stash apply "$stash"
}Rozwiązywanie typowych problemów z fzf
| Problem | Rozwiązanie |
|---|---|
fzf: command not found | Upewnij się, że ~/.fzf/bin znajduje się w Twoim $PATH; ponownie uruchom ~/.fzf/install |
| Skróty klawiaturowe nie działają | Ponownie uruchom skrypt instalacji i potwierdź, że konfiguracja powłoki jest załadowana |
| Powolna wydajność w dużych katalogach | Ustaw FZF_DEFAULT_COMMAND aby używać fd lub rg zamiast find |
| Kolory nie wyświetlają się poprawnie | Upewnij się, że Twój terminal obsługuje 256 kolorów; dodaj --color=always do poleceń podglądu |
| fzf nie znaleziony po instalacji pakietu | Uruchom source ~/.bashrc lub otwórz nową sesję terminala |
Dlaczego środowisko hostingowe ma znaczenie dla produktywności programistów
Potężny workflow terminala, taki jak fzf, jest tak samo efektywny, jak środowisko, w którym działa. Powolne I/O, ograniczone zasoby lub ograniczone uprawnienia mogą podważyć nawet najlepsze narzędzia.
- Dla programistów i administratorów systemów, którzy potrzebują pełnej kontroli, VPS Hosting AlexHost zapewnia dedykowane zasoby, dostęp root i elastyczność do instalacji dowolnego narzędzia bez ograniczeń.
- Dla zespołów zarządzających aplikacjami internetowymi, połączenie serwera z VPS z cPanel daje zarówno moc terminala, jak i graficzny interfejs zarządzania.
- Dla projektów wymagających domeny i obecności w sieci, Rejestracja Domeny i Hosting Współdzielony AlexHost oferują niedrogie, w pełni zarządzane punkty wyjścia.
Podsumowanie
fzf jest jednym z najbardziej wpływowych narzędzi, które możesz dodać do swojego przepływu pracy w terminalu Linux. Jego algorytm rozmytego dopasowania, filtrowanie w czasie rzeczywistym i bezproblemowa integracja z poleceniami powłoki czynią go niezbędnym mnożnikiem produktywności — niezależnie od tego, czy szukasz plików, przywołujesz polecenia, zarządzasz gałęziami Git, czy nawigujesz po serwerach zdalnych.
Kluczowe wnioski z tego przewodnika:
- Zainstaluj fzf poprzez klonowanie Git, aby uzyskać najnowsze funkcje, lub użyj menedżera pakietów dla prostoty
- Włącz powiązania klawiszy (
Ctrl+T,Ctrl+R,Alt+C) dla natychmiastowego dostępu do najbardziej przydatnych funkcji fzf - Połącz fzf z
vim,ssh,git,killifindużywając podstawienia poleceń - Dostosuj wygląd i zachowanie poprzez
FZF_DEFAULT_OPTSi konfigurację powłoki - Użyj
--previewaby zamienić fzf w w pełni funkcjonalną przeglądarkę plików
Zacznij od podstaw, stopniowo włączaj integracje pasujące do Twojego przepływu pracy, a szybko zastanowisz się, jak kiedykolwiek radziłeś sobie w terminalu bez niego.
na wszystkich usługach hostingowych