Les variables d’environnement : ces VIP du terminal !
S01:E14

Les variables d’environnement : ces VIP du terminal !

Episode description

📌 Notes de l’émission – Les variables d’environnement : ces VIP du terminal

Dans cet épisode, nous avons exploré en détail : ✅ Ce qu’est une variable d’environnement et son utilité. ✅ Les règles à respecter : casse sensible, usage des majuscules, conventions de nommage. ✅ Où elles sont stockées et leur portée (globale, utilisateur, session). ✅ Les variables critiques comme PATH et les précautions à prendre. ✅ Comment manipuler ces variables : affichage, modification temporaire ou persistante. ✅ Les variables internes de Bash et comment les lister.

🛠️ Commandes utiles mentionnées dans l’épisode

🔍 Afficher les variables existantes

env
printenv
(set -o posix; set)  # Pour voir aussi les variables internes de Bash

📌 Afficher la valeur d’une variable spécifique

echo $USER
printenv HOME

✏️ Définir une variable temporaire (valable uniquement dans la session en cours)

export PSEUDO="John"
echo $PSEUDO

💾 Rendre une variable persistante (conservée après redémarrage)

echo 'export PSEUDO="John"' >> ~/.bashrc source ~/.bashrc

🚨 Vérifier et restaurer PATH en cas de problème

echo $PATH source /etc/profile # Restaurer le PATH par défaut

📜 Lister toutes les variables internes de Bash et les enregistrer dans un fichier

(set -o posix; set) > variablesbash.txt cat variablesbash.txt vim variablesbash.txt

Download transcript (.srt)
0:00

Bienvenue sur Parlons Linux FR, aujourd'hui nous allons parler des variables d'environnement,

0:09

c'est VIP du terminal, tout d'abord une petite introduction, tu ouvres ton terminal,

0:16

tu tapes une commande et ça marche comme par magie, mais c'est tu comment ton système

0:20

sait où chercher tes programmes, dans quelle langue t'afficher les messages ou encore

0:24

quel utilisateur tu es ? Et bien derrière tout ça il y a des petites ouvrières silencieuses

0:30

les variables d'environnement, ce sont elles qui définissent le comportement de ton système

0:34

et de tes logiciels sans que tu aies besoin d'y penser, mais alors comment fonctionne-t-elle

0:39

ou les trouver, comment les modifier, c'est ce qu'on va voir ensemble. Qu'est-ce qu'une

0:46

variable d'environnement ? Une variable d'environnement c'est une paire de clés

0:50

valeurs qui stockent une information utilisée par le système ou les applications, on va prendre

0:56

quelques exemples classiques, la variable USER qui contient le nom de l'utilisateur actuel,

1:01

la variable HOME qui indique le chemin du dossier personnel, la variable LANG qui définit la

1:08

langue du système, ou la variable SHELL qui indique quel interpréter de comment on est utilisé,

1:13

si c'est du bash, du ZSH ou tout autre interpréteur ou émulateur. Chaque programme peut

1:22

consulter ces variables pour adapter son comportement. Il existe des règles et conventions

1:28

pour ces variables, notamment la sensibilité à la casse, une variable écrit en majuscule

1:42

est différente de cette même variable écrit en minuscule, notamment en parlant de majuscule,

1:50

c'est une convention pour les distinguer des variables de script.

1:53

Les variables ne doivent pas utiliser d'espace dans leur nom, on utilise par exemple l'underscore (_)

2:04

pour créer des espaces. Et également attention au conflit, modifier la variable PATH sans

2:14

précaution peut empêcher le système de trouver ses commandes. On va y revenir sur cette

2:19

fameuse variable un petit peu plus loin. Mais d'abord, où sont stockés ces variables ? Selon

2:25

leur portée, les variables sont définies à différents endroits. Il y a d'abord les variables

2:32

globales qui sont pour tous les utilisateurs, que ce soit des utilisateurs réels ou systèmes,

2:38

elles sont généralement dans /etc/environnement ou /etc/profile, que je vous

2:47

déconseille de modifier, nous le verrons par la suite, ou dans /etc/profile.d/ . Il

2:56

y a également les variables spécifiques à un utilisateur, là ce sera dans votre dossier personnel

3:02

ou dans le dossier personnel de l'utilisateur et elles seront soit dans le .bashrc ou dans

3:10

le .bash_profile ou dans le .profile tout simplement. Et il y a également les variables

3:17

de session uniquement, elles sont définies temporairement dans le shell avec la command export

3:23

et si une variable est définie dans plusieurs fichiers, la dernière chargée l'emporte.

3:28

Les variables critiques et notamment la variable PATH, PATH c'est où chercher les commandes. Le

3:40

PATH c'est une variable essentielle qui définit où chercher les exécutables et donc vous le

3:45

devinez un PATH mal configuré peut empêcher d'accéder aux commandes. Vous pouvez vérifier

3:53

votre PATH avec la commande echo, $PATH, écrit en majuscule, c'est valable pour toutes les

4:03

autres variables d'environnement, un echo $ vous permettra de récupérer l'information. Il y a

4:12

des exemples dangereux à éviter, un exemple totalement aléatoire que je donne par exemple c'est de

4:20

modifier la variable PATH en lui donnant comme valeur /tmp. Ici le système ne

4:27

