Sparen Sie 15% bei allen Hosting-Diensten

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code: Skills Anfangen
Abschnitte
Linux Virtuelle Server

Wie man fzf unter Linux installiert und verwendet: Der vollständige Leitfaden zur unscharfen Suche im Terminal

Wenn Sie viel Zeit im Linux-Terminal verbringen, wissen Sie bereits, dass das Finden von Dateien, das Abrufen von Befehlen und das Navigieren in Verzeichnissen Sie verlangsamen können. fzf (Fuzzy Finder) ist ein blitzschnelles, interaktives Befehlszeilentool, das diese Reibung vollständig beseitigt. Ob Sie Tausende von Dateien filtern, Befehlsverlauf durchsuchen oder Git-Branches wechseln – fzf verwandelt mühsame Terminal-Aufgaben in flüssige, nahezu sofortige Operationen.

In diesem umfassenden Leitfaden erfahren Sie, wie Sie fzf unter Linux installieren, seine Kernfunktionen beherrschen, es mit beliebten Tools integrieren und es an Ihren genauen Workflow anpassen.

> Betreiben Sie Ihre eigene Linux-Umgebung? Ein leistungsstarkes Entwicklungs-Setup beginnt mit der richtigen Infrastruktur. AlexHost’s VPS Hosting gibt Ihnen vollständigen Root-Zugriff, hochleistungsfähigen SSD-Speicher und vollständige Freiheit, Ihren Server zu konfigurieren – die ideale Grundlage für den Aufbau eines produktiven Linux-Terminal-Workflows.

Was ist fzf?

fzf ist ein universeller, in Go geschriebener Fuzzy Finder für die Befehlszeile. Er liest eine Liste von Elementen aus der Standardeingabe und präsentiert sie in einer Echtzeit-Filterungsschnittstelle. Während Sie tippen, grenzt fzf die Ergebnisse mit einem Fuzzy-Matching-Algorithmus ein – das bedeutet, dass Sie keine exakten Zeichenketten eingeben müssen, um das zu finden, was Sie suchen.

Zu den Schlüsselfunktionen von fzf gehören:

  • Datei- und Verzeichnissuche über große Verzeichnisbäume
  • Befehlsverlauf-Navigation mit sofortigem Abruf
  • Git-Branch- und Commit-Durchsuchen
  • Prozessverwaltung und interaktives Beenden
  • SSH-Host-Auswahl aus Ihrer Konfigurationsdatei
  • Integration mit praktisch jedem Befehl, der zeilenbasierte Ausgabe erzeugt

fzf ist leicht, abhängigkeitsfrei nach der Installation und funktioniert nahtlos mit Bash-, Zsh- und Fish-Shells.

Installieren von fzf unter Linux

Es gibt zwei primäre Installationsmethoden: Klonen des offiziellen Git-Repositorys oder Verwendung des Paketmanagers Ihrer Distribution. Beide sind unkompliziert.

Methode 1: Installation über Git (empfohlen für die neueste Version)

Die Installation aus dem GitHub-Repository stellt sicher, dass Sie immer die aktuellste Version erhalten.

Schritt 1 – Repository klonen:

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

Schritt 2 – Installationsskript ausführen:

cd ~/.fzf
./install

Während der Installation werden Sie mit drei Konfigurationsfragen aufgefordert:

  • Tastenbindungen aktivieren? (Empfohlen: Ja) – Fügt Ctrl+T, Ctrl+R und Alt+C Verknüpfungen hinzu
  • Fuzzy-Autovervollständigung aktivieren? (Empfohlen: Ja) – Aktiviert die Tab-Vervollständigungsintegration
  • Shell-Konfigurationsdateien aktualisieren? (Empfohlen: Ja) – Lädt fzf automatisch in .bashrc / .zshrc

Nach der Installation laden Sie Ihre Shell neu:

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

Methode 2: Installation über Paketmanager

Die Installation über den Paketmanager ist schneller und integriert sich mit dem Aktualisierungsmechanismus Ihres Systems, kann aber eine etwas ältere Version bereitstellen.

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

Überprüfen Sie Ihre Installation:

fzf --version

Grundlegende Verwendung von fzf

Nach der Installation ist fzf sofort einsatzbereit. Hier sind die wesentlichen Befehle, um Ihre Grundlagen zu schaffen.

1. Interaktive Dateisuche

Starten Sie fzf in Ihrem aktuellen Verzeichnis, um Dateien interaktiv zu durchsuchen:

fzf

Eine interaktive Eingabeaufforderung wird angezeigt. Beginnen Sie, einen beliebigen Teil eines Dateinamens einzugeben – fzf filtert die Ergebnisse in Echtzeit. Verwenden Sie die Pfeiltasten zum Navigieren und drücken Sie Enter zum Auswählen.

Nützliche Navigationsverknüpfungen:

TasteAktion
/ Ergebnisse navigieren
EnterAuswahl bestätigen
TabMehrere Elemente markieren
Ctrl+C / EscAbbrechen

2. Befehlsverlauf durchsuchen

Einer der beliebtesten Anwendungsfälle von fzf ist die interaktive Suche im Befehlsverlauf:

