"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/profilebu 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_profileOkuduğ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_profiledosyasına ekleyecektim . İzlemek her kullanıcı isterseniz Ama koyardı kutunuza hangi belirli kök programları yüklü /sbiniç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/profileokunmuyor. .bash_profileHer kullanıcının dosyasındaki ortam değişkenlerini tanımladığımda ssh ile çalıştı.
~/.profilebaşka bir geçerli seçenek de