Modifications pour le document Variables d’environnement
Modifié par john le 2026/09/20 20:04
Résumé
-
Propriétés de la Page (1 modifications, 0 ajouts, 0 suppressions)
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 69 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]]