web-dev-qa-db-fra.com

Comment modifier mon PATH pour que les modifications soient disponibles dans chaque session de terminal

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

Il existe une surcharge d'informations source de confusion et éventuellement de conflit dans 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, etc ...) dois-je modifier et à quoi devrait ressembler la ou les nouvelles lignes?

54
Joshua Flanagan

La commande suivante ajoute un chemin à votre chemin actuel:

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

Si vous souhaitez que votre configuration exécute cette commande à chaque fois, vous pouvez la placer à plusieurs endroits. 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)

Notes

  • ~/.profile n'est chargé que si ~/.bash_profile et ~/.bash_login N'EXISTENT 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, , supprimez-le 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é à plusieurs reprises, chaque fois que vous ouvrez un nouveau terminal . Donc, un nouvel onglet dans gnome-terminal, un nouveau terminal virtuel, etc. Ainsi, même si vous ne vous reconnectez pas, .bashrc est chargé (et réinitialise ainsi son environnement) chaque fois que vous ouvrez un nouveau Shell.

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

  • Les éléments tels que les chemins doivent aller dans .profile si vous voulez qu’ils fonctionnent en dehors des sessions interactives. (dites quand vous appuyez sur Alt+F2 dans GNOME)

68
Ralf

Je l'ai fait fonctionner en modifiant ~/.profile

Il semble que l'ajout de ~/bin à mon chemin soit un mauvais exemple, car il existe 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 d'accès à chaque session, j'ajoute/modifie la ligne suivante à la fin de mon fichier .profile:

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

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

13
Joshua Flanagan

Pour recharger .profile et appliquer des modifications sans déconnexion/connexion, exécutez:

source ~/.profile
4
Bruno Freitas

Vous pouvez ajouter le chemin à /etc/environment, mais sachez qu'aucune extension Shell ne fonctionnera. la variable sera définie pour littéralement les caractères que vous entrez.

3
sagarchalise

Si vous avez ohmyzsh, allez dans votre répertoire personnel via le terminal et tapez

nano .zshrc

À la fin du fichier, entrez

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

Enfin, redémarrez votre terminal. Travaillé pour moi J'espère que c'était utile.

0
Vallie

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

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

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

Vous pouvez également modifier le fichier .profile également dans votre répertoire $HOME, y compris la ligne suivante:

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

Cela a fonctionné pour moi.

0
Denner Vieira