- Konu sahibi
- #1
Terminal açılışını doğru okumak
macOS ve GNU/Linux tarafında aynı ayarların farklı yerde çalışmasının en yaygın nedeni, terminalin hangi shell’i başlattığını yanlış varsaymaktır. Özellikle PATH, alias, ortam değişkeni ve araç yolu eklerken, ayarın sadece bir oturumda mı geçerli olması gerektiği yoksa her yeni terminalde mi okunacağı netleşmelidir.Önce hangi shell’in çalıştığını kontrol edin
Terminalde ilk bakılacak şey, kullandığınız kabuğun adı ve oturum tipidir. macOS’ta Terminal’in yeni pencere ve sekmeleri hangi shell ile açtığı ayarlanabilir; Apple, varsayılan shell’in zsh olduğunu ve yeni pencerelerin/sekmelerin bu ayara göre açıldığını belirtir. Bu yüzden "ben bunu ekledim ama çalışmıyor" durumunun nedeni çoğu zaman ayarın yanlış shell dosyasına yazılmasıdır.Pratik kontrol için şunlara bakın:
-
$SHELLdeğişkeni giriş shell’ini gösterebilir, fakat mevcut oturumun gerçekten hangi kabukta çalıştığını tek başına her zaman anlatmaz. -
echo $0bazı durumlarda mevcut shell adı hakkında fikir verir. -
ps -p $$ -o comm=ile o an çalışan sürecin adını görmek daha açıklayıcı olabilir.
Ayarı neden birden fazla dosyada aramamalısınız?
PATH ya da benzeri değişkenleri rastgele her dosyaya koymak kısa vadede çözüm gibi görünür; uzun vadede aynı ayarın iki kez yüklenmesine, çakışan alias’lara veya gereksiz karmaşaya yol açar. Bash belgeleri login shell ile interactive shell’in farklı başlangıç dosyalarını okuduğunu açıkça anlatır. Homebrew belgeleri de bu yüzden, komutun çıktısını shell yapılandırma dosyanıza eklemenizi ve macOS ile Linux için örnek dosyaların değişebileceğini söyler.Bu ayrım şu kararı netleştirir:
- Sadece etkileşimli terminal oturumlarında gerekli olan ayarlar, shell’in etkileşimli başlangıç dosyasına gider.
- Oturum açılır açılmaz her yerde gerekli olan PATH değişiklikleri, giriş shell’inin okuduğu dosyada tutulur.
- Script’lerin çalışması için gereken değişkenler, terminal profiliyle karıştırılmaz.
macOS’ta ve Linux’ta neden aynı dosya seçilmez?
Homebrew’un kendi dokümantasyonu, macOS için örnek olarak~/.zprofile veya ~/.bash_profile, Linux için ise ~/.zshrc veya ~/.bashrc gibi dosyaları işaret eder. Bu, "tek doğru dosya" olmadığını; kabuk tipine ve açılış biçimine göre doğru yerin değiştiğini gösterir. GNU Bash belgeleri de login shell davranışının, non-interactive shell’den farklı olduğunu doğrular.Buradaki pratik sonuç şudur:
- macOS Terminal’de yeni pencere açılışında PATH’in görünmesini istiyorsanız, önce shell’in login olarak mı başladığını doğrulayın.
- Linux’ta da aynı komutun hangi başlangıç dosyasına gireceği, dağıtımın varsayılan oturum davranışına göre değişebilir.
- Tek bir dosyaya her şeyi yazmak yerine, ayarı shell’in gerçekten okuduğu yere koyun.
En sık yapılan hata
En yaygın hata,brew shellenv benzeri bir satırı gördükten sonra onu düşünmeden .zshrc ya da .bashrc içine yapıştırmaktır. Bu bazen çalışır, bazen sadece mevcut terminalde etkili olur, bazen de yeni pencerede farklı sonuç üretir. Doğru yaklaşım, önce shell türünü ve login/interactive ayrımını belirlemek, sonra komutu buna göre yerleştirmektir.Bir başka yaygın hata da
PATH ayarını aynı anda hem profile hem rc dosyasına ekleyip iki kez çalıştırmaktır. Bu, bazı sistemlerde hata üretmese de ileride teşhis etmesi zor karışıklıklar çıkarır.Kısa uygulama sırası
- Terminal’de mevcut shell’i kontrol edin.
- Yeni pencere açtığınızda aynı shell’in mi başladığını doğrulayın.
- Hangi dosyanın okunduğunu belirleyin: login dosyası mı, interactive dosya mı?
- PATH veya benzeri ayarı yalnızca gerekli olan tek dosyaya ekleyin.
- Terminali kapatıp yeniden açarak sonucu test edin.