web-dev-qa-db-fra.com

Dans quel fichier système la commande 'export' apporte-t-elle des modifications?

J'ai installé Java-8 en utilisant un PPA. Après cela, j'ai donné une commande:

export Java_HOME=/usr/lib/jvm/Java-8-Oracle

J'avais entendu dire quelque part que cette commande effectuait des modifications temporaires. Mais après plusieurs déconnexions et connexions, ces commandes ci-dessous fonctionnent toujours (à cause de cette commande export ...):

Java -version
javac -version

Mais quand je donne la commande:

export -p

Il affiche une liste de variables d’environnement, mais dans cette liste, n’affiche pas la variable Java_HOME. De plus, je me demande comment les commandes Java et javac fonctionnent toujours!

Quelqu'un peut-il me dire dans quelle commande de fichier export apporter des modifications? Sont-ils temporaires ou permanents? Et quoi d'autre se passe ci-dessus? S'il vous plaît élaborer!

2
Ankur Shah

export est une commande shell. Cela affecte l'instance en cours d'exécution du shell. Il ne modifie aucun fichier. Les modifications sont temporaires et ne sont effectives que jusqu'à la fermeture du shell. Une fois que vous avez défini une nouvelle variable dans le shell, vous pouvez la export pour la rendre disponible aux autres programmes lancés à partir de celle-ci. Voir:

Java et javac peuvent fonctionner car vous avez installé Java à l'aide d'un PPA, et l'installation a automatiquement ajouté ces commandes à la commande PATH ( What is the PATH variable d’environnement et comment y ajouter? ). Spécifiquement, le simple fait de vérifier la version ne devrait pas nécessiter la variable Java_HOME. Que vous le définissiez ou non, cela ne fait aucune différence. Et apparemment Java_HOME est utilisé par d'autres applications , pas le compilateur Java ni la machine virtuelle Java.

6
muru