Comment puis-je recharger.bashrc sans se déconnecter et revenir?

si je modifie .bashrc , Comment puis-je le recharger sans me déconnecter et revenir?

1239
demandé sur shgnInc 2010-03-25 20:58:36

14 réponses

il suffit d'entrer la commande:

source ~/.bashrc

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

. ~/.bashrc
2017
répondu George Hawkins 2014-10-09 17:47:54

ou vous pouvez utiliser"; 151920920"

exec bash

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

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

202
répondu WhoSayIn 2015-10-01 08:59:00

à complément et Contraste les deux réponses les plus populaires, . ~/.bashrc et exec bash :

les deux solutions effectivement recharger ~/.bashrc , mais il y a des différences:

  • . ~/.bashrc ou source ~/.bashrc sera preserve votre shell en cours :

    • sauf pour les modifications qui rechargent ~/.bashrc dans le shell actuel ( sourcing ) fait, le shell actuel et son état sont préservé , qui comprend des variables d'environnement, variables de shell, options de shell, fonctions de shell, et l'histoire de commande.
  • exec bash , ou, plus fermement, exec "$BASH" [1] , est-ce que remplace votre shell actuel par une nouvelle instance, et donc seulement préservez votre shell actuel variables d'environnement (y compris celles que vous avez définies ad-hoc).

    • en d'autres termes: toute modification ad hoc du shell actuel en termes de variables de shell, les fonctions du shell, les options du shell, l'historique des commandes sont perdues.

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 différent bash exécutable que celui qui a démarré le shell courant, s'il se trouve qu'il existe dans un répertoire répertorié plus tôt dans le $PATH . Comme la variable spéciale $BASH contient toujours le chemin complet de l'exécutable qui a démarré le shell courant, exec "$BASH" est garanti d'utiliser l'exécutable même .

Une note re "..." autour de $BASH : la double citation garantit que la valeur variable est utilisée telle quelle, sans interprétation par Bash; si la valeur n'a pas d'espaces intégrés ou d'autres métacharges de shell (ce qui n'est pas probable dans ce cas), vous n'avez pas strictement besoin des guillemets, mais leur utilisation est une bonne habitude à prendre forme.

78
répondu mklement0 2018-09-13 01:27:54

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

. .bashrc
43
répondu Randy Proctor 2018-01-25 13:26:56

en fonction de votre environnement, il suffit de taper

bash

peut aussi fonctionner.

15
répondu James 2012-03-08 11:51:51

avec ceci, vous ne même pas besoin de taper" source ~/.bashrc":

Inclure votre fichier bashrc:

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

chaque fois que vous voulez éditer votre bashrc, il vous suffit d'exécuter l'alias " rc "

13
répondu Roy Lin 2016-05-26 22:24:02
. ~/.bashrc

. est un bâtiment à commande POSIX


Alternatives

source ~/.bashrc

source est un synonyme de point/période . en bash, mais pas en POSIX sh, donc pour une compatibilité maximale utiliser la période.

exec bash
  • exec commande remplace le shell par un programme donné... – WhoSayIn
6
répondu Geoffrey Hale 2018-09-14 17:36:26

type:

source .bashrc
3
répondu jwismar 2010-03-25 18:00:15

j'utilise la commande suivante sur msysgit

. ~/.bashrc

version plus courte de

source ~/.bashrc
2
répondu Sojan V Jose 2014-10-02 20:32:33

Cela fonctionnera également..

cd ~
source .bashrc
1
répondu kirti 2015-03-21 19:16:52

j'ai remarqué que la commande pure exec bash préserve les variables d'environnement, il faut 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.

0
répondu CatDog 2018-05-22 13:53:48

pour moi ce qui fonctionne quand je change le chemin est: exec "$BASH" --login

0
répondu Cecília Regina 2018-08-08 20:13:16

selon votre environnement, vous voudrez peut-être ajouter des scripts .bashrc se charge automatiquement lorsque vous ouvrez une session SSH. J'ai récemment fait une migration vers un serveur Ubuntu, et là, .de profil, pas .bashrc ou .bash_profile est chargé par défaut. Pour exécuter tous les scripts .bashrc, j'ai dû exécuter source ~/.bashrc chaque fois qu'une session était ouverte, ce qui n'aide pas quand on exécute des déploiements à distance.

pour avoir votre .bashrc charge automatiquement lors de l'ouverture d'une session, essayez d'ajouter ce pour .profil:

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

rouvre votre session, et elle devrait charger tous les chemins/scripts que vous avez .bashrc.

0
répondu karolus 2018-10-04 12:11:49

j'ai personnellement

alias ..='source ~/.bashrc'

dans mon bashrc, de sorte que je peux utiliser ".."pour le recharger.

-2
répondu Flo 2018-01-20 03:49:20