history | fzf

Wenn Sie während der Installation Tastenbindungen aktiviert haben, können Sie jederzeit Ctrl+R in Ihrem Terminal drücken, um dies sofort auszulösen – viel leistungsstarker als die Standard-Rückwärtssuche.

3. fzf mit find kombinieren

Durchsuchen Sie rekursiv Ihr Dateisystem und leiten Sie die Ergebnisse an fzf weiter:

find . -type f | fzf

Um nur nach Verzeichnissen zu suchen:

find . -type d | fzf

4. Mit Alt+C zu einem Verzeichnis navigieren

Wenn Sie Tastenbindungen aktiviert haben, öffnet das Drücken von Alt+C einen interaktiven Verzeichnis-Navigator. Wählen Sie ein Verzeichnis aus und fzf führt automatisch cd aus, um dorthin zu navigieren.

5. Git-Branches durchsuchen

Finden Sie schnell Git-Branches in großen Repositorys und verweisen Sie auf sie:

git branch | fzf

Um einen Branch interaktiv auszuchecken:

git checkout $(git branch | fzf)

Integration von fzf mit anderen Befehlen

Die wahre Kraft von fzf entsteht, wenn Sie es mit anderen Tools mithilfe von Befehlsersetzung ($(fzf)) kombinieren.

1. Eine Datei direkt in vim oder nano öffnen

vim $(fzf)
nano $(fzf)

Geben Sie einen Teil eines Dateinamens ein, wählen Sie ihn aus, und der Editor öffnet sich sofort – kein Bedarf, den vollständigen Pfad einzugeben.

2. Einen Dateipfad in die Zwischenablage kopieren

fzf | xclip -selection clipboard

Auf Systemen, die xsel verwenden:

fzf | xsel --clipboard --input

3. Interaktive SSH-Host-Auswahl

Wenn Sie mehrere Server verwalten, ist diese Integration ein Game-Changer:

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

Dies analysiert Ihre SSH-Konfigurationsdatei und lässt Sie interaktiv einen Host auswählen, bevor Sie sich verbinden – kein Auswendiglernen von Hostnamen oder IP-Adressen mehr.

> Verwalten Sie mehrere Remote-Server? AlexHost’s Dedicated Servers bieten Enterprise-Hardware mit vollständiger administrativer Kontrolle und sind perfekt für Teams, die auf SSH-intensive Workflows angewiesen sind.

4. Einen Prozess interaktiv beenden

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

Listen Sie alle laufenden Prozesse auf, durchsuchen Sie fuzzy nach dem gewünschten und beenden Sie ihn – alles ohne die PID im Voraus zu kennen.

5. Dateiinhalte während der Suche in der Vorschau anzeigen

fzf unterstützt ein --preview Flag, das Dateiinhalte neben Ihren Suchergebnissen anzeigt:

fzf --preview 'cat {}'

Für syntaxhervorgehobene Vorschauansichten (erfordert bat):

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

Anpassung von fzf

fzf ist durch Umgebungsvariablen und Shell-Konfigurationsdateien umfangreich konfigurierbar.

1. Standardoptionen mit FZF_DEFAULT_OPTS festlegen

Fügen Sie dies zu Ihrer ~/.bashrc oder ~/.zshrc hinzu, um Optionen global anzuwenden:

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

Häufige Optionen erläutert:

OptionBeschreibung
--height 40%Zeige fzf in den unteren 40% des Terminals
--reverseZeige Ergebnisse von oben nach unten (Eingabe oben)
--inline-infoZeige Übereinstimmungsanzahl inline
--borderZeichne einen Rahmen um das fzf-Fenster
--multiAktiviere Mehrfachauswahl mit Tab

2. Farben anpassen

Passen Sie das Farbschema von fzf an Ihr Terminal-Theme an:

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"

Dieses Beispiel verwendet das beliebte Gruvbox Farbschema. Passen Sie Hex-Werte an Ihr bevorzugtes Theme an.

3. Benutzerdefinierte Tastenbindungen

Fügen Sie benutzerdefinierte Bindungen zu Ihrer Shell-Konfigurationsdatei hinzu:

# 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. Standarddateiquelle mit FZF_DEFAULT_COMMAND festlegen

Standardmäßig verwendet fzf find zum Auflisten von Dateien. Sie können dies durch schnellere Tools wie fd oder ripgrep ersetzen:

# 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. Persistente Konfigurationsdatei

Für Zsh-Benutzer können Sie persistente fzf-Einstellungen in einer dedizierten Datei speichern:

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

Stellen Sie sicher, dass diese Datei in Ihrer ~/.zshrc geladen wird:

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

Praktische fzf-Workflow-Beispiele

Hier sind einsatzbereite Funktionen, die Sie zu Ihrer .bashrc oder .zshrc hinzufügen können:

Interaktives cd mit fzf

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

Öffnen Sie kürzlich verwendete Dateien in vim

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

Suchen und Git Stash anwenden

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

Behebung häufiger fzf-Probleme

Problem
Linux Verwaltung
Linux Sicherheit
DNS Linux