Inicio > GNU/Linux > Scripts de inicio de Bash

Scripts de inicio de Bash

Sábado, 11 de Abril de 2009

El shell Bash utiliza unos ficheros de configuración mediante los cuales puede establecer variables de entorno, alias y otros parámetros de inicialización cuando un usuario inicia su sesión o cuando se lanza un subshell (para ejecutar un shell script, por ejemplo). Sin embargo, a la hora de intentar querer incluir una configuración personalizada uno se puede volver un poco loco al no saber exáctamente en qué fichero debe de incluir dicha configuración.

Shell de login

Cuando iniciamos sesión en una máquina (mediante consola tty, ssh, telnet, etc…) Bash busca el fichero /etc/profile y ejecuta su contenido. Este fichero es un fichero de configuración compatible para todos los shell derivados del Bourne shell (sh). Después intenta ejecutar el fichero .bash_profile dentro del directorio del usuario. Si no lo encuentra lo intenta con .bash_login y si tampoco lo encuentra intenta ejecutar el fichero .profile.
Por último, cuando cerramos sesión con logout o exit, Bash intenta ejecutar el fichero .bash_logout.

Shell de no login

Cuando el shell Bash es lanzado pero no se hace tras iniciar una sesión por ejemplo, abriendo un nuevo xterm (terminal gráfico) intenta ejecutar los ficheros /etc/bash.bashrc y luego .bashrc, situado en el directorio hogar del usuario.

Lo que ocurre con frecuencia es que durante una conexión de login el contenido de estos dos ficheros es ejecutado porque es llamado desde los ficheros del primer caso, concretamente /etc/profile suele llamar a /etc/bash.bashrc y .bash_profile suele llamar a .bashrc.

En este gráfico se explica de forma más clara todo esto:
Scripts de inicio de Bash

Resumen

  • /etc/profile: común a todos los usuarios que se ejecuta durante el login.
  • /etc/bash.bashrc: común a todos los usuarios ejecutado durante la invocación de un subshell.
  • ~/.bash_profile, ~/.bash_login o ~/.profile: particular del usuario y se ejecuta durante el login.
  • ~/.bash_logout: particular del usuario y se ejecuta cuando finaliza la sesión.
  • ~/.bashrc: particular del usuario y se ejecuta durante la invocación de un subshell.

superruzafa GNU/Linux , , , , ,