Pour répertorier toutes les variables d’environnement sur un ordinateur Linux, utilisez la commande printenv. Transférez-le dans la commande less pour obtenir des résultats consultables ou utilisez grep pour imprimer des variables spécifiques.
Sous Linux, les variables d’environnement contiennent des valeurs et des paramètres importants. Les scripts, les applications et les shells lisent ces valeurs, souvent pour se configurer eux-mêmes ou pour contrôler leur comportement. Voici plusieurs façons d’afficher ces variables dans votre terminal.
Tout sur les variables d’environnement
Nos différents ordinateurs de test disposent en moyenne de 50 variables d’environnement sur chacun d’eux. Une variable d’environnement, comme toute autre variable, est une combinaison d’un nom et d’une valeur. La Nom est unique, défini lors de la création de la variable, et il dure pendant toute la durée de vie de la variable d’environnement.
Les variables tiennent valeurs pour nous. Lorsqu’un processus a besoin de connaître la valeur, il recherche la variable par son nom et en lit la valeur. Bien que les noms de variables ne puissent pas être modifiés, leurs valeurs peuvent l’être.
Vous ne modifierez pas souvent les variables d’environnement système, mais vous le pouvez si nécessaire. Par exemple, vous pouvez augmenter la taille du cache de l’historique des commandes de votre shell Bash. Vous pouvez modifier la valeur du $HISTSIZE
variable d’environnement dans votre fichier « .bashrc » pour définir une nouvelle limite supérieure pour le nombre de commandes mémorisées.
C’est propre et pratique, mais ce n’est pas quelque chose que vous ferez souvent. Les variables d’environnement ont tendance à être laissées à leurs valeurs par défaut ou elles sont modifiées une fois puis oubliées. Ce n’est pas quelque chose que vous bricolerez souvent.
Néanmoins, il est intéressant de savoir comment afficher les variables d’environnement définies et utilisées sur votre ordinateur. L’impression des variables d’environnement dans une fenêtre de terminal vous permet de vérifier leurs valeurs et vous montre quels aspects de votre expérience Linux sont régis par ces valeurs d’arrière-plan.
EN RELATION: Comment définir des variables d’environnement dans Bash sous Linux
Commandes d’impression des variables d’environnement
Vous pouvez utiliser echo
pour voir la valeur stockée dans une variable d’environnement. Pour ce faire, vous devez connaître le nom de la variable d’environnement à l’avance.
echo $HOME
echo $USER
Il existe deux méthodes couramment utilisées pour afficher les noms et les valeurs de toutes les variables d’environnement sous Linux. Ils sont les env
et le printenv
commandes.
La printenv
La commande est la manière officielle de le faire. La commande a été écrite spécifiquement dans ce but. La env
commande a un but tout à fait différent.
env
est utilisé pour exécuter une application avec des valeurs temporaires, spécifiées par l’utilisateur, pour les variables d’environnement. Celles-ci remplacent les valeurs réelles stockées et permettent à l’application de s’exécuter dans un environnement modifié. Si vous invoquez env
sans paramètres de ligne de commande, son action par défaut est de lister les variables d’environnement.
Nous pouvons tout aussi bien utiliser l’outil conçu pour le travail, plutôt que de dépendre de l’effet secondaire d’un outil qui a été invoqué de manière incorrecte, nous utiliserons donc printenv
dans nos exemples.
EN RELATION: Comment transmettre des variables d’environnement aux conteneurs Docker
Utilisation de printenv pour voir les variables d’environnement
La printenv
la commande est très simple. Il a très peu d’options. Vous pouvez utiliser le --version
option pour connaître le numéro de version de la version sur votre ordinateur, et vous pouvez utiliser l’ --help
commande pour voir une brève description de ces deux options de ligne de commande et une autre.
L’autre option est la -0
(terminateur nul). Généralement, printenv
répertorie les variables d’environnement une par ligne, en ajoutant un caractère de saut de ligne à la fin de chaque ligne. La -0
L’option remplace ce caractère de saut de ligne par un octet nul. Vous utiliseriez cette option si vous dirigiez la sortie vers une autre application qui n’avait pas besoin des caractères de retour à la ligne.
printenv -0
L’effet de la -0
option dans une fenêtre de terminal est de regrouper la sortie dans un mur de texte impénétrable.
Il est pratiquement impossible de lui donner un sens. Ce sera un événement rare si jamais vous avez besoin d’utiliser le -0
option. Laissons tomber et réessayons.
printenv
La sortie est imprimée avec une variable d’environnement par ligne. Par convention, les noms de variables d’environnement utilisent toujours des caractères majuscules. Immédiatement après le nom de la variable se trouve un signe égal « =
« , suivi de la valeur à laquelle la variable d’environnement est définie.
Il y a encore beaucoup de sortie, donc vous trouverez peut-être plus facile de diriger la sortie vers less
.
printenv | less
Cela vous permet de faire défiler la liste et de rechercher également dans la liste.
Si vous savez quelque chose sur la variable d’environnement qui vous intéresse, vous pouvez utiliser grep
pour trouver les candidats potentiels. Supposons que vous sachiez qu’il existe une variable d’environnement contenant le mot « affichage ». Nous pouvons rechercher la liste comme ceci:
printenv | grep DISPLAY
EN RELATION: Comment travailler avec des variables dans Bash
Quelques variables d’environnement courantes
Les variables d’environnement par défaut sur différents ordinateurs Linux sont soumises aux préférences des responsables des différentes distributions, environnements de bureau et shells.
Voici quelques-unes des variables d’environnement les plus courantes que vous trouverez probablement sur un ordinateur Linux utilisant l’environnement de bureau GNOME.
- BASHOPTS: La liste des options de ligne de commande utilisées lors du lancement de bash.
- BASH_VERSION: La version de bash.
- COLONNES: La largeur du terminal en colonnes.
- DIRSTACK: La pile de répertoires à utiliser avec le
pushd
etpopd
commandes. - HISTFILESIZE: Le nombre maximum de lignes d’historique de commandes pouvant être écrites dans le fichier d’historique.
- TAILLE D’HIST: Le nombre maximum de lignes d’historique de commandes autorisées à être stockées en mémoire. Si vous dépassez ce nombre, les commandes précédemment mémorisées sont écrasées dans la mémoire. Lorsque vous fermez la fenêtre de votre terminal, l’historique des commandes est écrit dans le fichier d’historique.
- DOMICILE: Le répertoire personnel de l’utilisateur actuel.
- NOM D’HÔTE: Le nom de l’ordinateur.
- IFS: Le séparateur de champ interne utilisé pour analyser l’entrée de l’utilisateur. La valeur par défaut est un espace.
- LANGUE: les paramètres de langue et de localisation actuels, y compris l’encodage des caractères.
- LS_COLORS: Cela définit les codes qui sont utilisés pour ajouter de la couleur à la sortie de ls.
- COURRIER: chemin d’accès à la boîte aux lettres Linux de l’utilisateur actuel.
- OLDPWD: Le répertoire de travail précédent.
- PS1: la définition de l’invite de commande principale. Cela définit à quoi ressemble l’invite dans la fenêtre de votre terminal.
- CHEMIN: Une liste de répertoires séparés par deux-points qui sont recherchés, dans l’ordre, pour une commande ou une application correspondante lorsque vous tapez une commande dans le shell.
- personne handicapée: Le répertoire de travail courant.
- COQUILLE: Le nom de votre shell par défaut.
- TERME: Le type de terminal qui est émulé lorsque vous exécutez un shell.
- UID: L’identifiant de l’utilisateur actuel.
- UTILISATEUR: L’utilisateur actuel.
- _: La dernière commande exécutée. Si tu utilises
printenv
pour l’énumérer, ce sera toujoursprintenv
.
Inspections environnementales
Pour voir toutes vos variables d’environnement, utilisez printenv
. Dirigez la sortie à travers grep
pour filtrer les résultats, et utilisez echo
pour imprimer la valeur d’une variable d’environnement spécifique et connue.