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