~/.bashrcve /etc/bash.bashrcetkileşimli bir bashkabuk her başlatıldığında çalıştırılır.
Buna karşılık, ~/.profileve /etc/profileherhangi her zaman çalıştırılır giriş kabuğu başlatılır. Bu yüzden bir bashkabuk olmak zorunda değildir , ancak bir giriş kabuğu olmak zorundadır (ve birçok bashkabuk örneği giriş kabukları değildir ).
- Bir
bashkabuk da içerir kabuk programı bir kabuk bashgibi, yerine başka bir program daha dash.
- Oturum açma kabuğu, oturum açma için kullanıcı arabirimi (grafik veya komut satırı) sağlamak üzere oturum açmanın bir sonucu olarak otomatik olarak başlatılan bir kabuktur. Bir oturum açma kabuğundan çıkıldığında, oturum sonlandırılır.
Bu nedenle, PATHbir bashrcdosyaya giriş ekleyen bir övgü koymak :
Kabuk olmadığında hiçbir şey yapmayınbash , bu genellikle durumdur. Örneğin, PATHbir grafik giriş oturumunda olduğunuzda değiştirilmez. Unutmayın, PATHsadece komut satırı programları tarafından kullanılmaz.
Yuvalanmış bashkabukların varlığında tekrar tekrar ekleyin . Bu nedenle, bir kabuk içinde bir kabuğu başlatırsanız - ki bu çok yaygındır, çeşitli nedenlerden dolayı - o zaman ~/binyığına yığılmış birden fazla girişiniz olacaktır PATH. Bu PATHortam değişkenini okumayı zorlaştırır ve bazen performansı düşürür.
Bunlar istenmeyen bir durumdur. Dolayısıyla bunu bir dosyaya koymak yanlış olur bashrc; gerçekten ait ~/.profile. ~/.profileşunun için doğru yer :
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
Giriş yapmayan kabuklar, ebeveynleri olarak giriş kabuklarına (veya giriş kabuğu gibi davranan bir şeye) sahiptir ve PATHbu giriş kabuğundan ortam değişkenlerinin çoğunu devralır . Bu nedenle, yolu değiştiren komutların devreye sokulması ~/.profile, etkili olmaları için oturumu kapatıp tekrar açmanızı gerektirir, ancak giriş yapmayan kabukların ortamını da etkiler (ayrıca kabuk olmayan programların ortamını da etkiler, çünkü her program kendi "ortam" olarak adlandırılan kendi ortam değişkenleri kümesi, ana sürecinden miras alınır).