Saltar la navegación

Ficheros de arranque

El shell, cuando se inicia, lo primero que hace es ejecutar una serie de comandos que se encuentran agrupados en unos ficheros denominados ficheros de arranque o ficheros de inicio. Con estos ficheros lo que se pretende es configurar el entorno del shell en el modo que nos interese, para lo cual colocaremos en su interior unos comandos u otros. Esta operación la puede llevar a cabo tanto el root (afectando a todos los usuarios del sistema), como un usuario (afectando solo al inicio de los shells del usuario).

Según sea el tipo del shell, se utilizan unos ficheros de arranque u otros. Un shell puede ser:

  • Interactivo: Son los shell que nos permiten interactuar con ellos, ejecutando comandos introducidos desde el teclado. Un shell no interactivo es aquel que ejecuta comandos desde un fichero o script.
  • De inicio: Son los shells que se ejecutan inmediatamente después de que el usuario se haya identificado. Por ejemplo cuando abrimos una terminal de texto (CTRL+ALT+F1, CTR+ALT+F2, etc.), introducimos usuario y clave, y a continuación aparece un shell interectuando con nosotros, este shell, concretamente, es de inicio, y también es interactivo. Los shell que abrimos en el entorno gráfico sobre una ventana no es de inicio, aunque sí interactivo.

Cuando el shell bash es de inicio e interactivo, se ejecutan por orden los siguientes ficheros de arranque:

  1. /etc/profile: Este fichero lo modifica el root y afecta a todos los usuarios del sistema cuando abren una terminal de texto.
  2. /etc/bash.bashrc: Este fichero es llamado por el anterior. También pertenece al dominio del root y sirve para centralizar la personalización de aspectos que afecten a todos los usuarios.
  3. ~/.profile: Este fichero es del dominio del usuario, y con él se pretende que cada usuario configure el inicio de su shell. Puede sustituirse por ~/.bash_profile o por ~/.bash_login. El fichero ~/.profile está creado por defecto. Solo se ejecutará uno de estos tres ficheros, aunque existan más de uno, y será el primero que se encuentre siguiendo este orden: ~/.bash_profile, ~/.bash_login, ~/.profile.
  4. ~/.bashrc: Este fichero es llamado por el anterior y tiene el mismo objetivo.
  5. ~/.bash_logout: Este fichero se ejecuta cuando nos salimos del shell y sirve para que el usuario personalice la salida.
  6. /etc/bash.bash_logout: Este fichero se ejecuta cuando nos salimos del shell y sirve para que el administrador personalice la salida de todos los usuarios.

En todos los tipos de shell, cuando alguno de los ficheros de arranque no existe, no se detiene la ejecución del shell, sino que se sigue adelante con el siguiente paso.

Cuando el shell bash es interactivo pero no de inicio (los shells que abrimos desde el escritorio), los ficheros de arranque que se ejecutan son por orden:

  1. /etc/bash.bashrc
  2. ~/.bashrc

Cuando bash no es de inicio ni interactivo, es decir, un shell que ejecuta un script (fichero de comandos), el único fichero de arranque que se ejecutará será el indicado por la variable BASH_ENV. Si esta variable tiene un valor, éste debe ser la ruta absoluta de un script hecho por el usuario, el cual se ejecutará siempre antes de que se ejecute cualquier script.

$ export BASH_ENV=/home/usuario/.inicio

 

Licencia: licencia de software libre GPL