- Konu sahibi
- #1
macOS’ta Terminal kullanırken en sık karışan iki şey, pencere profili ile shell’in başlangıç dosyalarıdır. Pencere profili; renkleri, yazı tipini, çalışma dizinini ve yeni pencerenin hangi profille açılacağını etkiler. Shell başlangıç dosyaları ise PATH, alias, ortam değişkeni ve komut davranışını belirler. Bu ikisini aynı şey sanınca, sorun ararken yanlış yerde ayar değiştirmeniz çok kolay olur.
Terminal ayarlarında gördüğünüz profil seçimi, kabuğun ne okuduğunu değiştirmez. Buna karşılık shell’in login veya non-login olarak açılması, hangi başlangıç dosyasının çalışacağını belirler. Apple’ın dokümantasyonunda macOS Terminal için varsayılan login shell’in zsh olduğu ve yeni pencerelerin seçilen profil ile çalışma diziniyle açılabildiği belirtilir. Apple ayrıca Bash ve zsh için login ve non-login dosyalarının farklı davrandığını açıkça ayırır.
Bu yüzden şu ayrım pratiktir: görünüm ve pencere davranışı için Terminal profiline bakın; komutların bulunması, alias’lar ve ortam değişkenleri için shell başlangıç dosyalarına bakın. Sorunun hangisi olduğunu ayırmadan yapılan değişiklikler genelde sonucu değiştirmez.
Genel kural şudur: login shell, girişte okunan dosyalarla; non-login shell ise etkileşimli oturum dosyalarıyla ilgilidir. Apple Developer belgeleri Bash için
Bunu küçük bir örnekle düşünün:
En güvenli yaklaşım, önce shell’in ne olduğunu ve login olup olmadığını anlamaktır. Ardından hangi dosyanın okunması gerektiğini kontrol edersiniz. Apple’ın Terminal kılavuzu yeni pencerelerin profil ve shell ayarlarıyla açılabildiğini, shell değişikliğinin ayrı bir ayar üzerinden yapıldığını gösterir. Bu yüzden “Terminal bozuldu” gibi görünen sorunların önemli kısmı aslında ayar katmanlarının birbirine karışmasından oluşur.
Kısaca, pencerenin görünümü için profil; komutların ve ortamın tutarlılığı için shell başlangıç dosyası düşünün. Bu ayrım net olursa macOS’ta da Linux’ta da terminal davranışını daha hızlı teşhis edersiniz.
İkisi aynı katmanda çalışmaz
Terminal ayarlarında gördüğünüz profil seçimi, kabuğun ne okuduğunu değiştirmez. Buna karşılık shell’in login veya non-login olarak açılması, hangi başlangıç dosyasının çalışacağını belirler. Apple’ın dokümantasyonunda macOS Terminal için varsayılan login shell’in zsh olduğu ve yeni pencerelerin seçilen profil ile çalışma diziniyle açılabildiği belirtilir. Apple ayrıca Bash ve zsh için login ve non-login dosyalarının farklı davrandığını açıkça ayırır.
Bu yüzden şu ayrım pratiktir: görünüm ve pencere davranışı için Terminal profiline bakın; komutların bulunması, alias’lar ve ortam değişkenleri için shell başlangıç dosyalarına bakın. Sorunun hangisi olduğunu ayırmadan yapılan değişiklikler genelde sonucu değiştirmez.
Hangi durumda hangi dosya etkili olur?
Genel kural şudur: login shell, girişte okunan dosyalarla; non-login shell ise etkileşimli oturum dosyalarıyla ilgilidir. Apple Developer belgeleri Bash için
~/.bash_profile dosyasının yalnızca login shell’lerde çalıştığını, ~/.bashrc ve ~/.zshrc dosyalarının ise non-login shell’lerde otomatik yürütüldüğünü söyler. Bu nedenle bir komut Terminal açılışında yoksa ama sonradan elle shell başlatınca görünüyorsa, sorun çoğu zaman yanlış dosyaya yazılmış ayardır.| Sorun | Açıklama |
|---|---|
| Yeni pencere farklı görünüyor ama aynı shell açılmıyor | Terminal profili ile shell başlangıç dosyası aynı şey değildir; biri görünümü ve pencere ayarlarını, diğeri kabuğun başta yükleyeceği ortamı etkiler. |
| Komutlar bir pencerede var, diğerinde yok | Login shell ve non-login shell farklı dosyalar okur; bu yüzden PATH, alias ve ortam değişkenleri beklenmedik biçimde farklı kalabilir. |
| macOS’ta eski Bash alışkanlıkları çalışmıyor | macOS’ta varsayılan login shell zsh’dir; Bash için yazılmış dosyalar birebir aynı şekilde devreye girmeyebilir. |
| Terminal’i açınca ortam neden farklı diye şaşırmak | Başlangıç davranışı, seçili shell, açılış profili ve profil ayarlarının birlikte etkisinden oluşur. |
PATH değişkenini yalnızca .bashrc içine yazarsanız, login olarak açılan bir Terminal penceresinde beklediğiniz araçlar görünmeyebilir. Tersi durumda da .bash_profile içine koyduğunuz alias’lar non-login shell’de devreye girmeyebilir.Sık yapılan karışıklıklar
- Terminal profilini değiştirdiğiniz halde komut davranışı düzelmiyorsa, sorun çoğu zaman shell dosyasında olur.
bashiçin yazılmış ayarlarızshoturumunda beklemek hata yaratır.- Aynı komutun bir pencerede çalışıp diğerinde çalışmaması, genellikle farklı başlangıç dosyalarının okunmasından kaynaklanır.
- Grafik görünüm değişmişse ama PATH hâlâ eksikse, profil değil başlangıç dosyası kontrol edilmelidir.
Sorunu nasıl ayırırsınız?
En güvenli yaklaşım, önce shell’in ne olduğunu ve login olup olmadığını anlamaktır. Ardından hangi dosyanın okunması gerektiğini kontrol edersiniz. Apple’ın Terminal kılavuzu yeni pencerelerin profil ve shell ayarlarıyla açılabildiğini, shell değişikliğinin ayrı bir ayar üzerinden yapıldığını gösterir. Bu yüzden “Terminal bozuldu” gibi görünen sorunların önemli kısmı aslında ayar katmanlarının birbirine karışmasından oluşur.
Kısaca, pencerenin görünümü için profil; komutların ve ortamın tutarlılığı için shell başlangıç dosyası düşünün. Bu ayrım net olursa macOS’ta da Linux’ta da terminal davranışını daha hızlı teşhis edersiniz.