0 Votes

Code source wiki de Variables d’environnement

Modifié par john le 2026/09/20 20:04

Afficher les derniers auteurs
1 {{toc/}}
2
3 == Présentation ==
4
5 Les **variables d’environnement** sont des paires ##nom=valeur## utilisées par le shell et les applications.
6 Elles stockent des **informations de configuration**, comme la langue, le nom d’utilisateur, le chemin de recherche des commandes, etc.
7
8 Elles sont visibles et modifiables par l’utilisateur courant, et peuvent être temporaires ou permanentes.
9
10 ----
11
12 == Quelques variables courantes ==
13
14 |=Variable|=Description
15 |##$USER##|Nom de l’utilisateur connecté
16 |##$HOME##|Répertoire personnel
17 |##$PATH##|Liste des dossiers contenant les commandes
18 |##$LANG##|Langue et encodage utilisés
19 |##$SHELL##|Shell utilisé (souvent ##/bin/bash##)
20
21 ----
22
23 == Afficher les variables existantes ==
24
25 {{code language="bash"}}
26 printenv
27 # ou
28 env
29 # ou pour une variable spécifique :
30 echo "$HOME"
31 {{/code}}
32
33 ----
34
35 == Définir une variable temporaire ==
36
37 {{code language="bash"}}
38 NOM=John
39 echo "$NOM"
40 {{/code}}
41
42 Cela ne sera valable **que pour le shell courant**.
43
44 ----
45
46 == Rendre une variable accessible à un script ou un sous-processus ==
47
48 Il faut l’**exporter** :
49
50 {{code language="bash"}}
51 export NOM=John
52 ./mon_script.sh
53 {{/code}}
54
55 Le script pourra utiliser ##$NOM##.
56
57 ----
58
59 == Définir une variable de façon permanente ==
60
61 Ajouter la ligne dans l’un de ces fichiers :
62
63 * ##~~/.bashrc## → pour les shells interactifs
64 * ##~~/.profile## ou ##~~/.bash_profile## → à la connexion
65
66 Exemple :
67
68 {{code language="bash"}}
69 export EDITOR=nano
70 export PATH="$PATH:$HOME/bin"
71 {{/code}}
72
73 Puis recharger avec :
74
75 {{code language="bash"}}
76 source ~/.bashrc
77 {{/code}}
78
79 ----
80
81 == Astuce : tester si une variable existe ==
82
83 {{code language="bash"}}
84 if [ -z "$MON_VAR" ]; then
85 echo "MON_VAR n'est pas définie"
86 fi
87 {{/code}}
88
89 En mode strict (##set -u##), une variable non définie interrompt le script. Prévoir une valeur par défaut :
90
91 {{code language="bash"}}
92 echo "${MON_VAR:-valeur_par_defaut}"
93 {{/code}}
94
95 ----
96
97 == Bonnes pratiques ==
98
99 * Utiliser **des majuscules** pour les noms (convention POSIX)
100 * Éviter les noms trop courts (##T##, ##X##, ##D##) qui pourraient entrer en conflit
101 * Toujours entourer les variables de **guillemets** (##"$VAR"##) dans les scripts pour éviter les bugs avec des espaces
102 * Ne jamais mettre de mot de passe ni de jeton dans une variable exportée : elle est lisible par tous les processus de la session. Préférer un fichier réservé à root, chargé avec ##.## au moment voulu
103
104 ----
105
106 == Liens internes ==
107
108 * [[Retour à la section Tutos Linux>>doc:Wiki Batcave John.TutosLinux.WebHome]]
109 * [[Retour à l’accueil>>doc:Wiki Batcave John.WebHome]]