web-dev-qa-db-fra.com

Comment ajouter un répertoire au PATH?

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

690
justingrif

Utiliser ~/.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 votre session de bureau complète. Cela signifie que même la métacité l'utilisera.

Par exemple ~/.profile:

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

Btw, 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 connexion Shell n'analyse pas .profile s'il existe soit .bash_profile ou .bash_login. De man bash:

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

Voir réponses ci-dessous pour plus d'informations sur .pam_environment ou .bashrc pour les interpréteurs de commandes interactifs autres que les identifiants, ou définissez la valeur de manière globale pour tous les utilisateurs en plaçant un script dans /etc/profile.d/ ou utilisez /etc/X11/Xsession.d/ pour affecter la session des gestionnaires d'affichage.

432
ko-dos

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

export PATH="/path/to/dir:$PATH"

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

$ source ~/.bashrc
290
Ophidian

L'emplacement recommandé pour définir les variables d'environnement permanentes applicables à tous les utilisateurs est:

/etc/environment

(qui est où la valeur par défaut PATH est définie)

Cela fonctionnera dans le bureau ou la console, gnome-terminal ou TTY, beau temps mauvais temps;)

  • Pour éditer, appuyez sur Alt+F2 et type:

    gksudo gedit /etc/environment
    

    (ou ouvrez le fichier en utilisant Sudo dans votre éditeur de texte préféré)

Pour effectuer des modifications, exécutez . /etc/environment. Comme ce fichier n'est qu'un simple script, il s'exécutera et affectera le nouveau chemin d'accès à la variable d'environnement PATH. Pour vérifier l'exécution env et voir la valeur PATH dans la liste.

Connexes:

114
ish

Je pense que la manière canonique dans Ubuntu est:

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

    Sudo vi /etc/profile.d/SCRIPT_NAME.sh
    
  • ajouter là:

    export PATH="YOUR_PATH_WITHOUT_TRAILING_SLASH:$PATH"
    
  • et lui donner la permission d'exécution

    Sudo chmod a+x /etc/profile.d/SCRIPT_NAME.sh
    
57
woto

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

  1. Ouvrez votre dossier $HOME.
  2. Allez à VoirAfficher les fichiers cachés ou appuyez sur Ctrl + H.
  3. Faites un clic droit sur .profile et cliquez sur Ouvrir avec l'éditeur de texte.
  4. Faites défiler vers le bas et ajoutez PATH="$PATH:/my/path/foo".
  5. Sauvegarder.
  6. Déconnectez-vous et reconnectez-vous pour appliquer les modifications (laissez Ubuntu charger .profile).
47
dain

Pour les variables d'environnement persistantes disponibles pour des utilisateurs particuliers uniquement. Je recommande fortement la documentation officielle Ubuntu.

https://help.ubuntu.com/community/EnvironmentVariables

En me référant à la documentation ci-dessus, j'ai configuré mes outils de chemin d'accès du SDK Android par:

  1. création du fichier ~/.pam_environment dans le répertoire de base.
  2. dont le contenu est PATH DEFAULT=${PATH}:~/Android-sdk-linux/tools.
  3. un chemin utilisateur personnalisé supplémentaire peut être ajouté en séparant les chemins avec deux points (:) .
  4. cela nécessite de vous reconnecter , ce qui signifie que vous devez vous déconnecter et vous reconnecter à l'environnement de bureau.
45
Eduardo B.

Mettez cette ligne dans votre fichier ~/.bashrc.

Il est recherché chaque fois que vous ouvrez un terminal

EDIT: Basé sur les commentaires ci-dessous, pour un réglage plus général qui s'appliquera à tous les shells (y compris lorsque Alt-F2 dans Unity), ajoutez la ligne à votre fichier ~/.profile. Cependant, vous ne devriez probablement pas faire les deux, car le chemin sera ajouté deux fois à votre environnement PATHsi vous ouvrez un terminal.

26
Ian B.

Pour l’adapter à l’ensemble du système, ajoutez la ligne export PATH=/path/you're/adding:$PATH à la fin de /etc/profile.

