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ç.
Okur Yorumları (0)