La commande export sous Linux est utilisée pour créer des variables d'environnement. Vous pouvez l'utiliser comme ceci :
export myvar
ou un raccourci comme celui-ci pour lui attribuer une valeur immédiatement :
export myvar=5
Vous pouvez voir la valeur des variables exportées avec la commande echo :
echo $myvar
Pour rendre les modifications permanentes, vous devez l'ajouter au fichier ~/.bashrc.
Ce n'était qu'un bref résumé. Voyons-le en détail pour mieux le comprendre.
Comprendre le fonctionnement de la commande d'exportation
Dans l'exemple ci-dessous, je déclare une variable shell var et lui attribue la valeur 3. C'est une variable shell pour l'instant.
[email protected]:~$ var=3
[email protected]:~$ echo $var
3
Si je quitte le terminal et que j'ouvre un nouveau terminal, cette variable shell disparaîtra. Si je veux utiliser cette variable dans un script shell, cela ne fonctionnera pas. De même, si je change d'utilisateur (et donc initie un nouveau shell avec cet utilisateur), cette variable shell ne sera pas disponible :
[email protected]:~$ su prakash
Password:
[email protected]:/home/abhishek$ echo $var
Maintenant, revenons à l'utilisateur précédent (et donc au shell précédent où j'ai déclaré la variable shell). Vous pouvez voir que la variable existe toujours ici (car nous n'avons pas encore terminé cette session shell) :
[email protected]:/home/abhishek$ exit
exit
[email protected]:~$ echo $var
3
Donc, maintenant, si j'utilise la commande export sur la variable var
ici, elle deviendra une variable d'environnement et elle sera disponible pour tous les sous-shells, utilisateurs et scripts shell de cette session.
[email protected]:~$ export var
[email protected]:~$ echo $var
3
[email protected]:~$ su prakash
Password:
[email protected]:/home/abhishek$ echo $var
3
Vous pouvez vérifier toutes les variables d'environnement à l'aide de la commande printenv :
printenv
Rendre les variables shell exportées "permanentes" avec le fichier bashrc
Mais la lutte ne s'arrête pas là. Si vous fermez la session, quittez le terminal, déconnectez-vous ou redémarrez votre système, votre variable d'environnement disparaîtra à nouveau.
C'est pourquoi il est courant d'ajouter les commandes d'exportation au fichier de configuration d'exécution (rc) de votre shell.
Chaque shell a ce fichier rc situé dans le répertoire personnel de l'utilisateur qui est utilisé pour déterminer les variables et autres configurations au démarrage du shell. En tant qu'utilisateur, vous pouvez utiliser ce fichier rc pour personnaliser votre shell et son comportement.
Si vous utilisez bash shell, vous devriez avoir un fichier bashrc à ~/.bashrc . Vous pouvez soit modifier ce fichier dans un éditeur de texte comme Vim, soit simplement ajouter export var=3 (ou tout ce que vous exportez) dans ce fichier.
Une fois cela fait, vous devez utiliser la commande source pour rendre les modifications disponibles immédiatement.
Une bonne pratique consiste à conserver toutes les variables d'environnement définies par l'utilisateur au même endroit.
Pourquoi utiliser la commande d'exportation ?
L'une des utilisations les plus courantes de la commande d'exportation est lorsque vous souhaitez ajouter quelque chose au chemin afin que votre système Linux trouve le certain fichier de commande/exécutable.
Par exemple, si vous avez installé maven et que vous souhaitez pouvoir l'exécuter, vous devez ajouter l'emplacement du répertoire des exécutables maven au chemin comme ceci :
export PATH=/opt/maven/bin:$PATH
Qu'est ce que ça fait? Il ajoute cet emplacement de répertoire au chemin. Lorsque vous essayez d'exécuter une commande sous Linux, votre système recherche son exécutable (généralement dans le répertoire bin) dans les répertoires mentionnés dans la variable PATH.
[email protected]:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
[email protected]:~$ export PATH=/opt/maven/bin:$PATH
[email protected]:~$ echo $PATH
/opt/maven/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
Je recommande fortement de lire sur la structure des répertoires Linux pour avoir une meilleure idée.
Astuce bonus :supprimer une variable de la liste exportée
Supposons que vous souhaitiez supprimer une variable "exportée". Vous pouvez utiliser l'option de négation de cette manière :
export -n myvar
Gardez à l'esprit que cela ne réinitialisera pas la valeur de la variable. Cela transformera simplement la variable globale exportée en une variable locale. Il continuera d'avoir la même valeur que vous aviez définie précédemment.
Si vous souhaitez supprimer la variable de la liste exportée ainsi que sa valeur assignée, utilisez l'option unset :
unset myvar
J'espère que vous avez maintenant une meilleure idée de la commande d'exportation sous Linux. Si vous avez des doutes, n'hésitez pas à demander dans la section des commentaires.