Pour ajouter le répertoire uniquement à l'utilisateur connecté, ajoutez la même ligne à ~/.bash_profile.

15
ennuikiller

L'ajouter à .bashrc fonctionnera, mais je pense que la méthode la plus traditionnelle de configuration de vos variables de chemin est le .bash_profile en ajoutant les lignes suivantes.

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

D'après ce fil , il semble que le comportement d'Ubuntu soit légèrement différent de celui de RedHat et des clones.

14
3dinfluence

Dans le terminal, cd to the_directory_you_want_to_add_in_the_path

echo "export PATH=$(pwd):\${PATH}" >> ~/.bashrc

Ce n'était pas mon idée. J'ai trouvé cette façon d'exporter le chemin à cette blog ici .

10
Vittorio Cecchetto
Sudo vi /etc/profile.d/SCRIPT_NAME.sh

ajouter là

export PATH=YOUR_PATH_WITHOUT_TRAILING_SLASH:$PATH
8
Clipping Path

Chaque fois que j'installe mon dossier de scripts BASH, je suis le modèle de test pour un dossier $HOME/bin qui se trouve dans la plupart des fichiers .profile des versions récentes d'Ubuntu. Je pose un test qui ressemble à

if [ -d "/usr/scripts" ]; then
   PATH="/usr/scripts:$PATH"
fi

Cela fonctionne à peu près à 100% du temps, et me laisse libre de le changer dans un éditeur de texte avec un rapide "Remplacer tout" si jamais je décidais de déplacer /scripts quelque part plus près de mon dossier $HOME. Je ne l'ai pas encore fait dans 6 installations Ubuntu, mais il y a "toujours demain". S

BZT

6
Silversleevesx

La méthode recommandée pour modifier votre PATHest d'utiliser le fichier /etc/environment.

Exemple de sortie de /etc/environment:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

Par exemple, pour ajouter le nouveau chemin de /home/username/mydir

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/username/mydir"

Ensuite, redémarrez votre PC.


Variables d'environnement à l'échelle du système

Le fichier/etc/environment est un fichier approprié pour les paramètres de variable d'environnement qui affectent le système dans son ensemble (plutôt que seulement un utilisateur particulier). Une alternative consiste à créer un fichier à cette fin dans le répertoire /etc/profile.d.

/etc/environment

Ce fichier est spécifiquement conçu pour les paramètres de variable d'environnement à l'échelle du système. Ce n'est pas un fichier de script, mais plutôt une expression d'affectation, une par ligne.

Remarque: Le développement de variable ne fonctionne pas dans/etc/environment.

Plus d'informations peuvent être trouvées ici: EnvironmentVariables

4
Benny

Ouvrez votre terminal, tapez gedit .profile et insérez ce qui suit:

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$PATH:$HOME/bin"
fi

 #the following line add Bin where you dont have a Bin folder on your $HOME
    PATH="$PATH:/home/mongo/Documents/mongodb-linux-i686-2.2.2/bin"

Fermer et ouvrir le terminal, cela devrait fonctionner.

4
djavier

Mettez-le dans votre ~/.bashrc ou whatevershell vous utilisez rc (ou pour être mentionné plus tôt ~/.profile) ET ~/.xsessionrc de sorte qu'il fonctionnera également dans X (en dehors de Shell).

2
Mikaela

Même si les scripts système ne l'utilisent pas, dans tous les cas où l'on souhaite ajouter un chemin (par exemple, $HOME/bin) à la variable d'environnement PATH, il convient d'utiliser

PATH="${PATH:+${PATH}:}$HOME/bin"

pour ajouter (au lieu de PATH="$PATH:$HOME/bin"), et

PATH="$HOME/bin${PATH:+:${PATH}}"

pour l'ajout anticipé (au lieu de PATH="$HOME/bin:$PATH").

Ceci évite les deux-points fantômes parasites lorsque $PATH est initialement vide, ce qui peut avoir des effets indésirables.

Voir par exemple https://unix.stackexchange.com/questions/162891/append-to-path-like-variable-without-creating-leating-leading-colon-if-unset

1
sancho.s