Economisiți 15% la toate serviciile de găzduire

Testează-ți abilitățile și obține Reducere la orice plan de găzduire

Utilizați codul: Skills Începeți
Secțiuni
Linux Servere virtuale

Cum se instalează și se utilizează fzf pe Linux: Ghidul complet pentru căutarea fuzzy în terminal

Dacă petreci timp semnificativ în terminalul Linux, știi deja că găsirea fișierelor, reamintirea comenzilor și navigarea în directoare te pot încetini. fzf (Fuzzy Finder) este un instrument de linie de comandă interactiv, extrem de rapid, care elimină complet această fricțiune. Indiferent dacă filtrezi mii de fișiere, cauți în istoricul comenzilor sau schimbi ramuri Git, fzf transformă sarcinile terminale obositoare în operații fluide, aproape instantanee.

În acest ghid cuprinzător, vei învăța cum să instalezi fzf pe Linux, să stăpânești caracteristicile sale principale, să îl integrezi cu instrumente populare și să îl personalizezi pentru a se potrivi exact cu fluxul tău de lucru.

> Rulezi propriul mediu Linux? O configurație puternică de dezvoltare începe cu infrastructura potrivită. VPS Hosting AlexHost îți oferă acces complet root, stocare SSD de înaltă performanță și libertate totală de a configura serverul — baza ideală pentru construirea unui flux de lucru productiv în terminalul Linux.

Ce este fzf?

fzf este un fuzzy finder de uz general, scris în Go, pentru linia de comandă. Citește o listă de elemente din intrarea standard și le prezintă într-o interfață de filtrare interactivă, în timp real. Pe măsură ce tastezi, fzf restrânge rezultatele folosind un algoritm de fuzzy-matching — ceea ce înseamnă că nu trebuie să tastezi șiruri exacte pentru a găsi ceea ce cauți.

Capacitățile cheie ale fzf includ:

  • Căutare de fișiere și directoare în copaci de directoare mari
  • Navigare în istoricul comenzilor cu reamintire instantanee
  • Răsfoire ramuri și commit-uri Git
  • Gestionarea proceselor și uciderea interactivă
  • Selecția gazdei SSH din fișierul tău de configurare
  • Integrare cu practic orice comandă care produce rezultate bazate pe linii

fzf este ușor, fără dependențe după instalare și funcționează perfect cu shell-urile Bash, Zsh și Fish.

Instalarea fzf pe Linux

Există două metode principale de instalare: clonarea depozitorului oficial Git sau utilizarea managerului de pachete al distribuției tale. Ambele sunt simple.

Metoda 1: Instalare via Git (Recomandată pentru versiunea cea mai recentă)

Instalarea din depozitoriul GitHub asigură că obții întotdeauna versiunea cea mai actualizată.

Pasul 1 — Clonează depozitoriul:

git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf

Pasul 2 — Rulează scriptul de instalare:

cd ~/.fzf
./install

În timpul instalării, vei fi întrebat cu trei întrebări de configurare:

  • Activezi combinații de taste? (Recomandat: Da) — Adaugă Ctrl+T, Ctrl+R și Alt+C comenzi rapide
  • Activezi auto-completare fuzzy? (Recomandat: Da) — Activează integrarea completării cu tab
  • Actualizezi fișierele de configurare shell? (Recomandat: Da) — Execută automat fzf în .bashrc / .zshrc

După instalare, reîncarcă shell-ul:

source ~/.bashrc   # For Bash users
source ~/.zshrc    # For Zsh users

Metoda 2: Instalare via Manager de pachete

Instalarea prin managerul de pachete este mai rapidă și se integrează cu mecanismul de actualizare al sistemului, deși poate oferi o versiune puțin mai veche.

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

Verifică instalarea:

fzf --version

Utilizarea de bază a fzf

După instalare, fzf este imediat utilizabil. Iată comenzile esențiale pentru a-ți construi baza.

1. Căutare interactivă de fișiere

Lansează fzf în directorul curent pentru a căuta interactiv fișiere:

fzf

Apare o solicitare interactivă. Începe să tastezi orice parte a unui nume de fișier — fzf filtrează rezultatele în timp real. Folosește tastele săgeți pentru a naviga și apasă Enter pentru a selecta.

Comenzi rapide utile de navigare:

TastăAcțiune
/ Navigare rezultate
EnterConfirmă selecția
TabMarchează mai multe elemente
Ctrl+C / EscAnulează

2. Căutare în istoricul comenzilor

Unul dintre cele mai populare cazuri de utilizare ale fzf este căutarea interactivă în istoricul comenzilor:

history | fzf

Dacă ai activat combinații de taste în timpul instalării, poți apăsa Ctrl+R în orice moment în terminalul tău pentru a declanșa acest lucru instantaneu — mult mai puternic decât căutarea inversă implicită.

3. Combină fzf cu find

Caută recursiv prin sistemul de fișiere și transmite rezultatele în fzf:

find . -type f | fzf

Pentru a căuta doar directoare:

find . -type d | fzf

4. Navighează la un director cu Alt+C

