web-dev-qa-db-fra.com

export PATH ne fonctionne pas correctement

J'ai un problème avec $PATH export. Le seul endroit où j'ai modifié $PATH est /etc/environment:

Android_HOME="/opt/ADT/adt-bundle-linux-x86_64-20130522/sdk"
PROJECT_HOME="/home/tomaszchabinka/Dokumenty/tempFile/Android_stb"
PATH="/opt/gradle-1.10/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

Mais lorsque je tape terminal echo $PATH, il retourne:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/jvm/jdk1.7.0/bin

Je n'ai pas le répertoire /usr/lib/jvm/jdk1.7.0/bin alors je ne comprends pas pourquoi mon exportation $PATH ne fonctionne pas et d'où vient /usr/lib/jvm/jdk1.7.0/bin.

De plus, $Android_HOME et $PROJECT_HOME sont exportés correctement. seule l'exportation $ PATH ne fonctionne pas.

Quelqu'un peut-il m'aider?

2
pstrag

Il existe quelques endroits où vous pouvez définir $PATH:

  • /etc/environment est un fichier texte brut (et non un script) qui affecte tous les utilisateurs.
  • ~/.pam_environment - la même chose mais spécifique à l'utilisateur

bash exécute également des scripts pouvant être utilisés pour modifier $PATH:

  • ~/.profile est exécuté pour une session de connexion au shell (ne me demandez pas ce que cela signifie)
  • ~/.bashrc est exécuté pour les sessions de shell interactives autres que la connexion.
  • /etc/profile et /etc/bash.bashrc sont des alternatives système pour ~/.profile et ~/.bashrc

J'ai lu quelque part que /etc/environment est un endroit recommandé pour définir votre $PATH. Donc, je l'utilise habituellement. Mais votre chemin est probablement modifié dans l'un des autres endroits.

En passant, lorsque vous exécutez une commande avec Sudo, je pense qu’il utilise normalement root utilisateur $PATH (et non le $PATH de votre compte utilisateur non privilégié). Ainsi, ~/.pam_environment, ~/.profile et ~/.bashrc dans le répertoire /root peuvent également jouer un rôle.

2
Alexey