Esta es la respuesta más correcta que te podemos brindar, pero estúdiala pausadamente y analiza si se adapta a tu trabajo.
Solución:
Puede ingresar el comando de formato largo:
source ~/.bashrc
o puede usar la versión más corta del comando:
. ~/.bashrc
O podrías usar:
exec bash
Esto hace lo mismo y es más fácil de recordar (al menos para mí).
El exec
El comando reemplaza completamente el proceso de shell al ejecutar la línea de comandos especificada. En nuestro ejemplo, reemplaza cualquiera que sea el shell actual con una nueva instancia de bash
(con los archivos de configuración actualizados).
A complemento y contraste las dos respuestas más populares, . ~/.bashrc
y exec bash
:
Ambas soluciones efectivamente recargar ~/.bashrc
pero hay diferencias:
-
. ~/.bashrc
osource ~/.bashrc
será preservar tu caparazón actual:- Salvo las modificaciones que la recarga
~/.bashrc
en el shell actual (abastecimiento) hace, el shell actual y su estado son Preservadoque incluye variables de entorno, variables de shell, opciones de shell, funciones de shell e historial de comandos.
- Salvo las modificaciones que la recarga
-
exec bash
o, más robustamente,exec "$BASH"
[1]será reemplazar tu caparazón actual con una nueva instancia, y por lo tanto solo preservar su caparazón actual Variables de entorno (incluidos los que haya definido ad-hoc).- En otras palabras: se pierde cualquier cambio ad-hoc en el shell actual en términos de variables de shell, funciones de shell, opciones de shell, historial de comandos.
Dependiendo de sus necesidades, se puede preferir uno u otro enfoque.
[1] exec bash
podría en teoría ejecutar un diferentebash
ejecutable que el que inició el shell actual, si existe en un directorio enumerado anteriormente en el $PATH
. Dado que la variable especial $BASH
siempre contiene la ruta completa del ejecutable que inició el shell actual, exec "$BASH"
se garantiza el uso de la mismo ejecutable.
Una nota re "..."
alrededor $BASH
: las comillas dobles garantizan que el valor de la variable se utilice tal cual, sin interpretación por parte de Bash; si el valor no tiene espacios incrustados u otros metacaracteres de shell (lo que no es probable en este caso), no necesita estrictamente comillas dobles, pero usarlas es un buen hábito para formar.
Nos encantaría que puedieras difundir esta sección si lograste el éxito.