Terminal, geliştiricinin mutfağıdır — ama çoğumuzun mutfağı hâlâ on yıllık alışkanlıklarla donanmış. cat'in renkli olmayan çıktısına, find'ın felsefi parametrelerine, grep'in rakamlarına alışmışız. Oysa son yıllarda Rust ve Go ile yazılan modern CLI araçları aynı işleri daha hızlı, daha okunaklı ve daha az komutla yapıyor. Bu rehber, bir bakışta "bunu ben mi yanlış kullanıyorum, araç mı eski?" sorusunun cevabı niteliğinde.

Okuma: cat'in yerine bat, ls'in yerine eza

bat, cat'in sözdizimi vurgulu, satır numaralı, Git farkı gösteren hâli. eza (eski adıyla exa) ise ikonlu, Git durumunu renkle bildiren bir dosya listeleme aracı:

# bat: dosyayı satır numarası ve vurguyla gösterir
bat config/nginx.conf

# eza: klasör ağacı + ikonlar + git durumu
eza --tree --icons --git --level=2

# fzf: komut geçmişini bulanık arama ile filtrele (Ctrl+R'yi süper güç yapar)
history | fzf

fzf ise ayrı bir devrim: pipeline'ın sonuna koyduğunuz her şey, yazarken filtrelenen etkileşimli listeye dönüşür. Ctrl+R'yi fzf'e bağlamak, komut geçmişinde arama yapmayı hayatın gerçeği haline getiren tek ayar.

Arama: fd ve ripgrep

find güçlüdür ama kullanması ezber ister. fd bu işi tek cümleyle yapar. ripgrep (rg) ise grep'in hız canavarı hâli — .gitignore'a saygı duyar, gizli dosyaları atlar, otomatik renklendirir:

# find: node_modules'ü atlayarak .ts dosyalarını bul — ezber isteyen sözdizimi
find . -type d -name node_modules -prune -o -type f -name '*.ts' -print

# fd: aynı iş, insan dili
fd -e ts --exclude node_modules

# ripgrep: 'useState' geçen Türkçe satırları bul, bağlamıyla göster
rg -C 2 'useState' src/ --type ts

Git ve disk: tembellik değil, hijyen

Git'te lg diye bir kısayol gördüyseniz muhtemelen lazygit ya da git log --graph'ın süslenmiş hâli. lazygit, commit'ler arasında gezinmeyi interaktif panele çevirir; diff okumayı alışkanlık haline getirir. Disk hijyeni için dust (disk kullanımı) ve ncdu (interaktif silme) klasik du -sh * kombinasyonundan çok daha hızlı sonuç verir.

# dust: hangi klasör yer yiyor? (tek bakışta)
dust -n 15

# lazygit: git log + diff + stage paneli, hepsi tek ekranda
lazygit

Araçları ezberlemek yerine mantığını kavrayın: hepsi Unix felsefesinin aynı derdine — çıktının okunabilirliği ve keşfedilebilirliği — farklı bir cevap. bat, fd, rg, eza, fzf pentagramını bir kez kurduğunuzda, terminali "komut yazma yeri" olmaktan çıkarıp "işinin hızlıca yapıldığı yer" haline getiriyorsunuz. Kabuk yapılandırmanıza ekleyeceğiniz beş alias, günlük onlarca küçük sürtünmeyi yok eder.

Kurulum da dağıtım fark etmeksizin tek satır: Ubuntu'da sudo apt install bat fd-find ripgrep eza fzf dust, macOS'ta brew install bat fd ripgrep eza fzf dust yeterli. (Debian ikililerinde bat, batcat adıyla kurulabilir; bir alias ile bu ismi geri getirebilirsiniz.) Bir sonraki adım için iki öneri: zoxide, girdiğiniz dizinleri öğrenip cd'yi tahmine çevirir; lazydocker ise konteyner günlüklerini lazygit rahatlığında sunar. Terminalde yaşamak, bu küçük iyileştirmelerin bileşik etkisidir: her biri tek başına önemsiz, toplamı bir saatten fazla kazanç.