GNU/Linux >> Tutoriels Linux >  >> Linux

Comment définir et répertorier les variables d'environnement sous Linux

Sous Linux, les variables d'environnement sont des valeurs nommées dynamiques qui fonctionnent comme un espace réservé pour les informations stockées dans le système utilisé par les applications de ligne de commande. Comme toute autre variable, elle se compose de deux parties :un nom et une valeur associée.

Voici un aperçu du formatage des variables :

KEY=value
KEY="this is also a value"
KEY=valueA:valueB

Quelques points à noter :

  • Il ne doit y avoir aucun espace avant ou après le symbole "=".
  • Si les valeurs contiennent des espaces blancs, des guillemets sont utilisés.
  • Vous pouvez attribuer plusieurs valeurs à une variable. Chaque valeur doit être séparée par un caractère deux-points (:).
  • Les noms des variables sont sensibles à la casse. En tant que tel, "KEY" et "key" désignent deux variables différentes. Par convention, une variable d'environnement doit être écrite en MAJUSCULES.

À l'aide des variables d'environnement, vous pouvez potentiellement personnaliser le fonctionnement de votre système, y compris le comportement des applications installées sur votre système.

Par exemple, vous pouvez utiliser des variables d'environnement pour stocker des informations sur les applications par défaut telles qu'un éditeur de texte, un navigateur ou même le chemin d'accès à un fichier exécutable. Cela vous permet de modifier le système en fonction de vos besoins personnels ou des besoins d'un groupe d'utilisateurs.

Maintenant, pour cette lecture, nous avons mis en place un didacticiel détaillé expliquant comment définir et répertorier les variables d'environnement sur votre PC Linux. Cela vous donnera une compréhension pratique de l'utilisation des variables d'environnement pour personnaliser votre système.

Alors sans plus tarder, commençons :

Quelle est la différence entre les variables d'environnement et les variables shell ?

Avant de commencer, commençons par comprendre les différences entre une variable d'environnement et une variable shell.

Pour le dire simplement, une "variable d'environnement" est globalement disponible et est héritée par tous les processus ou shells enfants engendrés.

Les variables shell, en revanche, sont des variables qui ne s'appliquent qu'à l'instance shell actuelle. Bash, zsh et tous les autres shells ont leur propre ensemble de variables shell internes. Ceux-ci sont généralement utilisés pour garder une trace des données temporairement pertinentes, comme le répertoire de travail actuel.

Maintenant, vous pouvez rendre une variable shell disponible en tant que variable d'environnement. Tout ce que vous avez à faire est d'utiliser la commande "exporter" avec le nom de la variable. Cela exportera sa valeur globalement afin que de nouveaux programmes et sous-shells puissent maintenant l'utiliser.

Voici un exemple de la façon dont cela est fait :

Nous approfondirons cela dans une section ultérieure.

Comment répertorier et définir des variables d'environnement

Il existe des tonnes de commandes disponibles pour vous aider à lister et à définir des variables. Voici un bref aperçu de certaines des commandes les plus courantes que nous utiliserons dans ce didacticiel :

  • exporter :utilisé pour exporter la valeur d'une variable d'environnement nouvellement assignée.
  • environnement :utilisé pour exécuter un autre programme dans un environnement personnalisé sans avoir besoin de modifier celui en cours. Il peut être utilisé avec un argument pour imprimer une liste de toutes les variables d'environnement présentes dans le shell.
  • printenv :utilisé pour imprimer toutes les variables d'environnement (ou spécifiées) et les définitions de l'environnement actuel.
  • définir :utilisé pour affecter ou définir une variable d'environnement ou de shell. S'il est utilisé sans argument, il imprimera une liste de toutes les variables - cela inclut les variables d'environnement, les variables shell et les fonctions shell.
  • désactivé :utilisé pour supprimer une variable d'environnement ou de shell spécifiée.

