Poupe 15% em todos os serviços de alojamento

Teste as suas habilidades e obtenha Desconto em qualquer plano

Utilizar o código: Skills Começar a trabalhar
Secções
Linux Servidores Virtuais

Como Instalar e Usar fzf no Linux: O Guia Completo para Busca Fuzzy no Terminal

Se você passa tempo significativo no terminal Linux, já sabe que encontrar arquivos, lembrar comandos e navegar em diretórios podem deixá-lo mais lento. fzf (Fuzzy Finder) é uma ferramenta de linha de comando interativa extremamente rápida que elimina completamente esse atrito. Seja filtrando milhares de arquivos, pesquisando histórico de comandos ou alternando branches do Git, fzf transforma tarefas terminais tediosas em operações fluidas e quase instantâneas.

Neste guia abrangente, você aprenderá como instalar fzf no Linux, dominar seus recursos principais, integrá-lo com ferramentas populares e personalizá-lo para se adequar exatamente ao seu fluxo de trabalho.

> Executando seu próprio ambiente Linux? Uma configuração de desenvolvimento poderosa começa com a infraestrutura certa. O VPS Hosting da AlexHost oferece acesso root completo, armazenamento SSD de alto desempenho e liberdade total para configurar seu servidor — a base ideal para construir um fluxo de trabalho produtivo no terminal Linux.

O que é fzf?

fzf é um fuzzy finder de propósito geral, escrito em Go, para linha de comando. Ele lê uma lista de itens da entrada padrão e os apresenta em uma interface de filtragem interativa em tempo real. Conforme você digita, fzf reduz os resultados usando um algoritmo de correspondência difusa — o que significa que você não precisa digitar strings exatas para encontrar o que procura.

Os principais recursos do fzf incluem:

  • Busca de arquivos e diretórios em grandes árvores de diretórios
  • Navegação de histórico de comandos com recuperação instantânea
  • Navegação de branches e commits do Git
  • Gerenciamento de processos e encerramento interativo
  • Seleção de host SSH a partir do seu arquivo de configuração
  • Integração com praticamente qualquer comando que produza saída baseada em linhas

fzf é leve, sem dependências após a instalação, e funciona perfeitamente com shells Bash, Zsh e Fish.

Instalando fzf no Linux

Existem dois métodos de instalação principais: clonar o repositório Git oficial ou usar o gerenciador de pacotes da sua distribuição. Ambos são diretos.

Método 1: Instalar via Git (Recomendado para Versão Mais Recente)

Instalar a partir do repositório GitHub garante que você sempre obtenha a versão mais atualizada.

Passo 1 — Clone o repositório:

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

Passo 2 — Execute o script de instalação:

cd ~/.fzf
./install

Durante a instalação, você será solicitado com três perguntas de configuração:

  • Ativar vinculações de teclas? (Recomendado: Sim) — Adiciona atalhos Ctrl+T, Ctrl+R e Alt+C
  • Ativar preenchimento automático difuso? (Recomendado: Sim) — Ativa integração de preenchimento com tabulação
  • Atualizar arquivos de configuração do shell? (Recomendado: Sim) — Carrega automaticamente fzf em .bashrc / .zshrc

Após a instalação, recarregue seu shell:

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

Método 2: Instalar via Gerenciador de Pacotes

A instalação do gerenciador de pacotes é mais rápida e se integra ao mecanismo de atualização do seu sistema, embora possa fornecer uma versão ligeiramente mais antiga.

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

Verifique sua instalação:

fzf --version

Uso Básico do fzf

Uma vez instalado, fzf é imediatamente utilizável. Aqui estão os comandos essenciais para construir sua base.

1. Busca Interativa de Arquivos

Inicie fzf no seu diretório atual para pesquisar arquivos interativamente:

fzf

Um prompt interativo aparece. Comece a digitar qualquer parte de um nome de arquivo — fzf filtra resultados em tempo real. Use as setas para navegar e pressione Enter para selecionar.

Atalhos de navegação úteis:

TeclaAção
/ Navegar resultados
EnterConfirmar seleção
TabMarcar múltiplos itens
Ctrl+C / EscCancelar

2. Pesquisar Histórico de Comandos

Um dos casos de uso mais populares do fzf é a busca interativa de histórico de comandos:

history | fzf

Se você ativou vinculações de teclas durante a instalação, pode pressionar Ctrl+R a qualquer momento no seu terminal para acioná-lo instantaneamente — muito mais poderoso do que a busca reversa padrão.

3. Combinar fzf com find

