Si j'apporte des modifications à .bashrc
, comment puis-je le recharger sans me déconnecter et y revenir?
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)
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 )
Pour compléter et contraster les deux réponses les plus populaires, . ~/.bashrc
et exec bash
:
Les deux solutions effectivement recharger _~/.bashrc
_, mais il existe des différences:
_. ~/.bashrc
_ ou _source ~/.bashrc
_ va conserver votre shell actuel :
~/.bashrc
_ dans le shell actuel (sourcing), le shell actuel et son état sont preserve, qui inclut les variables d'environnement, les variables Shell, les options Shell, les fonctions Shell et l'historique des commandes._exec bash
_ ou, plus robuste, _exec "$BASH"
_[1], va remplacer votre Shell actuel avec une nouvelle instance, et donc only conservez les variables d'environnement de votre shell actuel (y compris celles que vous avez définies de manière ad-hoc).
Selon vos besoins, l’une ou l’autre approche peut être privilégiée.
[1] _exec bash
_ pourrait en théorie exécuter un exécutable différent bash
que celui qui a démarré le shell actuel, s'il existe dans un répertoire répertorié précédemment dans la liste _$PATH
_. Étant donné que la variable spéciale _$BASH
_ contient toujours le chemin complet de l'exécutable qui a démarré le shell actuel, il est garanti que _exec "$BASH"
_ utilise l'exécutable same.
Une remarque concernant _"..."
_ autour de _$BASH
_: les guillemets doubles garantissent que la valeur de la variable est utilisée telle quelle, sans interprétation par Bash; Si la valeur ne contient pas d'espaces imbriqués ou d'autres métacaractères Shell (ce qui est peu probable dans ce cas), vous n'avez pas strictement besoin de guillemets doubles, mais leur utilisation est une bonne habitude à former.
Quelqu'un a modifié ma réponse pour ajouter un anglais incorrect, mais voici l'original, ce qui est inférieur à la réponse acceptée.
. .bashrc
En fonction de votre environnement, il suffit de taper
bash
peut aussi travailler.
Avec cela, vous ne serez pas même devez taper "source ~/.bashrc":
Incluez votre fichier bashrc:
alias rc="vim ~/.bashrc && source ~/.bashrc"
Chaque fois que vous voulez éditer votre bashrc, lancez simplement l’alias "rc"
. ~/.bashrc
source ~/.bashrc
exec bash
exec
commande remplace le shell par un programme donné ... - WhoSayIn
En fonction de votre environnement, vous souhaiterez peut-être ajouter des scripts pour que .bashrc se charge automatiquement lorsque vous ouvrez une session SSH. J'ai récemment effectué une migration vers un serveur exécutant Ubuntu et, là-bas, le fichier .profile, pas .bashrc ou .bash_profile, est chargé par défaut. Pour exécuter des scripts dans .bashrc, je devais exécuter source ~/.bashrc
chaque fois qu'une session était ouverte, ce qui n'aide pas lors de l'exécution de déploiements distants.
Pour que votre .bashrc soit chargé automatiquement lors de l'ouverture d'une session, essayez d'ajouter ceci à .profile:
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
Rouvrez votre session et il devrait charger tous les chemins/scripts que vous avez dans .bashrc.
Pour moi, ce qui fonctionne quand je change le PATH est: exec "$BASH" --login
J'ai utilisé easyengine pour configurer mon serveur basé sur le cloud vultr.
J'ai trouvé mon fichier bash à /etc/bash.bashrc
.
Alors source /etc/bash.bashrc
a fait le tour pour moi!
mettre à jour
Lors de la configuration d'un serveur nu (Ubuntu 16.04), vous pouvez utiliser les informations ci-dessus lorsque vous n'avez pas encore défini de nom d'utilisateur et que vous vous connectez via root.
Il est préférable de créer un utilisateur (avec les privilèges Sudo) et de vous connecter sous ce nom d'utilisateur.
Ceci créera un répertoire pour vos paramètres, y compris les fichiers .profile et .bashrc.
https://linuxize.com/post/how-to-create-a-Sudo-user-on-ubuntu/
Maintenant, vous allez éditer et (et "source") le fichier ~/.bashrc
.
Sur mon serveur, il se trouvait à l'adresse /home/your_username/.bashrc
(où your_username
est en fait le nouveau nom d'utilisateur que vous avez créé ci-dessus et auquel vous vous connectez maintenant)
type:
source ~/.bashrc
ou, sous forme abrégée:
. ~/.bashrc
exec bash est un excellent moyen de réexécuter et de lancer un nouveau shell pour remplacer current. Juste pour ajouter à la réponse, $ Shell renvoie le shell actuel qui est bash. En utilisant ce qui suit, il rechargera le shell actuel, et pas seulement bash.
exec $Shell -l;
Cela fonctionnera aussi ..
cd ~
source .bashrc
j'utilise la commande suivante sur msysgit
. ~/.bashrc
version plus courte de
source ~/.bashrc
J'ai remarqué que la pure commande exec bash
préserve 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.
En supposant un shell interactif, vous souhaitez conserver l’historique actuel de vos commandes et charger également le fichier/etc/profile path_helper), ajoute votre historique de commandes et effectuez un exec de bash avec l'option login ('-l'):
history -a && exec bash -l