À l'aide de ces commandes, vous pourrez répertorier et définir des variables d'environnement sur votre système Linux.

Liste des variables d'environnement

La commande la plus couramment utilisée pour afficher les variables d'environnement est "printenv".

Si vous utilisez le nom d'une variable comme argument de la commande, elle affichera la valeur de la variable. Cependant, s'il est utilisé sans argument, il listera toutes les variables d'environnement du système.

Voici quelques exemples :

disons que vous voulez voir la valeur de la variable d'environnement "HOME". Pour ce faire, vous devez exécuter la commande suivante :

$ printenv HOME

Cela vous donnera le chemin de l'utilisateur actuellement connecté :

Vous pouvez également passer deux arguments ou plus via la commande "printenv" comme suit :

$ printenv PWD LANG

Vous obtiendrez un écran de sortie similaire :

Maintenant, si vous exécutez "printenv" sans argument, il affichera une liste de toutes les variables d'environnement.

Désormais, les commandes printenv et env affichent uniquement les variables d'environnement. Mais que se passe-t-il si vous souhaitez répertorier toutes les variables de votre système ? Cela inclut tout, des variables d'environnement aux variables shell et même aux fonctions shell.

Eh bien, vous pouvez utiliser la commande "set" sans aucun argument :

Comme vous pouvez le voir sur l'image, la commande affichera une grande liste détaillée de toutes les variables. Si vous souhaitez rediriger la sortie, vous pouvez utiliser cette commande à la place :

$ set | less

Outre tout cela, vous pouvez également utiliser la commande echo si vous souhaitez imprimer les valeurs des variables shell. Entrez simplement l'écho et transmettez la variable shell concernée comme argument. Voici un exemple, en l'utilisant avec la variable BASH_VERSION.

Pour vous aider à expérimenter ces commandes sur votre système, voici une liste de certaines des variables d'environnement les plus commandées.

  • EDITEUR – L'éditeur de fichier par défaut à utiliser lorsque vous tapez dans l'éditeur du terminal.
  • ACCUEIL – Le répertoire personnel de l'utilisateur actuel.
  • LANG – Les paramètres régionaux actuels.
  • LOGNAME – Le nom de l'utilisateur actuel.
  • LS_COLORS – Définit tous les codes de couleur utilisés pour ajouter la sortie colorée facultative à la commande ls. Ces couleurs sont utilisées pour distinguer les différents types de fichiers et rendre la sortie plus facilement assimilable.
  • MAIL - L'emplacement où les e-mails de l'utilisateur actuel sont stockés.
  • CHEMIN – Une liste de répertoires à rechercher lors de l'exécution de commandes. Lorsque vous exécutez une commande, le système recherche ces répertoires dans l'ordre indiqué et utilise le premier exécutable trouvé.
  • PWD – Emplacement du répertoire de travail actuel.
  • OLDPWD – Emplacement du répertoire de travail précédent.
  • SHELL – Le chemin du shell de l'utilisateur actuel, par exemple, bash ou zsh.
  • DURÉE – L'émulation de terminal actuelle.
  • UTILISATEUR – L'utilisateur actuellement connecté.

Parlons maintenant de la façon de définir les variables d'environnement.

Définition des variables d'environnement

La pratique courante pour créer une variable d'environnement consiste à créer une variable shell, puis à l'exporter en tant que variable d'environnement.

Maintenant, pour créer une nouvelle variable shell, nous utilisons la commande suivante :

MY_VAR=FOSSLinux

Vous pouvez maintenant utiliser la commande echo pour vérifier que la variable est définie avec la valeur fournie.

$ echo $MY_VAR

De même, utilisez printenv pour voir si la variable est une variable d'environnement. Sinon, vous obtiendrez une sortie vide.

$ printenv MY_VAR

Vérifiez également si la variable est héritée par le sous-shell à l'aide de la commande suivante :

$ bash -c 'echo $MY_VAR'

