Comment recharger .bashrc sans me déconnecter et revenir?

Si je modifie le .bashrc , comment puis-je le recharger sans me déconnecter?

Vous devez juste entrer la commande:

 source ~/.bashrc 

ou vous pouvez utiliser la version plus courte de la commande:

 . ~/.bashrc 

ou vous pourriez utiliser;

 exec bash 

fait la même chose (et plus facile à retenir, du moins pour moi)

La commande exec remplace le shell avec un programme donné, dans notre exemple, il remplace notre shell par bash (avec les fichiers de configuration mis à jour)

Compléter et contraster les deux réponses les plus populaires,. . ~/.bashrc et exec bash :

Les deux solutions rechargent efficacement ~/.bashrc , mais il existe des différences:

  • source ~/.bashrc conservera votre shell actuel :

    • Hormis les modifications apscopes au rechargement de ~/.bashrc dans le shell courant ( sourcing ), le shell actuel et son état sont préservés , ce qui inclut les variables d’environnement, les variables shell, les options de shell, les fonctions de shell et l’historique des commandes.
  • exec bash , ou, plus robuste, exec "$BASH" [1] , remplacera votre shell actuel par une nouvelle instance, et ne conservera donc que les variables d’environnement de votre shell actuel (y compris celles que vous avez définies ad hoc).

    • En d’autres termes: toute modification ponctuelle apscope au shell actuel en termes de variables shell, de fonctions shell, d’options de shell et d’historique des commandes est perdue.

Selon vos besoins, l’une ou l’autre approche peut être préférée.


[1] exec bash pourrait en théorie exécuter un autre exécutable bash que celui qui a lancé le shell actuel, s’il se trouve dans un répertoire répertorié précédemment dans $PATH . Comme la variable spéciale $BASH contient toujours le chemin complet de l’exécutable qui a lancé le shell actuel, exec "$BASH" est garanti pour utiliser le même exécutable.
Une note re "..." autour de $BASH : les doubles guillemets garantissent que la valeur de la variable est utilisée telle quelle, sans interprétation par Bash; Si la valeur n’a pas d’espaces incorporés ou d’autres métacaractères de shell (ce qui n’est pas probable dans ce cas), vous n’avez pas ssortingctement besoin de guillemets, mais leur utilisation est une bonne habitude à former.

Quelqu’un a modifié ma réponse pour append un anglais incorrect, mais voici l’original, qui est inférieur à la réponse acceptée.

 . .bashrc 

Selon votre environnement, il suffit de taper

 bash 

peut aussi fonctionner.

Avec cela, vous n’aurez même pas à taper “source ~ / .bashrc”:

Incluez votre fichier bashrc:

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

Chaque fois que vous voulez modifier votre bashrc, lancez simplement l’alias ” rc

TL; DR

 . ~/.bashrc 

TMI

 . ~/.bashrc 

. est un raccourci BASH pour la commande intégrée “source”. – Brian Showalter

 source ~/.bashrc 

Alternative

 exec bash 
  • source est une commande shell intégrée qui exécute le contenu du fichier passé en argument, dans le shell actuel .
  • exec commande exec remplace le shell par un programme donné …
  • – WhoSayIn

type:

 source .bashrc 

j’utilise la commande suivante sur msysgit

 . ~/.bashrc 

version plus courte de

 source ~/.bashrc 

Cela fonctionnera également ..

 cd ~ source .bashrc 

J’ai remarqué que la commande pure exec bash préservera les variables d’environnement. Vous devez donc utiliser exec -c bash pour exécuter bash dans un environnement vide.

Par exemple, vous vous connectez à un bash et export A=1 , si vous exec bash , le A == 1 .

Si vous exec -cl bash , A est vide.

Je pense que c’est la meilleure façon de faire votre travail.

Pour moi, ce qui fonctionne quand je change le PATH est: exec "$BASH" --login

j’ai personnellement

alias ..='source ~/.bashrc'

dans mon bashrc, de sorte que je puisse juste utiliser “..” pour le recharger.