BASH Shell akan mencoba memuat beberapa file konfigurasi selama inisialisasi. Ada 2 set file konfigurasi, tergantung itu shell login, atau shell non-login.
- Saat Anda login ke server pada monitor bare metal, atau melalui SSH, atau dengan # su – [nama pengguna], Anda mendapatkan shell login.
- Saat Anda memulai shell di terminal dalam sesi yang ada (gnome-terminal, shell di dalam yang lain, atau dengan # su [nama pengguna]…), Anda mendapatkan shell non-login. Skrip shell juga dieksekusi di bawah shell non-login.
Di bawah ini kami akan mengilustrasikan perbedaannya dengan menambahkan beberapa debugging ke dalam file konfigurasi tersebut.
Login shell
Secara default, shell login akan memuat file-file berikut:
# su - test this is /etc/profile this is ~/.bash_profile this is ~/.bashrc this is /etc/bashrc
Di sini perhatikan ~/.bash_profile file, file secara default memanggil ~/.bashrc , dan ~/.bashrc panggil /etc/bashrc .
Jika karena alasan tertentu BASH tidak menemukan file ~/.bash_profile, itu akan mencari ~/.bash_login alih-alih. Jika lagi ~/.bash_login tidak dapat ditemukan, BASH akan mencari ~/.profile sebagai gantinya.
Dan dalam 2 kasus, ~/.bashrc, dan /etc/bashrc tidak akan dimuat, kecuali jika dipanggil secara eksplisit di ~/.bash_login atau ~/.profile.
Contoh ketika ~/.bash_profile tidak ada:
– Dengan adanya ~/.bash_login, tidak peduli ~/.profile ada atau tidak:
$ su - test Password: this is /etc/profile This is ~/.bash_login
– Hanya ~/.profile:
# su - test this is /etc/profile this is ~/.profile
Shell Non-login
Lebih mudah, BASH hanya memuat ~/.bashrc, dan lagi, panggilan file /etc/bashrc.
# su test this is ~/.bashrc this is /etc/bashrc