886 votes

Comment ajouter un répertoire au PATH?

Comment puis-je ajouter un répertoire au $PATH dans Ubuntu et rendre les modifications permanentes ?

4 votes

help.ubuntu.com/community/EnvironmentVariables Voici tout ce que vous devez savoir. J'ai découvert que beaucoup des informations ici étaient incorrectes ou tout du moins la méthode n'était pas suggérée. C'est un excellent morceau d'information qui vous permettra de savoir où modifier votre variable d'environnement en fonction de la raison pour laquelle vous le faites et exactement comment le faire sans tout gâcher (comme je l'ai fait en suivant certains des mauvais conseils mentionnés ci-dessus). Alors, merci pour tout le poisson !

558voto

ko-dos Points 5718

Utilisation de ~/.profile pour définir $PATH

Un chemin défini dans .bash_profile ne sera défini que dans un shell de connexion bash (bash -l). Si vous mettez votre chemin dans .profile, il sera disponible pour l'ensemble de votre session de bureau. Cela signifie que même metacity l'utilisera.

Par exemple dans ~/.profile:

if [ -d "$HOME/bin" ] ; then
  PATH="$PATH:$HOME/bin"
fi

Par ailleurs, vous pouvez vérifier la variable PATH d'un processus en regardant son environnement dans /proc/[pid]/environ (remplacez [pid] par le numéro de ps axf). Par exemple, utilisez grep -z "^PATH" /proc/[pid]/environ

Remarque :

bash en tant que shell de connexion ne parse pas .profile s'il existe à la place .bash_profile ou .bash_login. Selon man bash :

il recherche ~/.bash_profile, ~/.bash_login et ~/.profile, dans cet ordre, et lit et exécute les commandes du premier qui existe et est lisible.

Consultez les réponses ci-dessous pour des informations sur .pam_environment, ou .bashrc pour les shells interactifs non connectés, ou définissez la valeur globalement pour tous les utilisateurs en mettant un script dans /etc/profile.d/ ou utilisez /etc/X11/Xsession.d/ pour affecter la session des gestionnaires d'affichage.

5 votes

Génial, ça a fonctionné. J'ai vu où il ajoutera automatiquement le répertoire bin si je le fais, donc j'ai juste utilisé cela au lieu de scripts. Merci.

7 votes

Sur Xbunutu, le fichier .profile n'est pas exécuté, donc je l'ai mis dans .bashrc et ça fonctionne.

15 votes

Ce morceau de documentation est très bien fait : Documentation officielle sur les variables d'environnement. Pensez à la lire (sans oublier qu'elle est mise à jour à la dernière version des règles pour ajouter des valeurs aux variables d'environnement).

407voto

Ophidian Points 4175

Modifiez .bashrc dans votre répertoire personnel et ajoutez la ligne suivante :

export PATH="/chemin/vers/dir:$PATH"

Vous devrez sourcer votre .bashrc ou vous déconnecter/connecter (ou redémarrer le terminal) pour que les changements prennent effet. Pour sourcer votre .bashrc, tapez simplement

$ source ~/.bashrc

4 votes

Comment "sourcer" votre .bashrc? Comment "redémarrer le terminal"?

5 votes

En bash, il suffit de taper '. .bashrc'

1 votes

Je supposais que vous étiez dans votre répertoire personnel, puisque c'est là que se trouve le fichier .bashrc que vous souhaitez modifier.

173voto

ish Points 134738

L'endroit recommandé pour définir des variables d'environnement permanentes, à l'échelle du système, s'appliquant à tous les utilisateurs est dans :

/etc/environment

(c'est là où le PATH par défaut est défini)

Cela fonctionnera sur le bureau ou en console, dans gnome-terminal ou TTY, par temps de pluie ou de beau temps ;)

  • Pour éditer, ouvrez le terminal et tapez :

    sudoedit /etc/environment

    (ouvrir le fichier en utilisant sudo dans votre éditeur de texte préféré)

Pour que cela fonctionne sans redémarrer, exécutez . /etc/environment ou source /etc/environment. Comme ce fichier est juste un simple script, il s'exécutera et attribuera le nouveau chemin à la variable d'environnement PATH. Pour vérifier, exécutez env et vérifiez la valeur de PATH dans la liste.

Connexe :

12 votes

Et ensuite vous devez redémarrer pour que les changements prennent effet...

3 votes

C'est exactement ce dont j'avais besoin. Approvisionner une image vm jetable via Vagrant et ajouter node et npm au chemin.

10 votes

Pour prendre en compte les modifications effectuées, exécutez . /etc/environnement (oui, point, un espace et /etc/environnement). Comme ce fichier est juste un simple script, il s'exécutera et attribuera le nouveau chemin à la variable d'environnement PATH. Pour vérifier, exécutez env et observez la valeur PATH dans la liste.

66voto

woto Points 777

Je pense que la façon canonique sur Ubuntu est:

  • créer un nouveau fichier sous /etc/profile.d/

    sudo vi /etc/profile.d/SCRIPT_NAME.sh
  • ajouter ceci:

    export PATH="VOTRE_CHEMIN_SANS_BARRE_OBLIQUE:$PATH"
  • et lui donner l'autorisation d'exécution

    sudo chmod a+x /etc/profile.d/SCRIPT_NAME.sh

27 votes

Il est généralement plus sûr d'ajouter votre chemin personnalisé à la fin de PATH plutôt qu'au début. Cela évite de remplacer accidentellement des commandes système par vos programmes (ou par des programmes malveillants de quelqu'un d'autre). Cela évite également beaucoup de confusion lorsque quelqu'un d'autre travaille sur votre système (ou vous donne des conseils) et obtient des résultats inattendus à partir de commandes que vous avez "remplacées".

56voto

Manoj Singh Points 2441

Pour les débutants complets (comme je le suis) qui sont plus à l'aise avec l'interface graphique :

  1. Ouvrez votre dossier $HOME.
  2. Allez dans VueAfficher les fichiers cachés ou appuyez sur Ctrl + H.
  3. Cliquez avec le bouton droit sur .profile et cliquez sur Ouvrir avec un éditeur de texte.
  4. Faites défiler jusqu'au bas et ajoutez PATH="$PATH:/my/path/foo".
  5. Enregistrez.
  6. Déconnectez-vous et reconnectez-vous pour appliquer les changements (laissez Ubuntu charger effectivement .profile).

5 votes

Éditer le fichier .profile n'est plus recommandé. Vous pouvez toujours utiliser cette méthode pour modifier le fichier .pam_environment voir: help.ubuntu.com/community/EnvironmentVariables

0 votes

Remerciez @PulsarBlow! Je ne suis pas vraiment sûr de la différence et de l'avantage exacts cependant... Voici l'URL directe de la section pertinente : help.ubuntu.com/community/…

3 votes

Cette réponse a causé l'arrêt de connexion à mon système en raison de tous les chemins qui ont été remplacés. Utilisant Ubuntu 16.04.

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