75 votes

Comment modifier mon PATH pour que les changements soient disponibles dans chaque session du terminal ?

Je veux ajouter un répertoire à mon chemin de recherche. Je sais que je dois modifier le PATH variable d'environnement. Cependant, je veux que le changement soit permanent, de sorte qu'il soit toujours en vigueur, pour chaque fenêtre de Terminal (bash) que j'ouvre.

Il y a une surcharge d'informations confuses et éventuellement contradictoires dans le https://help.ubuntu.com/community/EnvironmentVariables

J'utilise Ubuntu 10.04. Supposons que je veuille ajouter /usr/local/foo à mon PATH . Quel fichier ( .bashrc , .profile , .bash_login ) que je dois modifier et à quoi doit ressembler la ou les nouvelles lignes ?

95voto

Michael Sharek Points 3877

La commande suivante ajoute un chemin à votre chemin actuel :

export PATH=$PATH:/my/custom/path

Si vous voulez que votre installation exécute cette commande à chaque fois, il y a un certain nombre d'endroits où vous pouvez la placer. Lorsque vous vous connectez, les scripts suivants seront exécutés dans cet ordre :

/etc/profile      (which starts by loading everything in /etc/profile.d)
~/.profile        (which starts by loading ~/.bashrc if you are running bash)

Notas

  • ~/.profile n'est chargé que si ~/.bash_profile y ~/.bash_login N'EXISTE PAS. Sinon, au moins bash, les chargera à la place. Il est conseillé d'utiliser .profile et non les scripts spécifiques à bash. Donc, si dans ces tentatives vous avez créé .bash_login , s'il vous plaît, supprimez-la maintenant.

  • ~/.bashrc n'est chargé que si vous exécutez une session interactive. (quelque chose avec une invite où vous pouvez réellement taper quelque chose).

  • ~/.bashrc est chargé encore et encore, à chaque fois que vous ouvrez un nouveau terminal . Donc un nouvel onglet dans gnome-terminal, un nouveau terminal virtuel, etc. Donc même si vous ne vous reconnectez pas, .bashrc est chargé (et donc réinitialise son environnement) chaque fois que vous ouvrez un nouveau Shell.

  • Les choses comme byobu devraient vraiment aller dans .profile (sinon cela ne fonctionnera pas ;-)

  • Les éléments tels que les chemins doivent être placés dans .profile si vous voulez qu'ils travaillent en dehors des sessions interactives. (disons que lorsque vous appuyez sur Alt + F2 dans GNOME)

20voto

Andor Points 581

J'ai réussi à le faire fonctionner en modifiant ~/.profile

Il semble que l'ajout de ~/bin à mon chemin était un mauvais exemple, car il y a déjà du code dans ~/.profile pour le faire automatiquement, si le répertoire existe.

Pour ajouter le répertoire usr/local/foo à mon chemin pour chaque session à venir, j'ajoute/modifie la ligne suivante à la fin de mon .profile :

export PATH=$PATH:/usr/local/foo

Cependant, pour que cela prenne effet, je devais me déconnecter et me reconnecter (fermer simplement la fenêtre du terminal et en ouvrir une nouvelle ne fonctionnait PAS).

7voto

Bruno Freitas Points 79

Pour recharger .profile et prendre en compte les changements sans se déconnecter, exécuter :

source ~/.profile

3voto

rck Points 151

Vous pouvez ajouter le chemin d'accès à /etc/environment mais sachez qu'aucune expansion Shell ne fonctionnera ; la variable sera définie par les caractères que vous saisissez.

2voto

Sfynx Points 169

Vous pouvez modifier le .bashrc dans votre $HOME répertoire.

A la toute fin de ce fichier, ajoutez la ligne :

export PATH="$HOME/directory_to_include_in_path/:$PATH"

Vous pouvez également modifier le .profile également dans votre $HOME en incluant la ligne suivante :

PATH="$HOME/directory_to_include_in_path/:$PATH"

Cela a marché pour moi.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X