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

Krok 2 — Uruchom skrypt instalacyjny:

cd ~/.fzf
./install

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

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

Zweryfikuj instalację:

fzf --version

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

fzf

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

KlawiszAkcja
/ Nawiguj wyniki
EnterPotwierdź wybór
TabOznacz wiele elementów
Ctrl+C / EscAnuluj

2. Wyszukaj historię 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

Wyszukaj rekurencyjnie w systemie plików i przesyłaj wyniki do fzf:

find . -type f | fzf

Aby wyszukiwać tylko katalogi:

find . -type d | fzf

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

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

OpcjaOpis
--height 40%Wyświetl fzf w dolnych 40% terminala
--reversePokaż wyniki od góry do dołu (wejście na górze)
--inline-infoWyświetl liczbę dopasowań 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 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.zsh

Upewnij się, że ten plik jest źródłowany 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 .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

Bezpieczeństwo Serwery Wirtualne
Bezpieczeństwo Hosting LiteSpeed Serwery Wirtualne
Linux System operacyjny