Modern geliştirici, terminalde çok zaman geçirir. Doğru araçlarla bu zaman katlanarak üretken hale gelir. İşte vazgeçilmez 10 CLI aracı.
1. fzf — Fuzzy Finder
Her şeyi interaktif olarak arayan, hayat kurtaran bir araç. Dosya, komut geçmişi, git branch — hepsi tek tuşla.
# Kurulum (macOS)
brew install fzf
# Dosya bul ve aç
vim $(fzf)
# Git branch değiştir
git checkout $(git branch | fzf)
# Komut geçmişinde ara (Ctrl+R)
# fzf otomatik bağlanır
2. ripgrep (rg) — Hızlı Arama
grep‘in modern versiyonu. 10 kat daha hızlı, .gitignore farkındalığı var.
# Tüm projedeki "TODO" yorumlarını bul
rg "TODO"
# Sadece JavaScript dosyalarında
rg "useState" -t js
# Replace
rg "oldName" -l | xargs sed -i "s/oldName/newName/g"
3. bat — cat Yerine Geçen
Syntax highlighting ile dosya görüntüleme:
# Eski
cat package.json
# Yeni
bat package.json
# Renkli, satır numaralı, git diff entegrasyonu var
4. exa / eza — ls’in Yerine
# Eski
ls -la
# Yeni
eza -la --icons --git
# Dosya türleri renklerle, git durumu, ikonlar
5. zoxide — cd’nin Akıllısı
Sık ziyaret ettiğin klasörleri öğrenir:
# Bir kere ziyaret et
cd ~/Projects/my-app
# Sonra her yerden
z my-app
# Otomatik olarak ~/Projects/my-app'e gider
6. tldr — man Sayfasının Özeti
Karmaşık man sayfaları yerine pratik örnekler:
# man tar (sayfalarca)
# tldr tar:
# Extract files from gzipped archive:
tar xzf archive.tar.gz
# Create archive:
tar czf archive.tar.gz file1 file2
7. lazygit — Git için TUI
Terminal’de git’i interaktif kullanmak:
lazygit
# Açılan ekranda:
# - Stage/unstage dosyalar
# - Commit, push, pull
# - Branch yönetimi
# - Tüm bunlar tek tuşla
8. httpie — curl’ün İnsan Dostu Hali
# Eski (curl)
curl -X POST https://api.example.com/users
-H "Content-Type: application/json"
-d '{"name":"Ali","age":25}'
# Yeni (httpie)
http POST api.example.com/users name=Ali age=25
# Daha kısa, renkli output, JSON otomatik
9. jq — JSON İşleyici
API yanıtlarını süzmek ve dönüştürmek:
# API'den isim listesi
curl api.github.com/users/torvalds/repos | jq '.[].name'
# Filtreleme
cat data.json | jq '.users[] | select(.age > 18)'
# Dönüştürme
cat data.json | jq '{names: [.users[].name], count: (.users | length)}'
10. tmux — Terminal Multiplexer
Tek pencereden 10 terminal yönetmek:
tmux new -s work
# Pencereyi böl
# Ctrl+B + " (yatay)
# Ctrl+B + % (dikey)
# Detach (oturumu canlı bırak)
# Ctrl+B + d
# Geri dön
tmux attach -t work
Bonus: Starship — Cross-Shell Prompt
# Kurulum
curl -sS https://starship.rs/install.sh | sh
# .zshrc veya .bashrc'ye ekle:
eval "$(starship init zsh)"
Sonuç: Git durumu, Node versiyonu, Python venv — her şey prompt’ta görünür.
Sonuç
Bu araçların en az 3-4’ünü dene. Bir hafta içinde geri dönmek istemeyeceksin. Üretkenliğin 2-3 katına çıkacak, hatta günlük kullanımda eski yöntemlere “nasıl katlanıyordum?” diyeceksin.
En çok hangisini merak ettin?