Los archivos ~/.bashrc, ~/bash_profile, /etc/bashrc, /etc/profile. Cual utilizar?
NOTA: ~ significa la ruta al directorio personal (Ej:"/home/juanito" es lo mismo que "~" para juanito) Dicho de otra forma contiene lo mismo que la variable $HOME
Estos cuatro archivos tienen en común que:
- Son ficheros de texto.
- Se pueden modificar con cualquier editor de texto como kwrite, emacs, vi, pico....
- Son shell scripts. También llamados guiones o archivos por lotes. ( Lo que en windows son los archivos *.bat o *.cmd pero mucho, mucho más potente)
- Son ficheros que el sistema operativo ejecuta de forma automática cuando se da una cierta condición.
- En el forndo lo que hace el sistema operativo es mandar a bash (el programa interprete de comandos más usual de Linux) ejecutar los archivos.
- Podemos incluir en ellos cualquier orden de la linea de comandos.
- Suelen confundir al personal. De hecho hay bastante confusión circulando.
Estos cuatro archivos difieren en:
- Solo existe una sola copia de los archivos /etc/profile y /etc/bashrc.
- Cada usuario tiene su propia copia de los archivos .bashrc y .bash_profile. (Estos archivos se encuentran en el directorio personal de cada usuario (~). El punto hace que estos archivos sean ocultos. Para ver si los tiene pruebe:
ls -a ~
- Los archivos /etc/profile y /etc/bashrc afectan a todos los usuarios.Por tanto son gestionados por el administrador del sistema (root).
- Como cada usuario tiene su propia copia de los archivos .bashrc y .bash_profile, su copia le pertenece y se la puede autogestionar. Para acceder a su archivo pruebe en la linea de comandos:
vi ~/.bashrc
vi ~/.bash_profile
Puede editar el texto pulsando la tecla i. Cuando finalize tiene dos opciones:# .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin export PATH unset USERNAME
- ESC + :wq --> Guardar los cambios
- ESC + :q! --> Salir sin guardar los cambios
Lo más importante. Cual de ellos utilizar:
Podemos clasificar estos cuatro archivos en función de si los comandos que contienen afectan a un solo usuario o contrariamente todos los usuarios del sistema se ven afectados.
Vamos a ver en cada uno de los casos, bajo que condiciones se ejecutan los archivos.
Para todos los usuarios: (Se necesita permisos de root para editar/modificar estos archivos)
/etc/profile --> Se ejecuta cuando qualquier usuario inicia la sesión.
/etc/bashrc --> Se ejecuta cada vez que qualquier usuario ejecuta el programa bash
Para nuestro usuario:
~/.bash_profile --> Se ejecuta el .bash_profile de juanito cuando juanito inicia su sesión.
~/.bashrc --> Se ejecuta el .bashrc de juanito cuando juanito ejecuta el programa bash.
.bash_profile
.bashrc
Roger Borrell Anglada (blog) (IES Puig Castellar)
Jo també estic endollat a la XEiLL