/etc/profile, .bash_profile, .bashrc, .bash_logout

per Roger Borrell darrera modificació 2020-03-25T16:14:04+02:00
El uso de los ficheros /etc/profile, .bash_profile, .bashrc, .bash_logout

Existen tres ficheros en el directorio de un usuario que tienen un significado especial para el shell Bash. Estos ficheros permiten al usuario configurar el entorno de su cuenta automaticamente cuando entra en el sistema, cuando arranca un subshell o ejecutar comandos cuando sale del sistema.

Los nombres de estos ficheros son .bash_profile, .bashrc y .bash_logout. Si ninguno de estos ficheros existe en el directorio del usuario, /etc/profile es utilizado por el sistema como fichero de configuracion de bash.

.bash_profile es el el mas importante de los tres. Es leido y los comandos incluidos en el, ejecutados, cada vez que el usuario entra en el sistema. Cualquier cambio hecho en este fichero no tendra efecto hasta que salgamos y entremos en el sistema de nuevo. Una alternativa para no tener que salir del sistema es ejecutar el comando source .bash_source.

Bash permite dos sinonimos para este fichero, .bash_login (derivado del C shell) y .profile (derivado del Bourne y Korn shell). Si .bash_profile no existe, el sistema buscara primero .bash_login y luego .profile. Solamente uno de estos ficheros es leido, en el caso que existan simultaneamente.

   # .bash_profile

   # Get the aliases and functions
   if [ -f ~/.bashrc ]; then
           . ~/.bashrc
   fi

   # User specific environment and startup programs

   BASH_ENV=$HOME/.bashrc
   USERNAME=""
   PATH=$PATH:/usr/local/pgsql/bin
   MANPATH=$MANPATH:/usr/local/pgsql/man
   PGLIB=/usr/local/pgsql/lib
   PGDATA=/usr/local/pgsql/data

   export USERNAME BASH_ENV PATH MANPATH PGLIB PGDATA

.bashrc es leido cuando el usuario arranca un subshell, escribiendo por ejemplo bash en la linea de comandos. Esto nos permite ejecutar diferentes comandos para la entrada al sistema o para la ejecucion de un subshell. Si el usuario necesita los mismos comandos tanto a la entrada como en subshells, podemos incluir la siguiente linea en .bash_profile:

    source .bashrc

   # .bashrc

   # User specific aliases and functions

   alias ll="ls -l --color"
   alias lal="ls -la --color"
   alias faq="cd /home/rafael/EL_RINCON/FAQ/"
   alias php="cd /home/rafael/EL_RINCON/PHP/"

   # Source global definitions
   if [ -f /etc/bashrc ]; then
           . /etc/bashrc
   fi

.bash_logout es el fichero leido por Bash, cuando salimos del sistema. Podemos definir, por ejemplo que se borren los ficheros temporales creados en nuestra ultima sesion o registrar el tiempo que hemos estado utilizando el sistema. Si .bash_logout no existe, ningun comando sera ejcutado a nuestra salida.

   # ~/.bash_logout

   clear
Roger Borrell Anglada (blog) (IES Puig Castellar)
Jo també estic endollat a la XEiLL