Dacă ai activat combinații de taste, apăsând Alt+C se deschide un navigator de directoare interactiv. Selectează un director și fzf execută automat cd pentru a naviga acolo.

5. Căutare ramuri Git

Găsește rapid și referențiază ramuri Git în depozitoare mari:

git branch | fzf

Pentru a verifica o ramură interactiv:

git checkout $(git branch | fzf)

Integrarea fzf cu alte comenzi

Puterea reală a fzf apare când îl combini cu alte instrumente folosind substituția de comenzi ($(fzf)).

1. Deschide un fișier direct în vim sau nano

vim $(fzf)
nano $(fzf)

Tastează o parte din numele unui fișier, selectează-l și editorul se deschide imediat — nu trebuie să tastezi calea completă.

2. Copiază o cale de fișier în clipboard

fzf | xclip -selection clipboard

Pe sisteme care folosesc xsel:

fzf | xsel --clipboard --input

3. Selecție interactivă a gazdei SSH

Dacă gestionezi mai multe servere, această integrare este o schimbare de joc:

ssh $(grep -i "^Host " ~/.ssh/config | awk '{print $2}' | fzf)

Aceasta analizează fișierul de configurare SSH și te lasă să selectezi interactiv o gazdă înainte de conectare — nu mai trebuie să memorezi nume de gazde sau adrese IP.

> Gestionezi mai multe servere la distanță? Serverele dedicate AlexHost oferă hardware de nivel enterprise cu control administrativ complet, fiind perfecte pentru echipe care se bazează pe fluxuri de lucru intensive cu SSH.

4. Ucide un proces interactiv

kill -9 $(ps aux | fzf | awk '{print $2}')

Listează toate procesele în execuție, caută fuzzy pe cel pe care îl dorești și ucide-l — totul fără a fi nevoie să cunoști PID-ul în avans.

5. Previzualizează conținutul fișierelor în timp ce cauți

fzf acceptă un steag --preview care afișează conținutul fișierelor alături de rezultatele căutării:

fzf --preview 'cat {}'

Pentru previzualizări cu evidențiere de sintaxă (necesită bat):

fzf --preview 'bat --color=always {}'

Personalizarea fzf

fzf este extrem de configurabil prin variabile de mediu și fișiere de configurare shell.

1. Setează opțiuni implicite cu FZF_DEFAULT_OPTS

Adaugă aceasta la ~/.bashrc sau ~/.zshrc pentru a aplica opțiuni la nivel global:

export FZF_DEFAULT_OPTS="--height 40% --reverse --inline-info --border"

Opțiuni comune explicate:

OpțiuneDescriere
--height 40%Afișează fzf în partea inferioară a 40% a terminalului
--reverseAfișează rezultatele de sus în jos (intrare în sus)
--inline-infoAfișează numărul de potriviri în linie
--borderDesenează o margine în jurul ferestrei fzf
--multiActivează multi-select cu Tab

2. Personalizează culorile

Potrivește schema de culori a fzf cu tema terminalului:

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"

Acest exemplu folosește schema de culori populară Gruvbox. Ajustează valorile hex pentru a se potrivi cu tema preferată.

3. Combinații de taste personalizate

Adaugă combinații personalizate la fișierul de configurare 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. Setează o sursă de fișier implicită cu FZF_DEFAULT_COMMAND

În mod implicit, fzf folosește find pentru a lista fișiere. Poți înlocui aceasta cu instrumente mai rapide cum ar fi fd sau 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. Fișier de configurare persistent

Pentru utilizatorii Zsh, poți stoca setări persistent ale fzf într-un fișier dedicat:

echo "export FZF_DEFAULT_OPTS='--height 40% --reverse --inline-info --border'" >> ~/.fzf.zsh

Asigură-te că acest fișier este executat în ~/.zshrc:

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

Exemple practice de flux de lucru cu fzf

Iată funcții gata de utilizare pe care poți să le adaugi la .bashrc sau .zshrc:

cd interactiv cu fzf

fcd() {
  local dir
  dir=$(find ${1:-.} -type d 2>/dev/null | fzf +m) && cd "$dir"
}

Deschide fișiere recente în vim

fvim() {
  local file
  file=$(find . -type f -name "*.${1:-*}" | fzf --preview 'cat {}')
  [ -n "$file" ] && vim "$file"
}

Caută și aplică Git Stash

fstash() {
  local stash
  stash=$(git stash list | fzf | cut -d: -f1)
  [ -n "$stash" ] && git stash apply "$stash"
}

Depanarea problemelor comune cu fzf

ProblemăSoluție
fzf: command not foundAsigură-te că ~/.fzf/bin este în $PATH; re-rulează ~/.fzf/install
Combinații de taste care nu funcționeazăRe-rulează scriptul de instalare și confirmă că configurația shell este executată
Performanță lentă în directoare mariSetează FZF_DEFAULT_COMMAND pentru a folosi fd sau rg în loc de ###PPT_NOTR_77_CODE
Linux
Linux Servere dedicate Servere virtuale
Administrație Linux Servere virtuale