[TIP] Como recargar .bashrc o .bash_profile sin cerrar la sesión de consola.

¿Alguna vez te preguntaste por que escribís siempre “sudo su -”, que quiere decir cada parte del comando y por que se concatenan en ese orden?

Como seguramente sabrás -y si no lo sabías, bienvenido al club de los que si lo saben-, cada vez que un usuario inicia sesión en la consola, se ejecuta el comando login, que toma la configuración y el comportamiento por defecto de lo que hubieras especificado en el archivo /etc/login.defs, ejecuta a continuación todo el contenido de /etc/bash.bashrc y por último el contenido de ~/.bashrc y ~/.bash_profile

Command Line Ninjitsu en Maldito Nerd

Otro poco de command line ninjitsu, que hacía mucho que no escribía al respecto y ya le tocaba.

Nota al margen o micro tip anidado: Decir “~” es equivalente a decir /home/<aquí tu numbre de usuario> así que si estás en la consola como tal o cual usuario y necesitás volver a tu home, todo lo que tenés que hacer ejecutar:

cd ~

O mejor, MUCHO mejor:

cd

Volviendo al tema que nos ocupa, cuando necesitás definir por ejemplo, un alias en bash de manera global, lo hacés editando /etc/bash.bashrc y cuando querés que ese alias solo sea válido para tal o cual usuario, lo hacés editando el archivo .bashrc que está en el directorio home del mismo (y que me faltó aclarar, no necesariamente tiene que ser /home si no que puede ser cualquier otro path arbitrario. Para mas info vean el archivo login.defs o /etc/passwd).

Supongamos que como yo venís de Gentoo y caiste en un Debian, la fuerza de la costumbre hizo que te de por las pelotas tener que escribir todas las veces un comando tan largo como “apt-cache search” para buscar un paquete dentro del repositorio, que querés un comando mas corto y para no errarle, querés que sea igual que en Gentoo, querés buscar con el comando “eix”.

En ese caso, basta con agregar a tu .bashrc ya sea local o globalmente un alias que diga:

alias eix=’apt-cache search’

Para que el alias entre en vigencia inmeditamente sin tener que cerrar la sesión, podés simplemente recargar el .bashrc:

source ~/.bashrc

O mejor, MUCHO mejor:

. ~/.bashrc

También podés tirar del comando login para iniciar una sesión dentro de la sesión actual:

login -f  <aquí tu numbre de usuario>

O bien usar el comando “su”:

su – <aquí tu numbre de usuario>

El guión después del comando “su” es el que hace que se recarguen todos los archivos que hacen al perfil del usuario que está iniciando sesión y se reseteen todos los paths y alias en consecuencia. Cuando a “su” no se le especifica un nombre de usuario, interpreta por defecto que se hace referencia a root, al SuperUsuario.

Por todo lo anterior es  que siempre usás “sudo su -”, que para el caso es lo mismo que ejecutar:

su – root

Y que como ves, no es lo mismo que ejecutar “sudo su” sin guión.

Maldito Nerd

Informático por elección, linuxero por convicción, viejo y choto por que no queda otra, el tiempo pasa. Escribo sobre lo que mas me gusta: La música y las computadoras.

More Posts - Website - Twitter - Facebook - Google Plus

Share