update source reiniciar compile changes bashrc bash terminal reload profile

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



restart bashrc file (14)

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

. .bashrc

Si hago cambios en .bashrc , ¿cómo lo recargo sin cerrar sesión y volver a entrar?


Con esto, ni siquiera tendrá que escribir "source ~ / .bashrc":

Incluye tu archivo bashrc:

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

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


Dependiendo de su entorno, es posible que desee agregar secuencias de comandos para que .bashrc se cargue automáticamente al abrir una sesión SSH. Hace poco realicé una migración a un servidor que ejecuta Ubuntu, y allí, .profile, no .bashrc o .bash_profile se carga de forma predeterminada. Para ejecutar cualquier script en .bashrc, tuve que ejecutar source ~/.bashrc cada vez que se abría una sesión, lo que no ayuda cuando se ejecutan implementaciones remotas.

Para que su .bashrc se cargue automáticamente al abrir una sesión, intente agregar esto a .profile:

if [ -n "$BASH_VERSION" ]; then # include .bashrc if it exists if [ -f "$HOME/.bashrc" ]; then . "$HOME/.bashrc" fi fi

Vuelva a abrir su sesión, y debería cargar todas las rutas / scripts que tenga en .bashrc.


Dependiendo de su entorno, simplemente escribiendo

bash

También puede funcionar.


Esto también funcionará ..

cd ~ source .bashrc


Noté que el comando exec bash puro 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 tu trabajo.


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

Ambas soluciones recargan efectivamente ~/.bashrc , pero hay diferencias:

  • . ~/.bashrc . ~/.bashrc o source ~/.bashrc mantendrán su shell actual :

    • Excepto por las modificaciones que realiza la recarga de ~/.bashrc en el shell actual ( fuente ), el shell actual y su estado se conservan , lo que incluye variables de entorno, variables de shell, opciones de shell, funciones de shell e historial de comandos.
  • exec bash , o, de manera más sólida, 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 del 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 de bash diferente al que inició el shell actual, en caso de que exista en un directorio listado anteriormente en $PATH . Dado que la variable especial $BASH siempre contiene la ruta completa del ejecutable que inició el shell actual, se garantiza que el ejecutable exec "$BASH" use el mismo ejecutable.
Una nota con "..." alrededor de $BASH : las $BASH dobles aseguran que el valor de la variable se use tal como está, sin la interpretación 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 las comillas dobles, pero usarlas es un buen hábito.


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


Solo tienes que introducir el comando:

source ~/.bashrc

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

. ~/.bashrc


Yo uso el siguiente comando en msysgit

. ~/.bashrc

versión más corta de

source ~/.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 programa dado, en nuestro ejemplo, reemplaza nuestro shell con bash (con los archivos de configuración actualizados)


tipo:

source .bashrc


yo personalmente tengo

alias ..=''source ~/.bashrc''

en mi bashrc, para que pueda usar ".." para recargarlo.