BASH Shell intentará cargar varios archivos de configuración durante la inicialización. Hay 2 conjuntos de archivos de configuración, dependiendo de si es un shell de inicio de sesión o un shell sin inicio de sesión.
- Cuando inicia sesión en un servidor en un monitor bare metal, o a través de SSH, o con # su – [nombre de usuario], obtiene un shell de inicio de sesión.
- Cuando inicia un shell en una terminal en una sesión existente (gnome-terminal, un shell dentro de otro, o con # su [nombre de usuario]…), obtiene un shell sin inicio de sesión. Un script de shell también se ejecuta bajo un shell sin inicio de sesión.
A continuación, ilustraremos la diferencia agregando algo de depuración en esos archivos de configuración.
Concha de inicio de sesión
De forma predeterminada, un shell de inicio de sesión cargará los siguientes archivos:
# su - test this is /etc/profile this is ~/.bash_profile this is ~/.bashrc this is /etc/bashrc
Aquí tenga en cuenta el ~/.bash_profile archivo, el archivo por defecto llama ~/.bashrc , y ~/.bashrc llama a /etc/bashrc .
Si por alguna razón BASH no encuentra el archivo ~/.bash_profile, buscará ~/.bash_login en cambio. Si nuevamente no se puede encontrar ~/.bash_login, BASH buscará ~/.profile en su lugar.
Y en los 2 casos, ~/.bashrc y /etc/bashrc no se cargarán, a menos que se llamaran explícitamente en ~/.bash_login o ~/.profile.
Los ejemplos cuando ~/.bash_profile no existe:
– Con la presencia de ~/.bash_login, no importa si ~/.profile existe o no:
$ su - test Password: this is /etc/profile This is ~/.bash_login
– Solo ~/.perfil:
# su - test this is /etc/profile this is ~/.profile
Shell sin inicio de sesión
Es más fácil, BASH solo carga ~/.bashrc, y nuevamente, el archivo llama a /etc/bashrc.
# su test this is ~/.bashrc this is /etc/bashrc