- Konu sahibi
- #1
Terminal açılıyor ama beklediğiniz ortam gelmiyorsa ilk bakılacak yerler
macOS tarafında Terminal’in davranışı tek bir ayardan oluşmaz; kabuk, profil ve başlangıç dosyaları ayrı ayrı etkiler. Bu yüzden “Terminal açıldı ama alias’larım görünmüyor”, “komutlar beklediğim gibi çalışmıyor” ya da “aynı makinede bir pencere başka, diğeri başka davranıyor” gibi durumlarda önce hangi katmanın devrede olduğunu ayırmak gerekir. Apple’ın Terminal ayarlarında yeni pencerelerin hangi profil ve kabukla açılacağı ayrıca seçilebiliyor; profil tarafı da kendi başlangıç ve kapanış davranışını taşıyor.
Sorunu ayırmanın en pratik yolu
Önce şunu netleştirin: sorun kabuğun kendisinde mi, Terminal profilinde mi, yoksa kabuğun okuduğu başlangıç dosyalarında mı? Yeni pencere açıldığında hangi kabuğun geldiğini görmek için Terminal ayarlarında “Shells open with” bölümüne bakılır. Burada “Default login shell” seçiliyse macOS, kullanıcı hesabı için tanımlı giriş kabuğunu kullanır; farklı bir yol verilmişse doğrudan o kabuk açılır. Bu davranış, Terminal’in profil ayarından bağımsız değildir; profil ayrıca başlangıç komutu, pencere kapanış davranışı ve uyarı biçimini değiştirebilir.
Birçok karışıklık, “login shell” ile “interactive shell” farkından doğar. Bash’in belgelendiği şekilde giriş kabuğu olarak açıldığında
/etc/profile ve ardından kullanıcıya ait ~/.bash_profile, ~/.bash_login veya ~/.profile dosyalarından ilk bulduğunu okur; giriş kabuğu olmayan etkileşimli oturumda ise ~/.bashrc okunur. Eğer betik veya oturum beklediğiniz ayarları görmüyorsa, sorun çoğu zaman yanlış dosyaya yazılmış ayardır. Bu ayrım özellikle macOS’ta Terminal penceresi, SSH oturumu ve script çalıştırma arasında fark ararken önemlidir.macOS’ta yaygın hata örnekleri
1) Alias ya da PATH sadece bir dosyaya eklenir. Eğer yeni pencerede görünmüyorsa, başlangıç dosyasının gerçekten o oturumda okunup okunmadığını kontrol edin. Login shell için bir dosyaya, non-login interactive shell için başka bir dosyaya yazmak gerekebilir. Bash dokümantasyonu bu ayrımı açık biçimde yapar.
| Ayar / kavram | Kısa açıklama |
|---|---|
| macOS Terminal ayarı | Ne işe yarar |
| Shells open with | Yeni pencerenin hangi kabukla açılacağını belirler |
| New windows open with / New tabs open with | Profil ve çalışma dizini seçimini belirler |
| Profiles > Shell | Bir profil için başlangıç komutu ve çıkış davranışı ayarlar |
| Bash startup dosyaları | Oturum açma, etkileşimli kabuk ve script çalıştırma durumunda farklı dosyalar okunur |
2) Terminal profiliyle kabuk ayarı karıştırılır. Profil, görünümden çok daha fazlasını etkileyebilir; Shell ayarları altında başlangıç komutu çalıştırılabilir veya çıkışta pencerenin ne yapacağı belirlenebilir. Yani bir pencerenin farklı davranması her zaman “shell bozuldu” anlamına gelmez; bazen aynı uygulamada farklı profil seçilmiştir.
3) macOS ve Linux’ta aynı dosya beklenir. Linux tarafında da Bash’in davranışı benzer mantıkla çalışır ama dağıtıma ve oturum tipine göre kabuğun hangi dosyayı okuyacağına dikkat etmek gerekir.
~/.bashrc, ~/.bash_profile ve ~/.profile aynı görevde değildir. Bu yüzden “her yerde tek dosya yeter” yaklaşımı çoğu zaman sorun çıkarır.Hızlı kontrol listesi
- Terminal > Settings > General bölümünde hangi kabuğun seçili olduğunu kontrol edin.
- Profillerde Shell sekmesinde bir başlangıç komutu tanımlı mı bakın.
- Alias, PATH ve benzeri ayarların login shell dosyasında mı yoksa interactive shell dosyasında mı bulunduğunu ayırın.
- Aynı komutu yeni pencere, yeni sekme ve SSH oturumunda deneyin; davranış değişiyorsa sorun kabuktan çok oturum tipindedir. Bu çıkarım, Bash’in farklı başlatma yollarına göre farklı dosyalar okumasına dayanır.
Özetle, macOS’ta Terminal sorunlarını çözmek için önce kabuk, sonra profil, sonra başlangıç dosyası sırasıyla ilerlemek en temiz yöntemdir. Çoğu durumda sorun “komut çalışmıyor” değil, “komut doğru oturumda yüklenmiyor” olur. Bu ayrımı yaptıktan sonra hem macOS’ta hem Linux’ta terminal davranışını daha tutarlı hale getirmek kolaylaşır.