Variable permanente de chemin


38

Comment vais-je rendre cette /media/De Soft/mongodb/binvariable PATH permanente?

Tout le monde dit " export PATH=$PATH:media/De\ Soft/mongodb/binà votre ~/.profile, ou .bashrc, ou .zshenvselon votre shell".

Je ne sais pas ce qui est ~/.profile, ou .bashrc, ou .zshenv. Que font-ils réellement?

Comment vais-je ajouter export PATH=$PATH:my/pathà mon fichier .profile / .bashrc / .zshenv?

J'utilise Ubuntu 14.04 LTS 64 bits avec terminal par défaut.

Réponses:


70

Ce sont des fichiers de configuration. Une manière:

  • Ouvrir une fenêtre de terminal en utilisant Ctrl + Alt + T
  • Lancer la commande gedit ~/.profile
  • Ajouter la ligne

    export PATH=$PATH:/media/De\ Soft/mongodb/bin

    vers le bas et économisez

  • Se déconnecter et se reconnecter

Modifier:

Un moyen plus sûr consiste à utiliser des guillemets. Cela est nécessaire si un ou plusieurs répertoires de l'original PATHcontiennent des espaces. Alors:

export PATH="$PATH:/media/De Soft/mongodb/bin"

@GunnarHjalmarsson, dois-je vraiment exporter PATH var? Peut-être que cela se fait par défaut dans un autre script? J'ai vérifié par ~ / .profile et une variable PATH est présente, mais elle n'est pas explicitement exportée: PATH = ~ / .local / bin: $ JAVA_HOME / bin: $ PATH
yuranos87

4
@ yuranos87: ​​Non, vous avez raison. lors de la modification PATHdans ~/.profile, l' exportation est redondant, puisque PATHest déjà une variable d'environnement.
Gunnar Hjalmarsson

1
Vous n'avez pas besoin de vous déconnecter et de vous reconnecter. Utilisez source ~/.profile.
timbo

1
@ Timbo: cela ne rend pas la variable disponible pour les processus déjà démarrés dans la session (sauf pour le terminal actuel).
Gunnar Hjalmarsson le

1
Vous n'avez pas besoin d'un guillemet dans la chaîne comme dans export PATH="$PATH:/media/De\ Soft/mongodb/bin"? Est-ce optionnel?
Bruno Bentzen

4

Tapez ce qui suit dans une fenêtre de terminal

export PATH=/media/De\ Soft/mongodb/bin:$PATH 

Fermez le terminal et redémarrez l'ordinateur. Le chemin doit inclure / media / De \ Soft / mongodb / bin lorsque vous tapez ceci dans le terminal:

echo $PATH

13
Cela ne fonctionne que pour la session de terminal en cours. Il doit être dans ~/.profile(ou ~/.bashrcsur des distributions GNU / Linux communes ... même ~/.bash_profile) pour être exécuté à chaque chargement de console.
Alejandro Iván

D'accord. mais lors du redémarrage du système, il est chargé dans la variable de chemin.
Nivedita Velagaleti

10
@NiveditaVelagaleti: Non, sauf si vous le rendez persistant via un fichier de configuration. La commande de terminal ne modifie pas de manière PATHpersistante.
Gunnar Hjalmarsson

2

Pour changer de façon permanente, PATHvous devez modifier le /etc/environmentfichier. Faites une sauvegarde avant de modifier:

sudo cp /etc/environment /etc/environment.bak
sudo nano /etc/environment

exemple de sortie:

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

Les chemins sont délimités par, :donc pour ajouter un nouveau chemin, dites x/y/zceci à quoi notre /etc/environmentapparence ressemble:

PATH="x/y/z:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
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.