Saya menemukan bahwa itu adalah .bash_profile
, .bashrc
, .bash_login
, .profile
.
Apa urutan membaca di antara mereka?
Jawaban yang Diterima:
Pada dasarnya, jika itu adalah shell login, itu sumber /etc/profile
lalu .bash_profile
. Jika itu bukan shell login, tetapi Anda berada di terminal, itu sumber /etc/bash.bashrc
lalu .bashrc
.
Tapi sebenarnya jauh lebih rumit.
Cara saya membaca halaman manual:
if bash_mode; then
if login_shell; then
if test -e /etc/profile; then source /etc/profile; fi
if test -e .bash_profile; then source .bash_profile
elif test -e .bash_login; then source .bash_login
elif test -e .profile; then source .profile; fi
elif interactive_shell || remote_shell; then
if test -e /etc/bash.bashrc; then source /etc/bash.bashrc
if test -e .bashrc; then source .bashrc; fi
elif test -n "$BASH_ENV"; then
source "$BASH_ENV"
fi
elif sh_mode; then
if login_shell; then
if test -e /etc/profile; then source /etc/profile; fi
if test -e .profile; then source .profile; fi
elif interactive_shell; then
if test -n "$ENV"; then
source "$ENV"
fi
fi
fi
Ini adalah shell login setiap kali shell dijalankan sebagai -bash
(perhatikan tanda minus) atau dengan -l
pilihan. Ini biasanya terjadi ketika Anda masuk menggunakan login
perintah (konsol virtual Linux melakukan ini), melalui ssh, atau jika emulator terminal Anda mengaktifkan opsi "login shell".
Ini adalah shell interaktif setiap kali input standar adalah terminal, atau bash dimulai dengan -i
pilihan. Perhatikan bahwa jika shell juga merupakan shell login, bash tidak memeriksa apakah shell tersebut interaktif. Untuk alasan ini, .bash_profile
biasanya berisi kode ke sumber .bashrc
, sehingga Anda dapat berbagi pengaturan yang sama antara shell interaktif dan login.