- Konu sahibi
- #1
Terminal davranışını belirleyen üç şeyi karıştırmayın
macOS’ta Terminal açıldığında gördüğünüz davranış her zaman tek bir ayardan gelmez. Profil ayarı pencerenin nasıl açılacağını ve kapanacağını etkiler; Shell bölümündeki başlangıç komutu kabuk açılır açılmaz çalışır; kabuğun kendi başlangıç dosyaları ise ortam değişkenlerini, PATH düzenini ve takma adları yükler. Bu üç katman birbirine benzer görünse de farklı amaçlara hizmet eder.Bir sorunu çözerken önce hangi katmanda değişiklik yapılacağını ayırmak gerekir. Örneğin pencere açılır açılmaz bir komutun çalışmasını istiyorsanız Terminal profilindeki Shell ayarıyla ilgilenirsiniz. Ama PATH içine yeni bir dizin eklemek istiyorsanız bunu profilin Shell ayarıyla değil, kabuğun okuduğu başlangıç dosyasıyla çözersiniz. Apple’ın Terminal belgeleri, Shell ayarlarının profil bazlı olduğunu ve başlangıçta çalıştırılacak komut tanımlanabildiğini açıkça belirtir.
Terminal profilinde ne ayarlanır?
Terminal’deki profil, pencerenin görünümüyle birlikte açılış ve kapanış davranışını da taşır. Bu yüzden bir profilin Shell bölümünde yapılan değişiklikler tüm Terminal uygulamasına değil, yalnızca seçilen profile uygulanır. Aynı Mac’te farklı iş akışları için ayrı profiller kullanmak bu nedenle mantıklıdır. Bir profil, örneğin otomatik komut çalıştıran bir “iş” profili, başka bir profil de sade bir “normal terminal” profili olabilir.Başlangıç komutu ne işe yarar?
Başlangıç komutu, kabuk açıldıktan hemen sonra çalıştırılır. Bu komut, bir ortam hazırlama betiği, bir araç başlatma çağrısı ya da kısa bir kontrol komutu olabilir. Buradaki önemli nokta şudur: bu ayar kabuğun başlangıç dosyasıyla aynı şey değildir. Başlangıç komutu Terminal profilinin bir özelliğidir; kabuğun kendi yapılandırması ise ~/.bashrc, ~/.bash_profile veya kullanılan kabuğa göre başka dosyalardadır. Apple dokümantasyonu bu farkı ayrı ayrı gösterir.Başlangıç dosyası ne zaman devreye girer?
Kabuk gerçekten nereden ayar aldığını anlamak için login kabuğu ile etkileşimli kabuğu ayırmak gerekir. bash, login kabuk olarak açıldığında önce /etc/profile dosyasını, ardından sırasıyla ~/.bash_profile, ~/.bash_login ve ~/.profile dosyalarını okur. Etkileşimli kabukta ise ~/.bashrc devreye girer. Bu ayrım, "ayarı yazdım ama terminalde görünmüyor" türü sorunların en yaygın nedenlerinden biridir.macOS’ta pratik kullanım örnekleri
Aşağıdaki eşleştirme çoğu karışıklığı azaltır:| Öğe | Ne belirler? | Ne zaman önemlidir? |
|---|---|---|
| Terminal profili | Terminal penceresinin görünümü ve açılış/kapanış davranışı | Pencere davranışını değiştirmek için |
| Shell başlangıç komutu | Kabuk açılır açılmaz çalıştırılan komut | Otomatik komut, ortam hazırlama |
| Kabuk başlangıç dosyası | login veya etkileşimli kabuğun okuduğu dosya | Ortam değişkeni, PATH, takma ad |
| Homebrew ön eki | Araçların kurulduğu temel dizin | macOS ve Linux’ta farklı yol |
Kabuk başlangıç dosyası = PATH, alias, ortam değişkeni, otomatik yüklenen komutlar
Homebrew ön eki = yüklediğiniz araçların bulunduğu ana dizin
Örneğin Homebrew ile kurduğunuz bir komutun macOS’ta görünmemesi çoğu zaman profil ayarından değil, PATH’in doğru dosyada tanımlanmamasından kaynaklanır. Homebrew’un resmi belgeleri, macOS’ta Apple Silicon için varsayılan ön ekin /opt/homebrew olduğunu; Linux’ta ise /home/linuxbrew/.linuxbrew yolunun kullanıldığını belirtir. Bu yüzden aynı kurulum mantığı iki sistemde benzer olsa da yol ve entegrasyon ayrıntıları farklıdır.
En sık yapılan hata
En yaygın hata, profilin Shell alanına PATH satırı ya da alias yazıp bunun her terminal oturumunda otomatik uygulanacağını sanmaktır. Profildeki başlangıç komutu yalnızca o profile bağlı açılış davranışını etkiler. Kalıcı ortam ayarı gerekiyorsa kullandığınız kabuğun doğru başlangıç dosyasına yazmak gerekir. bash belgeleri, login kabuğu ile etkileşimli kabuğun farklı dosyalar okuduğunu net biçimde söyler; bu fark gözden kaçarsa ayar varmış gibi görünür ama oturumda etkisi olmaz.Kısa karar kuralı
Bir değişiklik yapmak istiyorsanız şu soruyla başlayın: "Ben pencere davranışını mı değiştiriyorum, yoksa kabuğun ortamını mı?"Pencere davranışıysa Terminal profilini değiştirin.
Kabuk başlarken komut çalışacaksa profilin Shell başlangıç ayarını kullanın.
PATH, alias veya değişken kalıcı olacaksa kabuğun doğru başlangıç dosyasını düzenleyin.
Bu ayrımı doğru yapmak, macOS Terminal’de hem GNU/Linux araçlarıyla çalışırken hem de Homebrew gibi paket yöneticilerini kullanırken zaman kazandırır. Sorunların çoğu araçtan değil, ayarın yanlış katmana yazılmasından çıkar.