0 Votes

Modifications pour le document Variables d’environnement

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

Depuis la version 1.1
modifié par john
sur 2025/05/24 23:47
Commentaire de modification : Imported from XAR
À la version 3.1
modifié par john
sur 2026/09/20 19:51
Commentaire de modification : Il n'y a aucun commentaire pour cette version

Résumé

Détails

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