Comment puis-je éditer le $ PATH sur linux?


45

J'utilise Ubuntu 9.04 Je dois ajouter un dossier à mon $ PATH. Je sais lire le chemin:

echo $PATH

Je veux pouvoir l'éditer et ajouter 2 autres chemins.

Merci


2
Une fois que vous en êtes capable, vous voudrez peut-être effectuer des opérations plus sophistiquées sur PATH: stackoverflow.com/questions/273909/…
dmckee

Appartient aux sites Unix ou Ubuntu.
Thomas Bratt

Réponses:


43

Pour stocker votre chemin de façon permanente, vous avez quelques options.

Je vous suggère de lire le wiki de la communauté Ubuntu sur les variables d'environnement, mais la réponse courte est le meilleur endroit ~/.profilepour votre paramètre PATH par utilisateur ou /etc/profilepour les paramètres globaux.

Faire quelque chose comme export PATH=$PATH:/your/new/path/here


8
Il est important de noter qu'il existe de nombreuses occasions où votre profil n'est pas exécuté (par exemple, lorsqu'un script est exécuté par cron). Si vous avez besoin qu'un chemin spécifique soit défini dans PATH, un script doit définir ce chemin. Cela dit, les scripts ne doivent jamais s’appuyer sur quoi que ce soit se trouvant dans leur chemin et doivent toujours utiliser des chemins absolus; tout le reste est un problème de sécurité.
Chas. Owens

14
PATH=$PATH:newPath1:newPAth2
export PATH

3
Je pense que vous pouvez faire tout cela sur une seule ligne si vous le souhaitez. export PATH = $ PATH: newPath1: newPAth2

2
Cela dépend du shell que vous utilisez. Sous Solaris (je sais que la question concerne Linux), l’un des shells (je ne me souviens plus du premier) exige que vous exportiez séparément de la définition de la valeur dans un script. Donc, je viens de prendre l'habitude de le faire sur 2 lignes.
Glen

7

Vous pouvez également mettre cela dans l'environnement global:

sudo emacs /etc/environment

Ajouter aux entrées déjà dans votre chemin

PATH="/path/to/file:/other/paths"

Recharger l'environnement

source /etc/environment

1
La modification du fichier d’environnement était le seul moyen de faire en sorte que PATH soit modifié et reste modifié.

2

On a déjà répondu à cette question, mais j'aimerais vous donner un petit conseil. Voici ce que je fais:

J'ai un répertoire appelé .bash.ddans mon dossier $HOMEet dans lequel je conserve un ensemble de scripts shell qui ont des effets sur mon environnement (par exemple, configurer correctement, modifier le chemin, définir mon invite, etc.). Je garde cette version sous contrôle de version en utilisant git , ce qui permet de revenir facilement à une version de travail de votre env, si vous gâchez quelque chose. Pour obtenir toutes les modifications, je source simplement tous les fichiers dans ce répertoire à la fin de mon .bashrc comme ceci:

for i in $HOME/.bash.d/*; do source $i; done
unset i

Cela vous donne un environnement très flexible que vous pouvez facilement modifier et restaurer + vous pouvez l'exporter vers d'autres machines simplement en utilisant git.


1

Une variante ci-dessus, si vous ne souhaitez pas modifier directement le fichier / etc / profile. Vous pouvez créer un nouveau fichier yourpath.sh dans le répertoire /etc/profile.d/ . Puis éditez ce fichier comme ça. Avec l'éditeur vim (mais n'hésitez pas à l'éditer avec un autre éditeur): vim /etc/profile.d/yourpath.sh

MYPATH='/your/new/path/'
export MYPATH
export PATH=$PATH:$MYPATH

: w rite and q uit et c'est fait, votre chemin a été modifié. Si vous utilisez le terminal, fermez-le et rouvrez-le. votre nouvelle variable sera mise à jour. Maintenant, c'est plus propre, vous pouvez supprimer ce fichier lorsque vous n'en avez plus besoin et qu'il n'interfère pas avec la configuration initiale.


(1) Tant que le produit PATHest exporté, il MYPATHn'est pas nécessaire de l'être (sauf si vous en avez besoin à d'autres fins). (2) Le moyen rapide de sauvegarder (écrire) et de quitter vim est ZZ- non :ou (entrée) requis.
Scott

0

echo PATH = $ PATH: chemin1: chemin2> tmp

Editez le fichier tmp avec votre éditeur de texte préféré pour que la valeur de PATH corresponde exactement à ce que vous souhaitez.

. ./tmp

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.