Zaoszczędź 15% na wszystkich usługach hostingowych

Sprawdź swoje umiejętności i zdobądź Rabat na dowolny plan hostingowy

Użyj kodu: Skills Rozpocznij
Sekcja
Linux Serwery Wirtualne

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 ~/.fzf

Krok 2 — Uruchom skrypt instalacji:

cd ~/.fzf
./install

Podczas instalacji zostaniesz poproszony o odpowiedź na trzy pytania konfiguracyjne:

  • Włączyć skróty klawiszowe? (Rekomendowane: Tak) — Dodaje skróty Ctrl+T, Ctrl+R i Alt+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 users

Metoda 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 fzf

Fedora:

sudo dnf install fzf

Arch Linux / Manjaro:

sudo pacman -S fzf

macOS (Homebrew):

brew install fzf
$(brew --prefix)/opt/fzf/install

Sprawdź instalację:

fzf --version

Podstawowe 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:

fzf

Pojawia 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:

KlawiszAkcja
/ Nawigacja po wynikach
EnterPotwierdź wybór
TabZaznacz wiele elementów
Ctrl+C / EscAnuluj

2. Wyszukiwanie historii poleceń

Jeden z najpopularniejszych przypadków użycia fzf to interaktywne wyszukiwanie historii poleceń:

history | fzf

Jeś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 | fzf

Aby wyszukiwać tylko katalogi:

find . -type d | fzf

4. 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 | fzf

Aby 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 clipboard

W systemach używających xsel:

fzf | xsel --clipboard --input

3. 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:

OpcjaOpis
--height 40%Wyświetl fzf w dolnych 40% terminala
--reversePokaż wyniki od góry do dołu (wejście u góry)
--inline-infoWyświetl liczbę wyników w tekście
--borderNarysuj obramowanie wokół okna fzf
--multiWłą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.zsh

Upewnij się, że ten plik jest załadowany w ~/.zshrc:

[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh

Praktyczne 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

ProblemRozwiązanie
fzf: command not foundUpewnij 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 katalogachUstaw FZF_DEFAULT_COMMAND aby używać fd lub rg zamiast find
Kolory nie wyświetlają się poprawnieUpewnij się, że Twój terminal obsługuje 256 kolorów; dodaj --color=always do poleceń podglądu
fzf nie znaleziony po instalacji pakietuUruchom 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, kill i find używając podstawienia poleceń
  • Dostosuj wygląd i zachowanie poprzez FZF_DEFAULT_OPTS i konfigurację powłoki
  • Użyj --preview aby 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.