Question 1Qu'affiche echo $HOME ?
Les variables d'environnement — PATH et export
Apprends à référencer des variables avec echo $VAR et env, ce que signifient HOME et PATH, à définir des variables avec export, et la substitution de commande $(...) — tout en pratique dans un terminal en navigateur.
Référencer des variables — echo $VAR et env
Les variables d'environnement sont des réglages partagés par le shell et les programmes.
Tu stockes une valeur sous un nom, et écrire $name y substitue cette valeur.
Référence-en une en la préfixant de $, comme echo $HOME, et lance env pour afficher la liste des variables d'environnement actuellement définies.
Comme variables représentatives, HOME est le chemin vers ton répertoire personnel (ici /root), et PATH est une liste de répertoires où trouver les commandes, séparés par des deux-points.
Taper juste ls fonctionne parce que l'exécutable ls se trouve dans l'un des répertoires listés dans PATH, et le shell l'y trouve.
Autres exemples : PWD est le répertoire de travail courant, USER est le nom de l'utilisateur connecté (ici root), et SHELL est le chemin vers le shell de connexion.
| Variable | Signification | Exemple ici |
|---|---|---|
$HOME | Chemin vers le répertoire personnel | /root |
$PATH | Liste de répertoires où trouver les commandes (séparés par :) | /sbin:/usr/sbin:/bin:/usr/bin |
$PWD | Répertoire de travail courant | /root |
$USER | Nom de l'utilisateur connecté | root |
$SHELL | Chemin vers le shell de connexion | /bin/sh |
$name affiche une valeur ; env affiche la liste de toutes les variables.echo $HOME # chemin home (/root)
echo $PATH # la liste des chemins de recherche des commandes
env # affiche toutes les variables d'environnement
Définir des variables — export et $(...)
name=value met une valeur dans une variable, et ajouter export name transmet cette variable aux programmes que tu lances ensuite.
Tu peux aussi l'écrire en une seule ligne comme export name=value.
Tu peux référencer avec $name, mais l'envelopper en ${name} rend explicite la limite du nom de variable, donc cela se développe sans ambiguïté même quand des caractères suivent directement, comme ${HOME}/bin.
En cas de doute, l'écrire sous la forme ${name} est recommandé.
$(command) est la substitution de commande : elle lance la commande à l'intérieur et la remplace sur place par cette sortie sous forme de chaîne.
Par exemple, echo $(pwd) affiche la sortie de pwd (le chemin vers ta position courante) sous forme de chaîne.
Utilise-la quand tu veux mettre le résultat d'une commande dans la valeur d'une variable.
| Comment l'écrire | Signification | Exemple |
|---|---|---|
$VAR | Substitue la valeur de la variable | echo $HOME |
${VAR} | Référence avec une limite explicite (recommandé) | echo ${HOME}/bin |
VAR=value | Affecte dans le shell courant uniquement | NAME=demo |
export VAR=value | Affecte et transmet aux processus enfants | export NAME=demo |
$(command) | Substitue la sortie de la commande | echo $(pwd) |
export transmet la valeur plus loin, et $(...) intègre la sortie d'une commande.export GREETING=hello # définit une variable et la transmet plus loin
echo $GREETING # hello
echo "today is $(date)" # intègre la sortie d'une commande avec $(...)
Le fonctionnement de PATH — comment une commande est trouvée
PATH est une variable d'environnement listant les répertoires où trouver les commandes, séparés par des deux-points :.
Quand tu tapes une commande par son seul nom, sans chemin, comme ls ou cat, le shell parcourt les répertoires listés dans PATH de gauche à droite et lance le premier exécutable qu'il trouve.
C'est pourquoi ls seul fonctionne sans écrire le chemin complet /bin/ls.
À l'inverse, une commande qui n'est dans aucun des répertoires de PATH donne not found.
Pour appeler ton propre script par son seul nom, tu dois ajouter son emplacement à PATH, ce que nous verrons ensuite.
PATH vaut /sbin:/usr/sbin:/bin:/usr/bin, ls est cherché depuis la gauche /sbin dans l'ordre, trouvé dans /bin, et la recherche s'arrête là. Elle ne va jamais jusqu'à /usr/bin.Comment ajouter à PATH
Quand tu veux lancer ta propre commande par son seul nom, ajoute son emplacement à PATH.
Écris-le comme export PATH=${PATH}:/new/dir, en ajoutant un deux-points et le nouveau répertoire à la fin du PATH actuel.
Tu inclus ${PATH} pour ajouter aux lieux de recherche existants sans les effacer.
Vérification des connaissances
Répondez à chaque question une par une.
Question 2Qu'est-ce qui est correct au sujet du rôle de PATH ?
Question 3Qu'est-ce qui s'affiche quand tu lances echo $(pwd) ?