- Konu sahibi
- #1
macOS Terminal’de görünen sorunların önemli bir kısmı aslında tek bir yerden değil, iki ayrı ayardan çıkar: hangi shell’in açıldığı ve hangi pencere profilinin kullanıldığı. Apple’ın Terminal ayarlarında bu ikisi ayrı seçeneklerdir; yeni pencere açılırken çalışacak kabuk, açılış profili ve sekme davranışı birbirinden bağımsız seçilebilir. Bu yüzden görünüşte aynı terminal penceresi açılıyor gibi dursa da içeride farklı başlangıç dosyaları, farklı PATH ve farklı davranışlar devreye girebilir.
Özellikle Bash kullananlarda en sık karışan nokta şudur: login shell ile non-login shell aynı dosyaları okumaz. Bash, login shell olarak açıldığında genelde
macOS tarafında ise varsayılan login shell’in zsh olduğu belirtilir. Yani eski Bash alışkanlıklarıyla hazırlanan ayarlar, yeni macOS kurulumlarında birebir aynı davranmayabilir. Bu nedenle önce hangi shell’in açıldığını, sonra bunun login shell mi yoksa normal shell mi olduğunu kontrol etmek gerekir.
En güvenli yaklaşım, sorun çıktığında şu sırayla bakmaktır:
GNU araçlarını macOS’ta kullanırken bir başka tipik sorun da isim çakışmasıdır. Homebrew ile kurulan
Bu noktada en sağlıklı yöntem, “hangi aracı kullandım?” sorusunu varsaymak yerine açıkça görmek ve gerekirse tam yolu kullanmaktır. Böylece macOS’un kendi araçlarıyla GNU sürümleri birbirine karışmaz. Özellikle betik yazarken bu ayrım önemlidir; çünkü aynı komut adı, farklı sistemde farklı davranabilir.
Eğer amacınız oturum açınca her yerde aynı ortamı görmekse, shell türünü ve başlangıç dosyasını birlikte düşünün. Eğer amacınız belirli GNU araçlarını kullanmaksa, PATH düzenini ve çakışan komutları ayrıca kontrol edin. Eğer sorun sadece bir pencere veya sekmede oluşuyorsa, önce Terminal profili ve açılış ayarlarını inceleyin. Bu üç adım, macOS Terminal’deki çoğu karışıklığı açıklamak için yeterlidir.
Sorunun kaynağı çoğu zaman shell değil, shell’in nasıl başlatıldığıdır
Özellikle Bash kullananlarda en sık karışan nokta şudur: login shell ile non-login shell aynı dosyaları okumaz. Bash, login shell olarak açıldığında genelde
~/.bash_profile benzeri dosyaları okur; normal etkileşimli shell olarak açıldığında ise ~/.bashrc dosyasını okur. Bu yüzden bir değişkeni sadece bir dosyaya yazmak, bazı pencerelerde etkili olurken bazılarında hiç etkili olmayabilir.macOS tarafında ise varsayılan login shell’in zsh olduğu belirtilir. Yani eski Bash alışkanlıklarıyla hazırlanan ayarlar, yeni macOS kurulumlarında birebir aynı davranmayabilir. Bu nedenle önce hangi shell’in açıldığını, sonra bunun login shell mi yoksa normal shell mi olduğunu kontrol etmek gerekir.
Pratikte neyi kontrol etmelisiniz?
En güvenli yaklaşım, sorun çıktığında şu sırayla bakmaktır:
- Terminal ayarlarında “Shells open with” seçeneği neye ayarlı?
- Açılan shell login shell mi, yoksa normal interaktif shell mi?
- Ayarlarınızı
~/.bash_profile,~/.bashrcveya zsh kullanıyorsanız ilgili zsh başlangıç dosyasında mı tutuyorsunuz? - Yeni pencere ile yeni sekme aynı profili ve aynı working directory’yi mi kullanıyor?
GNU araçları macOS’ta neden farklı görünür?
GNU araçlarını macOS’ta kullanırken bir başka tipik sorun da isim çakışmasıdır. Homebrew ile kurulan
coreutils paketinde, macOS’ta zaten bulunan komutlarla çakışmayı azaltmak için bazı komutlar g önekiyle gelir. Ayrıca gnubin dizini PATH’e eklenerek GNU sürümlerinin öne geçmesi sağlanabilir. Bu nedenle aynı komut, farklı makinede veya farklı PATH düzeninde başka sonuç verebilir.Bu noktada en sağlıklı yöntem, “hangi aracı kullandım?” sorusunu varsaymak yerine açıkça görmek ve gerekirse tam yolu kullanmaktır. Böylece macOS’un kendi araçlarıyla GNU sürümleri birbirine karışmaz. Özellikle betik yazarken bu ayrım önemlidir; çünkü aynı komut adı, farklı sistemde farklı davranabilir.
Kısa karar kuralı
Eğer amacınız oturum açınca her yerde aynı ortamı görmekse, shell türünü ve başlangıç dosyasını birlikte düşünün. Eğer amacınız belirli GNU araçlarını kullanmaksa, PATH düzenini ve çakışan komutları ayrıca kontrol edin. Eğer sorun sadece bir pencere veya sekmede oluşuyorsa, önce Terminal profili ve açılış ayarlarını inceleyin. Bu üç adım, macOS Terminal’deki çoğu karışıklığı açıklamak için yeterlidir.