1124 votes

Comment recharger le fichier .bash_profile depuis la ligne de commande ?

Comment puis-je recharger .bash_profile de la ligne de commande ?

Je peux faire en sorte que le shell reconnaisse les modifications apportées à .bash_profile en quittant et en se reconnectant, mais j'aimerais pouvoir le faire à la demande.

2123voto

SiegeX Points 32614

Tapez simplement source ~/.bash_profile

Alternativement, si vous aimez économiser les frappes, vous pouvez taper . ~/.bash_profile

55 votes

Et si alias BASHRELOAD=". ~/.bash_profile" . Si vous le faites souvent, vous pouvez l'aliaser en tant que br .

1 votes

Y a-t-il une raison pour laquelle je devrais faire cela à chaque fois/session ? Je n'arrive pas à faire en sorte que les modifications apportées au fichier .bash_profile persistent, même si elles sont présentes dans le fichier lorsque je l'ouvre dans un éditeur. C'est déroutant.

3 votes

@erwinheiser Votre système charge-t-il le fichier ? Certains systèmes utilisent d'autres fichiers, comme ~/.bashrc.

120voto

Carl Norum Points 114072
. ~/.bash_profile

Assurez-vous juste que vous n'avez pas de dépendances sur l'état actuel là-dedans.

15 votes

Pourquoi cela fonctionne-t-il ? C'est-à-dire, quel est le . dans ce cas ?

11 votes

l'opérateur de point : . est simplement un alias pour l'option source commandement.

9 votes

@GrahamPHeath - à proprement parler, je pense que c'est l'inverse ; la . est plus ancien que source est.

34voto

Mohammad Anini Points 914

Tapez simplement :

. ~/.bash_profile

Cependant, si vous voulez le source pour qu'il soit exécuté automatiquement au démarrage du terminal au lieu de l'exécuter à chaque fois que vous ouvrez le terminal, vous pouvez ajouter . ~/.bash_profile à ~/.bashrc fichier.

Note :

Lorsque vous ouvrez un terminal, celui-ci démarre bash en mode interactif (sans login), ce qui signifie qu'il extrait les sources suivantes ~/.bashrc .

~/.bash_profile n'est sourcé par bash que lorsqu'il est démarré en mode de connexion interactif . Cela ne se produit généralement que lorsque vous vous connectez à la console ( Ctrl + Alt + F1 .. F6 ), ou en se connectant via ssh .

18voto

Ulukai Points 482

Si cela ne vous dérange pas de perdre l'historique de votre terminal shell actuel, vous pouvez aussi faire

bash -l

Cela ferait bifurquer votre shell et ouvrirait un autre processus enfant de bash. Le site -l indique à bash de s'exécuter en tant que shell de connexion, ceci est nécessaire parce que .bash_profile ne s'exécutera pas en tant que shell de non-login, pour plus d'informations sur ceci lire ici

Si vous souhaitez remplacer complètement la coque actuelle, vous pouvez également le faire :

exec bash -l

Ce qui précède ne va pas forker votre shell actuel mais le remplacer complètement, donc lorsque vous tapez exit il se terminera complètement, plutôt que de vous faire revenir au shell précédent.

0 votes

Vous ne perdrez pas votre historique si vous utilisez iterm2

17voto

Vous pouvez également utiliser cette commande pour recharger le ~/.bash_profile pour cet utilisateur. Assurez-vous d'utiliser le tiret.

su - username

6 votes

Cela invoquera un shell entier dans un shell, ce qui est loin d'être idéal. Les autres options réexécutent simplement le fichier concerné, ce qui signifie qu'elles (A) sont réellement pertinentes pour la question posée et (B) n'empilent pas les shells et ne rechargent pas d'autres choses qui ne devraient pas l'être (env vars, etc.). Voici sont des moyens appropriés pour remplacer carrément le shell actuel (sans imbrication), mais comme c'est hors sujet, je laisse les lecteurs intéressés chercher ailleurs.

3 votes

Vous ouvrez un autre shell, ce n'est pas un rechargement vous pourriez aussi bien ouvrir un nouveau terminal ou vous reconnecter

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X