¿Cómo recargo .bashrc sin cerrar la sesión y volver a entrar?

Si realizo cambios en .bashrc , ¿cómo lo vuelvo a cargar sin tener que cerrar sesión y volver a iniciar sesión?

Solo tienes que ingresar el comando:

 source ~/.bashrc 

o puede usar la versión más corta del comando:

 . ~/.bashrc 

o podrías usar;

 exec bash 

hace lo mismo (y más fácil de recordar, al menos para mí)

El comando exec reemplaza el shell con el progtwig dado, en nuestro ejemplo, reemplaza nuestro shell por bash (con los archivos de configuración actualizados)

Para complementar y contrastar las dos respuestas más populares,. . ~/.bashrc y exec bash :

Ambas soluciones efectivamente vuelven a cargar ~/.bashrc , pero hay diferencias:

  • source ~/.bashrc preservará su shell actual :

    • Excepto por las modificaciones que hace volver a cargar ~/.bashrc en el shell actual ( sourcing ), se conserva el shell actual y su estado , que incluye variables de entorno, variables de shell, opciones de shell, funciones de shell e historial de comandos.
  • exec bash , o, más robustamente, exec "$BASH" [1] , reemplazará su shell actual con una nueva instancia y, por lo tanto, solo conservará las variables de entorno de su shell actual (incluidas las que haya definido ad-hoc).

    • En otras palabras: se pierden todos los cambios 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 ejecutable bash diferente del que inició el shell actual, si existe en un directorio enumerado anteriormente en $PATH . Como la variable especial $BASH siempre contiene la ruta completa del ejecutable que inició el shell actual, se garantiza que el ejecutable exec "$BASH" usará el mismo ejecutable.
Una nota re "..." alrededor de $BASH : las $BASH dobles aseguran que el valor de la variable se use tal como está, sin interpretación por Bash; si el valor no tiene espacios incrustados u otros metacaracteres del shell (lo cual no es probable en este caso), no necesita estrictamente comillas dobles, pero usarlas es una buena costumbre.

Alguien editó mi respuesta para agregar un inglés incorrecto, pero aquí estaba el original, que es inferior a la respuesta aceptada.

 . .bashrc 

Dependiendo de tu entorno, simplemente escribiendo

 bash 

también puede funcionar

Con esto, ni siquiera tendrás que escribir “source ~ / .bashrc”:

Incluya su archivo bashrc:

 alias rc="vim ~/.bashrc && source ~/.bashrc" 

Cada vez que desee editar su bashrc, simplemente ejecute el alias ” rc

TL; DR

 . ~/.bashrc 

TMI

 . ~/.bashrc 

. es un atajo BASH para el comando incorporado “fuente”. – Brian Showalter

 source ~/.bashrc 

Alternativa

 exec bash 
  • source es un comando de shell incorporado que ejecuta el contenido del archivo pasado como argumento en el shell actual .
  • comando exec reemplaza el shell con un progtwig determinado …
  • – WhoSayIn

tipo:

 source .bashrc 

uso el siguiente comando en msysgit

 . ~/.bashrc 

versión más corta de

 source ~/.bashrc 

Esto también funcionará …

 cd ~ source .bashrc 

Noté que el comando pure exec bash conservará las variables de entorno, por lo que debe usar exec -c bash para ejecutar bash en un entorno vacío.

Por ejemplo, inicia sesión en un bash, y export A=1 , si exec bash , el A == 1 .

Si exec -cl bash , A está vacío.

Creo que esta es la mejor manera de hacer su trabajo.

Para mí, lo que funciona cuando cambio el PATH es: exec "$BASH" --login

yo personalmente tengo

alias ..='source ~/.bashrc'

en mi bashrc, así que solo puedo usar “..” para volver a cargarlo.