Chaque processus possède un environnement : un ensemble de chaînes nom-valeur hérité de son parent. Les shells transmettent ainsi aux programmes des réglages comme la langue ou les chemins de recherche des exécutables.
Text-Fu · Leçon 5
env (environnement)
Découvrez comment Bash développe, exporte, inspecte et remplace temporairement des variables d'environnement.
Développer la valeur des variables dans Bash
Bash remplace $NAME ou ${NAME} par sa valeur avant d'exécuter une commande. Citez le développement pour préserver la valeur en un seul argument :
$ printf '%s\n' "$HOME"
/home/pete
Variables courantes :
HOME: chemin du répertoire personnel.USER: nom d'utilisateur fourni par l'environnement de connexion sur de nombreux systèmes.PWD: répertoire de travail du shell.PATH: répertoires où rechercher les commandes.
Les valeurs dépendent du processus courant. Une variable absente devient une chaîne vide, sauf mode shell plus strict.
Quelle commande Bash affiche HOME tout en préservant sa valeur comme un seul argument ?
Inspecter l'environnement courant
Sans opérande, env affiche l'environnement hérité :
$ env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/bin
PWD=/home/user
USER=pete
L'environnement peut contenir identifiants, jetons ou chemins internes. Relisez et masquez sa sortie avant de la publier.
Quelle commande affiche l'environnement visible par un nouveau processus ?
Trouver les commandes grâce à PATH
PATH est une liste de répertoires séparés par des deux-points, consultée quand une commande ne contient aucune barre oblique :
$ printf '%s\n' "$PATH"
L'ordre compte. type -a NAME montre comment le shell résout un nom. Pour ajouter un répertoire en tête tout en gardant le chemin existant :
$ export PATH="/opt/coolapp/bin:$PATH"
Ne remplacez pas accidentellement tout PATH et n'ajoutez pas de répertoire non fiable accessible en écriture.
Quelle commande ajoute /opt/coolapp/bin avant le PATH existant pour Bash et ses futurs enfants ?
Exporter une variable vers les processus enfants
Les variables Bash ne font pas automatiquement partie de l'environnement des enfants. Utilisez export :
$ export TEST=test
Le shell courant possède désormais la variable TEST, et ses futures commandes en héritent :
$ printenv TEST
test
Les futures commandes héritent de TEST=test, mais un enfant ne peut pas modifier ainsi l'environnement de son parent. L'affectation dure jusqu'à unset ou la fin du shell et n'est pas globale au système.
Quel est l'effet principal de export TEST=test dans Bash ?
Définir une valeur pour une seule commande
Placez les affectations avant la commande :
$ LANG=C sort names.txt
La commande env offre une forme explicite équivalente :
$ env LANG=C sort names.txt
La valeur de LANG dans le shell courant ne change pas durablement. env -i COMMAND démarre avec un environnement initialement vide ; beaucoup de programmes dépendent toutefois de variables, utilisez-le avec discernement.
Quelle commande exécute sort names.txt avec LANG=C sans modifier durablement le shell courant ?
Charger des valeurs personnelles dans les sessions futures
Pour recréer une variable exportée dans les futures sessions Bash interactives, placez l'instruction dans le fichier réellement lu, souvent ~/.bashrc :
export TEST=test
Zsh utilise souvent ~/.zshrc et Fish une autre syntaxe. Les shells de connexion ou non interactifs peuvent lire d'autres fichiers : identifiez le shell et le type de session.
Pour vous exercer :
- Gérer l'environnement et la configuration du shell sous Linux - Gérez variables locales, héritage et persistance dans
.bashrc. - Variables d'environnement sous Linux - Créez et modifiez des variables d'environnement.
Leçon terminée
Vous avez terminé env (environnement)
Vous savez désormais inspecter et contrôler l'environnement transmis par Bash.
Développer les valeurs avec des guillemets adaptés.
Examiner les valeurs exportées sans révéler de secrets.
Préserver et ordonner les répertoires de
PATH.Exporter une variable vers les futurs enfants.
Remplacer une valeur pour une seule commande.
Conservez votre progression
Créez un compte gratuit pour enregistrer cette leçon et continuer sur n'importe quel appareil.
Créer un compte gratuit