Pesquise recursivamente através do seu sistema de arquivos e canalize os resultados para fzf:

find . -type f | fzf

Para pesquisar apenas diretórios:

find . -type d | fzf

4. Navegar para um Diretório com Alt+C

Se você ativou vinculações de teclas, pressionar Alt+C abre um navegador de diretório interativo. Selecione um diretório e fzf executa automaticamente cd para navegar até lá.

5. Pesquisar Branches do Git

Encontre rapidamente e referencie branches do Git em repositórios grandes:

git branch | fzf

Para fazer checkout de um branch interativamente:

git checkout $(git branch | fzf)

Integrando fzf com Outros Comandos

O verdadeiro poder do fzf emerge quando você o combina com outras ferramentas usando substituição de comando ($(fzf)).

1. Abrir um Arquivo Diretamente em vim ou nano

vim $(fzf)
nano $(fzf)

Digite parte de um nome de arquivo, selecione-o e o editor abre imediatamente — sem necessidade de digitar o caminho completo.

2. Copiar um Caminho de Arquivo para a Área de Transferência

fzf | xclip -selection clipboard

Em sistemas usando xsel:

fzf | xsel --clipboard --input

3. Seleção Interativa de Host SSH

Se você gerencia múltiplos servidores, essa integração é uma mudança de jogo:

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

Isso analisa seu arquivo de configuração SSH e permite que você selecione interativamente um host antes de conectar — sem mais memorizar nomes de hosts ou endereços IP.

> Gerenciando múltiplos servidores remotos? Os Servidores Dedicados da AlexHost fornecem hardware de nível empresarial com controle administrativo total, tornando-os perfeitos para equipes que dependem de fluxos de trabalho intensivos em SSH.

4. Encerrar um Processo Interativamente

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

Liste todos os processos em execução, pesquise difusamente pelo que você deseja e encerre-o — tudo sem precisar conhecer o PID com antecedência.

5. Visualizar Conteúdo de Arquivo Enquanto Pesquisa

fzf suporta uma flag --preview que exibe conteúdo de arquivo ao lado dos seus resultados de pesquisa:

fzf --preview 'cat {}'

Para visualizações com destaque de sintaxe (requer bat):

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

Personalizando fzf

fzf é extensivamente configurável através de variáveis de ambiente e arquivos de configuração do shell.

1. Definir Opções Padrão com FZF_DEFAULT_OPTS

Adicione isto ao seu ~/.bashrc ou ~/.zshrc para aplicar opções globalmente:

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

Opções comuns explicadas:

OpçãoDescrição
--height 40%Exibir fzf nos 40% inferiores do terminal
--reverseMostrar resultados de cima para baixo (entrada no topo)
--inline-infoExibir contagem de correspondências em linha
--borderDesenhar uma borda ao redor da janela fzf
--multiAtivar multi-seleção com Tab

2. Personalizar Cores

Combine o esquema de cores do fzf com o tema do seu terminal:

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"

Este exemplo usa o popular esquema de cores Gruvbox. Ajuste valores hexadecimais para corresponder ao seu tema preferido.

3. Vinculações de Teclas Personalizadas

Adicione vinculações personalizadas ao seu arquivo de configuração do 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. Definir uma Fonte de Arquivo Padrão com FZF_DEFAULT_COMMAND

Por padrão, fzf usa find para listar arquivos. Você pode substituir isto com ferramentas mais rápidas como fd ou 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. Arquivo de Configuração Persistente

Para usuários de Zsh, você pode armazenar configurações persistentes do fzf em um arquivo dedicado:

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

Certifique-se de que este arquivo é carregado no seu ~/.zshrc:

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

Exemplos Práticos de Fluxo de Trabalho com fzf

Aqui estão funções prontas para usar que você pode adicionar ao seu .bashrc ou .zshrc:

cd Interativo com fzf

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

Abrir Arquivos Recentes em vim

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

Pesquisar e Aplicar Git Stash

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

Resolvendo Problemas Comuns do fzf

ProblemaSolução
fzf: command not foundCertifique-se de que ~/.fzf/bin está no seu $PATH; execute novamente ~/.fzf/install
Vinculações de teclas não funcionandoExecute novamente o script de instalação e confirme que a configuração do shell é carregada
Desempenho lento em diretórios grandesDefina FZF_DEFAULT_COMMAND para usar fd ou rg em vez de find
Cores não exibindo corretamenteCertifique-se de que seu terminal suporta 256 cores; adicione --color=always aos comandos de visualização
Administração Linux
Administração Servidores Virtuais
Linux