"Shell login interaktif dimulai setelah login berhasil, menggunakan / bin / login, dengan membaca file / etc / passwd. Doa shell ini biasanya membaca / etc / profile dan private equivalents ~ / .bash_profile saat startup.
Shell non-login interaktif biasanya dimulai pada baris perintah menggunakan program shell (misalnya, [prompt] $ / bin / bash) atau dengan perintah / bin / su. Shell non-login interaktif juga dimulai dengan program terminal seperti xterm atau konsole dari dalam lingkungan grafis. Jenis doa shell biasanya menyalin lingkungan induk dan kemudian membaca file ~ / .bashrc pengguna untuk instruksi konfigurasi startup tambahan. "
Http://www.linuxfromscratch.org/blfs/view/6.3/postlfs/profile.html
Oleh karena itu saya tidak akan meletakkan variabel lingkungan di bashrc, karena tidak hanya bertentangan dengan konvensi umum, tetapi Anda juga akan kehilangan variabel bashrc Anda ketika memanggil terminal dari lingkungan Desktop grafis.
Pada Redhat di /etc/profile
saya menemukan komentar ini:
"Alias dan fungsi lebar sistem harus masuk ke / etc / bashrc. Variabel lingkungan pribadi dan program startup harus masuk ke ~ / .bash_profile. Alias dan fungsi pribadi harus masuk ke ~ / .bashrc."
Jadi jika Anda ingin mengatur variabel lingkungan berdasarkan pengguna, lakukan di file .bash_profile pengguna.
Menuju ke .bash_profile
Saya membaca:
"Variabel lingkungan pribadi dan program startup.
Alias dan fungsi pribadi harus masuk ~ / .bashrc. Variabel lingkungan sistem yang luas dan program startup berada di / etc / profile. Alias dan fungsi di seluruh sistem ada di / etc / bashrc. "
Kesimpulan
Jika Anda hanya ingin root untuk melihat program yang berada, misalnya di / sbin
saya akan menambahkan path ke .bash_profile
file root . Tetapi jika Anda ingin setiap pengguna untuk melihat program root apa yang diinstal pada kotak Anda, saya akan dimasukkan /sbin
ke dalam /etc/.profile
. Sekarang setiap pengguna dapat menggunakan penyelesaian tab untuk mencari program khusus root dan meningkatkan hak jika perlu.
Kasus Khusus: SSH
Ketika ssh dimulai dengan baris perintah, shell login interaktif dimulai. Tetapi dalam hal /etc/profile
ini tidak dibaca. Ketika saya mendefinisikan variabel lingkungan di .bash_profile
file setiap pengguna itu bekerja dengan ssh.
~/.profile
adalah pilihan lain yang valid juga