Ici aussi, vous obtiendrez une sortie vide comme indiqué dans l'image ci-dessous :

Maintenant que nous avons défini la variable shell MY_VAR et que nous l'avons vérifiée, nous pouvons utiliser la commande export pour la définir comme variable d'environnement.

$ export MY_VAR

Une fois cela fait, vous pouvez utiliser les commandes précédentes pour voir si elle est répertoriée en tant que variable d'environnement et voir si elle est héritée par le sous-shell.

Vous pouvez également définir une variable d'environnement à l'aide d'une seule ligne, comme indiqué ci-dessous :

$ export NEW_VAR="This is a new variable"

Cependant, notez que les variables d'environnement créées de cette manière ne sont disponibles que pour la session en cours. Une fois que vous vous déconnectez ou ouvrez un nouveau shell, la variable d'environnement sera perdue.

Variables d'environnement persistantes et non persistantes

Comme indiqué précédemment, lorsque vous modifiez les variables d'environnement dans votre shell actuel, elles seront perdues dès que vous vous déconnecterez du shell. C'est ce qu'on appelle des variables d'environnement non persistantes.

Pour les rendre persistants, ou en d'autres termes, permanents, vous devrez modifier les fichiers de configuration bash.

Lorsque vous démarrez une nouvelle session, toutes les variables d'environnement sont lues à partir des fichiers suivants. En tant que tel, vous pouvez ajouter les variables d'environnement à ces fichiers pour les rendre persistants.

  • /etc/environnement :Ce fichier contient toutes les variables d'environnement à l'échelle du système. Vous pouvez ajouter de nouvelles variables en utilisant le format suivant :
$FOO=bar
$MY_VAR=FOSSLinux
  • /etc/profile :Ce fichier comprend des ensembles de variables qui sont chargés lorsqu'un shell de connexion bash est entré. Vous pouvez déclarer une variable d'environnement dans ce fichier à l'aide de la commande export.
$ export JAVA_HOME="/path/to/java/home"
$ export PATH=$PATH:$JAVA_HOME/bin
  • Vous pouvez également définir des fichiers d'environnement dans des fichiers de configuration spécifiques au shell par utilisateur. Par exemple, si vous utilisez Bash, vous pouvez déclarer la variable dans ~/.bashrc à l'aide de la commande suivante :
$ export PATH="$HOME/bin:$PATH"

Pour charger la nouvelle variable d'environnement dans la session shell en cours, vous devrez utiliser la commande source comme suit :

$ source ~/.bashrc

Une fois ces étapes franchies, toutes les variables d'environnement que vous venez d'ajouter deviendront permanentes et resteront intactes même si vous vous déconnectez du shell.

Conclusion

C'était donc notre guide détaillé sur la façon de répertorier et de définir les variables d'environnement sous Linux. Nous espérons que vous avez trouvé cela utile et instructif. Si vous avez des questions ou rencontrez des problèmes, laissez-nous un commentaire et nous vous répondrons rapidement.

Si vous débutez avec Linux, vous pouvez visiter notre série Learn Linux, où nous couvrons des didacticiels et des guides approfondis qui profiteront aux utilisateurs Linux débutants et expérimentés.


Linux
  1. Comment définir et supprimer des variables d'environnement locales, utilisateur et système sous Linux

  2. Comment gérer et répertorier les services sous Linux

  3. Comment définir, répertorier et supprimer des variables d'environnement sous Linux

  4. Exemples de commandes d'exportation Linux (Comment définir des variables d'environnement)

  5. Variables d'environnement utilisateur avec "su" et "sudo" sous Linux

Comment installer et configurer le navigateur Tor sous Linux

Comment définir/annuler les variables d'environnement sous Linux

Comment répertorier les utilisateurs et les groupes sous Linux

Comment définir la date et l'heure sous Linux

Comment définir et supprimer des variables d'environnement sous Linux

Variables d'environnement Linux