cherchera des commandes que dans /tmp et du coup ça risque de plus rien d'exécuter. En cas de

4:34

manipulation hasardeuse de votre de vos variables vous pouvez les restaurer en faisant un source

4:42

/etc/profile par exemple d'où l'intérêt de ne pas modifier ce dossier là ou du moins quand

4:53

on est sûr de ce qu'on fait. Vous avez également les librairies partagées notamment les bibliothèques

5:00

partagées du moins où il faut éviter de modifier par exemple ne pas ajouter de points au PATH sur

5:09

une librairie partagée car ajouter le point c'est ajouter le dossier courant dans le PATH qui

5:18

peut-être dangereux. Une commande d'exécuter dans un répertoire douteux pourrait remplacer une

5:22

commande système par exemple et donc il faut préférer les chemins absolus par exemple /

5:31

bin/ls /USER/bin/env. Voilà ça c'était pour les précautions d'usage

5:40

et la nomenclature. Maintenant comment on fait pour manipuler ces variables d'environnement ?

5:47

D'abord on va pouvoir les afficher donc comme je disais vous avez la commande echo quand vous

5:57

connaissez les variables ou alors si vous voulez voir les variables qui sont disponibles pour

6:02

l'utilisateur actuel celui que vous allez utiliser pour les commandes vous pouvez utiliser la

6:08

commande env ou printenv. Ces deux commandes dans cet usage là font la même chose mais

6:18

chacune de ces commandes a des options bien spécifiques et je vous invite à utiliser

6:23

le manuel de ces commandes pour en apprendre plus. Vous pouvez également afficher une valeur

6:29

spécifique. Vous verrez que le retour sera strictement le même en faisant un printen

6:35

v USER. La seule différence c'est que le printenv USER, USER étant écrit en majuscule,

6:44

il n'a pas besoin du dollar qui précède le nom de la variable là où quand on veut passer par

6:53

echo il faudra utiliser le $USER le tout attaché. On peut définir une variable temporaire

7:01

pour se faire c'est simple on utilise la commande export le nom de votre variable par exemple export

7:11

pseudo= on ouvre les guillemets et on met un pseudo dans ces guillemets par exemple moi je vais

7:20

mettre John. Une fois cela fait on tape entrée et puis on peut vérifier que cette variable est

7:28

prise en compte en faisant echo dollar pseudo par exemple. Cette variable existera uniquement

7:36

dans un section actuelle et là du coup vient la question mais comment on fait pour la ronde

7:42

persistante pour qu'une variable soit conservée après le redémarrage il faut la stocker soit

7:47

dans le point bas chrc ou dans le point profile. Comme je vous ai parlé de la méthode et que la

7:59

commande source pour restaurer le passe je vous invite à utiliser plutôt le bas chrc au lieu

8:09

du profile. Pour déteste cela fonctionne très bien et au moins au cas d'erreur vous pourrez

8:17

ressourcer le point profile afin de récupérer un environnement utilisable. Il existe des variables

8:26

internes. Ah non d'abord oui donc on peut faire echo simple guillemets export pseudo égal double

8:43

guillemets dans mon cas John on ferme les guillemets double et les simples on fait un espace deux signes

8:53

plus grand que puis point bas chrc ensuite nous pouvons sourcer c'est à dire recharger la configuration

9:04

du bas chrc en faisant un source point bas chrc. Voilà votre variable est devenue persistante. Il y a

9:14

des variables internes à bash. Ils en bash proposent ses propres variables internes qui

9:23

influent son fonctionnement. Vous avez la variable random qui donne des chiffres aléatoires. Vous

9:29

avez la variable second qui donne le temps écoulé depuis l'ouverture du shell. Vous avez la variable

9:37

uid qui donne l'identifiant utilisateur à ne pas confondre avec la variable USER. La variable

9:46

uid vous donnera des chiffres. Vous avez la variable pwd qui donne le répertoire actuel ou la variable

9:56

old pwd tout attaché qui donne le répertoire précédent. Vous avez une commande qui vous permet

10:08

de voir toutes ces variables qui sont internes à bash. La commande est un peu plus long. Vous

10:15

les trouverez dans la note de l'émission qui est 7sct un espace tiré au posix point virgule 7. Le tout

10:29

avec des parenthèses. Afin de consulter et de mieux comprendre et de conserver toutes ces variables

10:37

pour des recherches, je vous invite à enregistrer ces variables dans un fichier texte pour les

10:43

consulter plus tard, les trier, etc. Vous pouvez faire ceci en regardant les notes de l'émission qui

10:52

sera plus parlant que ce que je vais dire à présent qui est parenthèse ou rentre 7 tiré au posix point

11:03

virgule 7. Fermez les parenthèses un espace plus grand que votre nom de fichier texte variable

11:10

bash.txt. Vous pouvez le vérifier que c'est bien enregistré en faisant un 4 variable.txt ou bien

11:21

l'ouvrir avec votre éditeur de texte favori nano vim ou un éditeur de texte graphique. En

11:32

conclusion les variables d'environnement sont la clé pour bien comprendre comment fonctionne un

11:36

système Linux, elles permettent d'adapter son environnement à tes besoins et d'optimiser

11:42

tes scripts. Bien les connaître, c'est éviter les erreurs et comprendre comment Linux gère son

11:49

fonctionnement en coulisses.