Shell, l'interpréteur de commandes d'un système d'exploitation, traite les commandes entrées dans la ligne de commande et largement utilisées sous Linux. Une variable est comme un pointeur vers une donnée particulière et contient une valeur particulière qui peut être n'importe quoi. Un utilisateur peut créer, supprimer ou affecter des variables à l'aide de Shell.
Lorsqu'un shell est en cours d'exécution, trois types de variables sont présents :
- Variables locales
- Variables shell
- Variables d'environnement
Dans ce didacticiel, nous verrons comment définir des variables d'environnement et de shell sous Linux.
Que sont les variables shell ?
Les variables Shell sont spécifiques au shell actuel et utilisées par le Shell pour fonctionner correctement. Ces variables sont temporaires, et pour les rendre permanentes, vous pouvez les exporter en tant que variables d'environnement.
Certaines des variables communes du shell sont :
- UID : ID de l'utilisateur actuellement connecté
- NOM D'HÔTE : Le nom d'hôte de l'ordinateur à un moment donné
- BASH_VERSINFO : Forme lisible par machine de la version bash
- BASH_VERSION : Sortie lisible par l'homme de la version bash
- DIRSTACK : Pile de répertoires disponible avec les commandes ‘popd’ et ‘pushd’
- SHELLOPTS : Les options du shell peuvent être définies
Que sont les variables d'environnement ?
Les variables d'environnement sont des variables disponibles à l'échelle du système qui sont disponibles pour tout programme ou processus enfant du shell. En outre, le script Shell définit les variables d'environnement nécessaires à l'exécution du programme.
Certaines des variables d'environnement courantes sont :
- MAIL : Répertoire de messagerie de l'utilisateur ou chemin d'accès à la boîte aux lettres de l'utilisateur
- Temp : Emplacement du directeur des fichiers temporaires
- PWD : Répertoire de travail courant
- OLDPWD : Le répertoire de travail précédent
- UTILISATEUR : L'utilisateur actuel connecté
- LANG : La langue courante
- LOGNAME : Nom d'utilisateur
- ACCUEIL : Le répertoire personnel de l'utilisateur actuel
- _ : Dernière commande précédente exécutée
- SHELL : Le shell actuel
- EDITEUR : L'éditeur de texte par défaut de Linux
- NOM D'HÔTE : Le nom d'hôte de l'appareil sur le réseau
Voici quelques-unes des commandes qui vous aideront à définir les variables Shell et Environnement :
- env : Vous pouvez utiliser un environnement personnalisé pour exécuter un autre programme sans modifier l'environnement existant.
- printenv : Cela imprimera toutes les variables d'environnement de votre système.
- définir : Utilisé pour définir les variables d'environnement et de shell.
- désactivé : Utilisé pour supprimer les variables d'environnement et de shell.
- exportations : Exportons des variables shell dans des variables d'environnement.
Comment imprimer les variables Shell et Environnement ?
Shell conserve une trace de toutes les variables d'environnement et de shell. Et pour y accéder, nous pouvons utiliser ces deux commandes :
- printenv : pour imprimer toutes les variables d'environnement.
- définir : pour imprimer les variables Shell.
Comment définir les variables d'environnement et de shell sous Linux ?
Alors maintenant, nous savons ce que sont les variables d'environnement et de shell. Apprenons donc à créer et à définir ces variables sous Linux. Pour bien comprendre la différence entre les variables Environnement et Shell pratiquement. Nous allons d'abord définir une variable Shell, puis la variable d'environnement.
Création de la variable Shell
- Pour définir une variable Shell, exécutez cette commande dans votre Shell. Cela créera une variable Shell qui sera disponible dans votre session actuelle.
TESTVAR='Hello!'
- Nous pouvons également vérifier notre variable avec la commande grep.
set | grep TESTVAR
Vous verrez une sortie comme celle-ci.
TESTVAR='Hello!'
- Vous pouvez également voir la valeur d'une variable shell avec la commande suivante.
echo $TESTVAR
- Comme il s'agit d'une variable Shell, elle ne sera donc pas disponible pour d'autres applications ou processus enfants. Vous pouvez même vérifier qu'il ne s'agit pas d'une variable d'environnement.
printenv | grep TESTVAR
Il n'y aura pas de sortie. Cela signifie qu'il ne s'agit pas d'une variable d'environnement.
Création des variables d'environnement - Maintenant, exportons la variable Shell dans une variable d'environnement. Utilisez la commande suivante pour le faire.
export TESTVAR
- Cela transformera notre variable Shell en une variable d'environnement et pour vérifier cela, exécutez la commande suivante.
printenv | grep TESTVAR
Cette fois, vous verrez une sortie comme celle-ci.
TESTVAR='Hello!'
- Nous savons maintenant comment convertir une variable Shell en variable d'environnement, mais comment créer directement une variable d'environnement. Vous pouvez définir une variable d'environnement en une seule étape avec cette commande.
export NEWVAR="Hello Env"
- Il sera directement exporté en tant que variable d'environnement et vous pouvez le vérifier.
printenv | grep NEWVAR
Vous verrez une sortie comme celle-ci.
NEWWAR=Hello Env
export TESTVAR
printenv | grep TESTVAR
Cette fois, vous verrez une sortie comme celle-ci.
TESTVAR='Hello!'
export NEWVAR="Hello Env"
printenv | grep NEWVAR
Vous verrez une sortie comme celle-ci.
NEWWAR=Hello Env
De cette façon, vous pouvez définir Shell et Environnement sous Linux.
Désactiver les variables
Vous savez maintenant comment définir des variables. Apprenons à les désactiver.
- Vous pouvez à nouveau transformer une variable d'environnement en une variable Shell avec cette commande.
export -n TESTVAR
- Cela restera une variable Shell mais pas une variable d'environnement. Vérifions cela.
printenv | grep TESTVAR
- Il n'y aura pas de sortie mais si nous la vérifions pour la variable Shell,
set | grep TESTVAR
vous verrez la sortie.
TESTVAR='Hello!'
- Et si vous voulez complètement désactiver cela, utilisez cette commande.
unset TESTVAR
Conclusion
Les variables d'environnement et de shell peuvent vous être très utiles si vous travaillez souvent avec Shell et apprendre à définir et à désactiver ces variables sera une bonne chose à long terme.