Learn

Variables d'environnement

Terminal

$PATH, $HOME, export, et où le shell garde sa mémoire entre deux commandes.

Les variables d'environnement, c'est le bloc-notes du shell : il y lit le chemin des programmes installés, ton nom d'utilisateur, le dossier home, et toutes les configurations que les outils dev y posent (clés API, ports, etc.).

Lire une variable

shell
echo HOMEechoHOME
echo HOMEechoUSER
echo $PATH

Le $ devant le nom indique au shell de substituer la variable par sa valeur. Sans $, c'est juste du texte littéral.

  • $HOME : ton dossier personnel (/Users/vicente ou /c/Users/bloki).
  • $USER : ton nom d'utilisateur.
  • $PATH : la liste des dossiers où le shell cherche les exécutables, séparés par :.

Définir et exporter une variable

shell
MA_VAR="bonjour"
echo MAVARexportMONPORT=4000echoMA_VAR
  export MON_PORT=4000
  echo MAV​ARexportMONP​ORT=4000echoMON_PORT

Sans export, la variable n'existe que dans le shell courant et n'est pas transmise aux sous-processus. Avec export, elle est héritée par les commandes que tu lances depuis ce shell.

Voir toutes les variables

shell
env
printenv HOME

env liste toutes les variables d'environnement exportées. printenv <VAR> affiche la valeur d'une seule variable.

Persister une variable entre sessions

Une variable définie avec export disparaît à la fermeture du terminal. Pour qu'elle soit définie à chaque ouverture, ajoute-la dans ton fichier de configuration shell :

shell
Pour bash (fichier ~/.bashrc ou ~/.bash_profile)echo 'export MON_PORT=4000' >> ~/.bashrc
source ~/.bashrcPour zsh (macOS par défaut)echo 'export MON_PORT=4000' >> ~/.zshrc
source ~/.zshrc

source recharge le fichier sans rouvrir le terminal.

Le PATH en détail

shell
echo $PATH
which node
which python

$PATH contient quelque chose comme /usr/local/bin:/usr/bin:/bin. Quand tu tapes node, le shell cherche un exécutable node dans chacun de ces dossiers, dans l'ordre. which te dit dans quel dossier il a trouvé la commande.

Pour ajouter un dossier au PATH :

shell
export PATH="HOME/.local/bin:HOME/.local/bin:HOME/.local/bin:PATH"

Fichiers .env par projet

En développement, les projets utilisent souvent un fichier .env à leur racine pour stocker des variables de configuration (clés API, URLs de base de données, etc.). Ces fichiers ne sont pas sourcés automatiquement par le shell : c'est une bibliothèque dans ton code (comme dotenv en Node.js ou python-dotenv) qui les charge.

Variables Bash (GNU Bash manual)

Concepts-ponts

Coche les étapes pour débloquer la suite

Retour au cours