Linux’ta fzf Nasıl Kurulur ve Kullanılır: Terminal’de Bulanık Bulma Hakkında Tam Rehber
Linux terminalinde önemli ölçüde zaman harcıyorsanız, dosya bulmanın, komutları hatırlamanın ve dizinlerde gezinmenin sizi yavaşlatabileceğini zaten biliyorsunuz. fzf (Fuzzy Finder), bu engeli tamamen ortadan kaldıran, ışık hızında çalışan, etkileşimli bir komut satırı aracıdır. Binlerce dosyayı filtreliyor olun, komut geçmişinde arama yapıyor olun veya Git dalları arasında geçiş yapıyor olun, fzf sıkıcı terminal görevlerini akıcı, neredeyse anlık işlemlere dönüştürür.
Bu kapsamlı kılavuzda, fzf’yi Linux’a nasıl kuracağınızı, temel özelliklerinde ustalaşacağınızı, popüler araçlarla nasıl entegre edeceğinizi ve bunu tam olarak iş akışınıza uyacak şekilde nasıl özelleştireceğinizi öğreneceksiniz.
> Kendi Linux ortamınızı mı çalıştırıyorsunuz? Güçlü bir geliştirme kurulumu doğru altyapıyla başlar. AlexHost’un VPS Hosting hizmeti size tam root erişimi, yüksek performanslı SSD depolama ve sunucunuzu tamamen yapılandırma özgürlüğü sağlar — üretken bir Linux terminal iş akışı oluşturmak için ideal bir temel.
fzf Nedir?
fzf, Go dilinde yazılmış genel amaçlı, komut satırı fuzzy finder’ıdır. Standart girdiden bir öğe listesini okur ve bunları gerçek zamanlı, etkileşimli bir filtreleme arayüzünde sunar. Yazarken, fzf sonuçları fuzzy-matching algoritması kullanarak daraltır — bu da aradığınız şeyi bulmak için tam dizeler yazmanız gerekmediği anlamına gelir.
fzf’nin temel yetenekleri şunları içerir:
- Dosya ve dizin araması büyük dizin ağaçlarında
- Komut geçmişi navigasyonu anlık geri çağırma ile
- Git dalı ve commit taraması
- İşlem yönetimi ve etkileşimli sonlandırma
- SSH ana bilgisayar seçimi yapılandırma dosyanızdan
- Satır tabanlı çıktı üreten hemen hemen her komutla entegrasyon
fzf hafif, kurulumdan sonra bağımlılıksız ve Bash, Zsh ve Fish shell’leriyle sorunsuz çalışır.
Linux’ta fzf Kurulumu
İki ana kurulum yöntemi vardır: resmi Git deposunu klonlamak veya dağıtımınızın paket yöneticisini kullanmak. Her ikisi de basittir.
Yöntem 1: Git Üzerinden Kurulum (En Son Sürüm için Önerilir)
GitHub deposundan kurulum, her zaman en güncel sürümü aldığınızdan emin olur.
Adım 1 — Depoyu klonlayın:
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzfAdım 2 — Kurulum betiğini çalıştırın:
cd ~/.fzf
./installKurulum sırasında üç yapılandırma sorusuyla karşılaşacaksınız:
- Tuş bağlamalarını etkinleştir? (Önerilir: Evet) —
Ctrl+T,Ctrl+RveAlt+Ckısayollarını ekler - Bulanık otomatik tamamlamayı etkinleştir? (Önerilir: Evet) — Sekme tamamlama entegrasyonunu etkinleştirir
- Kabuk yapılandırma dosyalarını güncelle? (Önerilir: Evet) — Otomatik olarak fzf’yi
.bashrc/.zshrciçinde kaynaklandırır
Kurulumdan sonra kabuğunuzu yeniden yükleyin:
source ~/.bashrc # For Bash users
source ~/.zshrc # For Zsh usersYöntem 2: Paket Yöneticisi Üzerinden Kurulum
Paket yöneticisi kurulumu daha hızlıdır ve sisteminizin güncelleme mekanizmasıyla entegre olur, ancak biraz daha eski bir sürüm sağlayabilir.
Ubuntu / Debian:
sudo apt update && sudo apt install fzfFedora:
sudo dnf install fzfArch Linux / Manjaro:
sudo pacman -S fzfmacOS (Homebrew):
brew install fzf
$(brew --prefix)/opt/fzf/installKurulumunuzu doğrulayın:
fzf --versionfzf’nin Temel Kullanımı
Kurulduktan sonra fzf hemen kullanılabilir. İşte temellerinizi oluşturmak için gerekli komutlar.
1. İnteraktif Dosya Arama
Geçerli dizininizde fzf’yi başlatarak dosyaları etkileşimli olarak arayın:
fzfİnteraktif bir istem görünür. Bir dosya adının herhangi bir bölümünü yazmaya başlayın — fzf sonuçları gerçek zamanda filtreler. Gezinmek için ok tuşlarını kullanın ve seçmek için Enter tuşuna basın.
Yararlı navigasyon kısayolları:
| Tuş | İşlem |
|---|---|
↑ / ↓ | Sonuçlarda gezinme |
Enter | Seçimi onayla |
Tab | Birden fazla öğeyi işaretle |
Ctrl+C / Esc | İptal et |
2. Komut Geçmişinde Arama
fzf’nin en popüler kullanım alanlarından biri etkileşimli komut geçmişi aramasıdır:
history | fzfKurulum sırasında anahtar bağlamalarını etkinleştirdiyseniz, terminalinizde herhangi bir zamanda Ctrl+R tuşuna basarak bunu anında tetikleyebilirsiniz — varsayılan ters aramadan çok daha güçlüdür.
3. fzf’yi find ile Birleştirin
Dosya sisteminizde özyinelemeli olarak arama yapın ve sonuçları fzf’ye aktarın:
find . -type f | fzfYalnızca dizinleri aramak için:
find . -type d | fzf4. Alt+C ile Dizine Gidin
Anahtar bağlamalarını etkinleştirdiyseniz, Alt+C tuşuna basmak etkileşimli bir dizin navigatörü açar. Bir dizin seçin ve fzf otomatik olarak cd komutunu çalıştırarak oraya gitmenizi sağlar.
5. Git Dallarında Arama
Büyük depolarda Git dallarını hızlı bir şekilde bulun ve referans alın:
git branch | fzfBir dalı etkileşimli olarak kontrol etmek için:
git checkout $(git branch | fzf)fzf’yi Diğer Komutlarla Entegre Etme
fzf’nin gerçek gücü, komut ikamesi ($(fzf)) kullanarak diğer araçlarla birleştirdiğinizde ortaya çıkar.
1. Bir Dosyayı Doğrudan vim veya nano’da Açma
vim $(fzf)nano $(fzf)Bir dosya adının bir kısmını yazın, seçin ve editör hemen açılır — tam yolu yazmanıza gerek yoktur.
2. Bir Dosya Yolunu Panoya Kopyalama
fzf | xclip -selection clipboardxsel kullanan sistemlerde:
fzf | xsel --clipboard --input3. İnteraktif SSH Ana Bilgisayar Seçimi
Birden fazla sunucuyu yönetiyorsanız, bu entegrasyon oyun değiştiricisidir:
ssh $(grep -i "^Host " ~/.ssh/config | awk '{print $2}' | fzf)Bu, SSH yapılandırma dosyanızı ayrıştırır ve bağlanmadan önce etkileşimli olarak bir ana bilgisayar seçmenizi sağlar — artık ana bilgisayar adlarını veya IP adreslerini ezberlemek zorunda değilsiniz.
> Birden fazla uzak sunucuyu yönetiyorsunuz mu? AlexHost’un Dedicated Servers hizmetleri, SSH-ağır iş akışlarına güvenen ekipler için mükemmel olan tam yönetim kontrolü ile kurumsal sınıf donanım sağlar.
4. Bir İşlemi İnteraktif Olarak Sonlandırma
kill -9 $(ps aux | fzf | awk '{print $2}')Çalışan tüm işlemleri listeleyin, istediğinizi bulanık arama yaparak bulun ve sonlandırın — önceden PID’yi bilmenize gerek yoktur.
5. Arama Sırasında Dosya İçeriğini Önizleme
fzf, arama sonuçlarınızın yanında dosya içeriğini görüntüleyen bir --preview bayrağını destekler:
fzf --preview 'cat {}'Söz dizimi vurgulanan önizlemeler için (bat gereklidir):
fzf --preview 'bat --color=always {}'fzf’yi Özelleştirme
fzf, ortam değişkenleri ve shell yapılandırma dosyaları aracılığıyla kapsamlı şekilde yapılandırılabilir.
1. FZF_DEFAULT_OPTS ile Varsayılan Seçenekleri Ayarlayın
Seçenekleri genel olarak uygulamak için bunu ~/.bashrc veya ~/.zshrc dosyasına ekleyin:
export FZF_DEFAULT_OPTS="--height 40% --reverse --inline-info --border"Yaygın seçenekler açıklandı:
| Seçenek | Açıklama |
|---|---|
--height 40% | fzf’yi terminalin alt %40’ında görüntüle |
--reverse | Sonuçları yukarıdan aşağıya göster (giriş en üstte) |
--inline-info | Eşleşme sayısını satır içinde göster |
--border | fzf penceresi etrafına bir kenarlık çiz |
--multi | Tab ile çoklu seçimi etkinleştir |
2. Renkleri Özelleştirin
fzf’nin renk şemasını terminal temanıza uydurun:
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"Bu örnek popüler Gruvbox renk şemasını kullanır. Tercih ettiğiniz temaya uydurmak için hex değerlerini ayarlayın.
3. Özel Tuş Bağlamaları
Shell yapılandırma dosyanıza özel bağlamalar ekleyin:
# 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. FZF_DEFAULT_COMMAND ile Varsayılan Dosya Kaynağını Ayarlayın
Varsayılan olarak, fzf dosyaları listelemek için find kullanır. Bunu fd veya ripgrep gibi daha hızlı araçlarla değiştirebilirsiniz:
# 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. Kalıcı Yapılandırma Dosyası
Zsh kullanıcıları için, kalıcı fzf ayarlarını ayrılmış bir dosyada saklayabilirsiniz:
echo "export FZF_DEFAULT_OPTS='--height 40% --reverse --inline-info --border'" >> ~/.fzf.zshBu dosyanın ~/.zshrc dosyasında kaynak olarak alındığından emin olun:
[ -f ~/.fzf.zsh ] && source ~/.fzf.zshPratik fzf İş Akışı Örnekleri
İşte .bashrc veya .zshrc dosyasına ekleyebileceğiniz hazır işlevler:
fzf ile İnteraktif cd
fcd() {
local dir
dir=$(find ${1:-.} -type d 2>/dev/null | fzf +m) && cd "$dir"
}vim’de Son Dosyaları Aç
fvim() {
local file
file=$(find . -type f -name "*.${1:-*}" | fzf --preview 'cat {}')
[ -n "$file" ] && vim "$file"
}Git Stash’ı Ara ve Uygula
fstash() {
local stash
stash=$(git stash list | fzf | cut -d: -f1)
[ -n "$stash" ] && git stash apply "$stash"
}fzf Sorunlarını Giderme
| Sorun | Çözüm |
|---|---|
fzf: command not found | ~/.fzf/bin dosyasının $PATH içinde olduğundan emin olun; ~/.fzf/install komutunu yeniden çalıştırın |
| Tuş bağlamaları çalışmıyor | Kurulum betiğini yeniden çalıştırın ve shell yapılandırmasının yüklendiğini doğrulayın |
| Büyük dizinlerde yavaş performans | FZF_DEFAULT_COMMAND değerini find yerine fd veya rg kullanacak şekilde ayarlayın |
| Renkler doğru görüntülenmiyor | Terminal uygulamanızın 256 rengi desteklediğinden emin olun; önizleme komutlarına --color=always ekleyin |
| Paket kurulumundan sonra fzf bulunamıyor | source ~/.bashrc komutunu çalıştırın veya yeni bir terminal oturumu açın |
Barındırma Ortamınız Neden Geliştirici Üretkenliği İçin Önemlidir
fzf gibi güçlü bir terminal iş akışı, yalnızca içinde çalıştığı ortam kadar etkilidir. Yavaş I/O, sınırlı kaynaklar veya kısıtlı izinler, en iyi araçları bile baltalayabilir.
- Tam kontrol gerektiren geliştiriciler ve sistem yöneticileri için AlexHost’un VPS Hosting hizmeti, adanmış kaynaklar, root erişimi ve herhangi bir aracı kısıtlama olmadan yükleme esnekliği sağlar.
- Web uygulamalarını yöneten takımlar için sunucunuzu cPanel’li VPS ile eşleştirmek, hem terminal gücü hem de grafik yönetim arayüzü sunar.
- Alan adı ve web varlığı gerektiren projeler için AlexHost’un Domain Kaydı ve Paylaşımlı Web Hosting hizmetleri, uygun fiyatlı, tamamen yönetilen bir başlangıç noktası sunar.
Sonuç
fzf, Linux terminal iş akışınıza ekleyebileceğiniz en etkili araçlardan biridir. Bulanık eşleştirme algoritması, gerçek zamanlı filtreleme ve shell komutlarıyla sorunsuz entegrasyonu, dosya arama, komut hatırlama, Git dallarını yönetme veya uzak sunuculara gezinme olsun, onu vazgeçilmez bir üretkenlik çarpanı haline getirir.
Bu kılavuzun temel çıkarımları:
- fzf’yi en son özellikler için Git klonu aracılığıyla yükleyin veya basitlik için paket yöneticinizi kullanın
- fzf’nin en yararlı özelliklerine anında erişim için anahtar bağlamalarını (
Ctrl+T,Ctrl+R,Alt+C) etkinleştirin - fzf’yi
vim,ssh,git,killvefindile komut ikamesi kullanarak birleştirin FZF_DEFAULT_OPTSve shell yapılandırması aracılığıyla görünüm ve davranışı özelleştirin- fzf’yi tam özellikli bir dosya tarayıcısına dönüştürmek için
--previewkullanın
Temel bilgilerle başlayın, iş akışınızla eşleşen entegrasyonları kademeli olarak dahil edin ve terminal olmadan nasıl yönettiğinizi merak etmeye başlayacaksınız.
tasarruf edin