Si bien entiendo que source
el comando ejecuta un programa en el shell actual, no entiendo muy bien por qué necesitamos ejecutarlo source .bashrc
para "recargar" el archivo .bashrc.
Según tengo entendido, no ejecutamos ningún script agregando un alias a .bashrc; source .bashrc
simplemente "recargamos" el archivo.
¿Por qué no se recarga automáticamente?
Probablemente me estoy perdiendo algo.
¿Cómo funciona debajo del capó? ¿Por qué necesitamos source
este archivo para que los nuevos alias funcionen sin necesidad de cerrar sesión?
Respuesta1
.bashrc
se lee solo una vez, cuando se inicia bash. Es así por diseño (y siempre lo ha sido). Si realiza cambios posteriores en .bashrc
, no se aplicarán hasta que .bashrc
se vuelva a leer. Al ejecutar source .bashrc
, haces exactamente esto: le dices a bash que vuelva a leer ese archivo.
Por supuesto, también puede iniciar una nueva copia de bash (por ejemplo, iniciando una nueva sesión de terminal), esto hará que el nuevo proceso bash lea el .bashrc
archivo nuevamente (pero no habrá cambios en la sesión anterior).
POR CIERTO. .bashrc
archivoesun script y, al obtenerlo, ejecuta los comandos colocados en ese archivo. Los comandos definen alias en su caso, pero prácticamente cualquier comando puede colocarse en ese archivo.