dev-tools

Terminal / Shell (Kabuk)

Shell (kabuk), bir geliştiricinin yazdığı komutları yorumlayıp çalıştıran programdır ve çoğu geliştiricinin günlük olarak çalıştığı interaktif komut satırı ortamını sağlar; terminal (veya terminal emülatörü) ise bu shell'i gösteren ve metin girdi/çıktısını yöneten pencere/uygulamadır. Yaygın shell'ler arasında macOS/Linux'ta Bash ve Zsh, Windows'ta PowerShell bulunur; yaygın terminal emülatörleri arasında yerleşik Terminal.app, iTerm2 ve Windows Terminal sayılabilir. Tek seferlik komutlar çalıştırmanın ötesinde, shell'ler scripting'i (`.sh` dosyaları — kaydedilip tekrar çalıştırılan komut dizileri), değişkenleri, pipe'ları (| operatörleri, bir komutun çıktısını girdi olarak başka bir komuta gönderir) ve kontrol akışını destekler; bu da shell'in kendisini otomasyon için sürekli kullanılan hafif bir programlama ortamı haline getirir. AI/SaaS kuran ekipler için neden önemli: shell, her CLI aracının, build script'inin, deploy pipeline'ının ve — özellikle — terminal tabanlı her AI kod ajanının (Claude Code dahil) fiilen üzerinde çalıştığı zemindir; temel shell işlemlerine (pipe'lama, yönlendirme, ortam değişkenleri, arka plan süreçleri) hakim olmak, bir geliştiricinin (veya bir shell üzerinden hareket eden bir AI ajanının) her görev için özel bir GUI aracına ihtiyaç duymadan basit araçları güçlü otomasyonlara zincirleyebilmesini sağlayan şeydir. Shell scripting aynı zamanda "otomatikleştirilmiş" CI/CD adımlarının fiili uygulama katmanı olarak da sıkça karşımıza çıkar — bir YAML pipeline tanımı çoğu zaman aslında bir shell komutları dizisidir. Nasıl çalışır: bir shell bir girdi satırı okur, onu bir komut ve argümanlara ayrıştırır, komutu çalıştırılabilir bir dosyaya çözer (`PATH` ortam değişkeninde listelenen dizinlerde arayarak), onu çalıştırmak için yeni bir süreç fork eder ve — bağlayıcı operatörlere bağlı olarak — ya bitmesini bekler (`;`), ya sadece önceki komut başarılıysa çalıştırır (`&&`), ya da çıktısını pipe operatörüyle doğrudan bir sonraki komuta aktarır. Örnek üzerinden: bir geliştirici, kullanımdan kaldırılmış bir fonksiyon çağrısını içeren tüm JavaScript dosyalarını bulmak ve saymak istiyor. İki komutu tek satırda bir pipe ile zincirliyor: `grep -rl "oldApiCall(" --include="*.js" . | wc -l` — burada `grep -rl` string'i özyinelemeli olarak arar ve eşleşen dosya adlarını listeler, `wc -l` ise bu dosya adlarını sayar — genel amaçlı bir program tek satır bile yazmadan, tamamen shell'in pipe'lama mekanizması aracılığıyla küçük Unix araçlarını birleştirerek anında bir sayı (diyelim ki "7 dosya") üretir. Bu bileşim kabiliyeti tam olarak AI kod ajanlarının bir shell arayüzü üzerinden bu kadar etkili çalışmasının nedenidir: her olası görev için özel, amaca yönelik bir araca ihtiyaç duymak yerine, bir ajan aynı küçük genel amaçlı Unix komutları setini deneyimli bir geliştiricinin yapacağı gibi yeni kombinasyonlarda birleştirerek neredeyse her şeyi başarabilir.

İlgili terimler

Daha fazla Geliştirici Araçları terimi