~/.bashrc
ve /etc/bash.bashrc
etkileşimli bir bash
kabuk her başlatıldığında çalıştırılır.
Buna karşılık, ~/.profile
ve /etc/profile
herhangi her zaman çalıştırılır giriş kabuğu başlatılır. Bu yüzden bir bash
kabuk olmak zorunda değildir , ancak bir giriş kabuğu olmak zorundadır (ve birçok bash
kabuk örneği giriş kabukları değildir ).
- Bir
bash
kabuk da içerir kabuk programı bir kabuk bash
gibi, 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, PATH
bir bashrc
dosyaya giriş ekleyen bir övgü koymak :
Kabuk olmadığında hiçbir şey yapmayınbash
, bu genellikle durumdur. Örneğin, PATH
bir grafik giriş oturumunda olduğunuzda değiştirilmez. Unutmayın, PATH
sadece komut satırı programları tarafından kullanılmaz.
Yuvalanmış bash
kabukları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 ~/bin
yığına yığılmış birden fazla girişiniz olacaktır PATH
. Bu PATH
ortam 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 PATH
bu 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).