"Başarılı bir oturum açma işleminden sonra / bin / login kullanarak / etc / passwd dosyasını okuyarak etkileşimli bir giriş kabuğu başlatıldı. Bu kabuk çağırma normalde / etc / profile ve açılışta özel eşdeğer ~ / .bash_profile dosyasını okur.
Bir oturum açmayan etkileşimli olmayan kabuk normalde bir kabuk programı (örneğin, [prompt] $ / bin / bash) kullanarak veya komut satırında / bin / su komutuyla komut satırında başlatılır. Etkileşimli bir oturum açmayan kabuk, grafiksel bir ortamdan xterm veya konsole gibi bir terminal programı ile de başlatılır. Bu tür kabuk çağırma normal olarak ana ortamı kopyalar ve daha sonra ek başlatma yapılandırma talimatları için kullanıcının ~ / .bashrc dosyasını okur. "
Http://www.linuxfromscratch.org/blfs/view/6.3/postlfs/profile.html
Bu nedenle çevre değişkenlerini bashrc'ye koymuyorum, çünkü sadece genel kurallara aykırı değil, aynı zamanda grafiksel bir Masaüstü ortamından bir terminali çağırırken bashrc değişkenlerinizi de özleyeceksiniz.
Redhat hakkında /etc/profile
bu yorumu buldum:
"Sistem çapında takma adlar ve işlevler / etc / bashrc içine girmelidir. Kişisel ortam değişkenleri ve başlangıç programları ~ / .bash_profile dosyasına girmelidir. Kişisel takma adlar ve işlevler ~ / .bashrc biçimine girmelidir."
Dolayısıyla, ortam değişkenlerini kullanıcı bazında ayarlamak istiyorsanız, kullanıcının .bash_profile dosyasında yapın.
.bash_profile
Okuduğum yere gidiyorum:
"Kişisel ortam değişkenleri ve başlangıç programları.
Kişisel takma adlar ve işlevler ~ / .bashrc konumunda olmalıdır. Sistem çapında çevre değişkenleri ve başlangıç programları / etc / profile içindedir. Sistem geneli takma adları ve işlevleri / etc / bashrc dizinindedir. "
Sonuç
Eğer sadece root'un mevcut programları görmesini istiyorsanız, mesela / sbin
ı bu yolu root'un .bash_profile
dosyasına ekleyecektim . İzlemek her kullanıcı isterseniz Ama koyardı kutunuza hangi belirli kök programları yüklü /sbin
içine /etc/.profile
. Artık her kullanıcı köke özel programları aramak ve gerekirse hakları yükseltmek için sekme tamamlamayı kullanabilir.
Özel Durum: SSH
ssh komut satırı ile başlatıldığında, etkileşimli bir giriş kabuğu başlatılır. Ancak bu durumda /etc/profile
okunmuyor. .bash_profile
Her kullanıcının dosyasındaki ortam değişkenlerini tanımladığımda ssh ile çalıştı.
~/.profile
başka bir geçerli seçenek de