Archives Wild Code School
C#

2. Les variables d'environnement

Quête 20 sur 46 · 4 images archivées

Cette quête a pour but de te faire comprendre ce qu'est une variable d'environnement, ainsi que son utilité.

Objectifs

  • Lister les variables d'environnement
  • Afficher la valeur d'une variable d'environnement dans le terminal
  • Modifier sa valeur dans le terminal
  • Comprendre l'utilité de la variable d'environnement %PATH%
  • Modifier la variable %PATH% avec l'interface graphique

Ta mission en tant que dieu

Tu commences seul, dans l'immensité de toutes les possibilités qui s'offrent à toi. Tu n'as comme limite que ta créativité et ta volonté. Tu es le seul maître de l'univers qui s'offre à toi. Tu dois donc apprendre à maîtriser ton environnement pour que ton Univers ne soit pas hors de contrôle. Pour cela, tu as à disposition plusieurs mécanismes ingénieux qui te permettent de garder le contrôle.

A l'image de l'Univers physique où les constantes permettent la vie et gardent l'Univers plus ou moins stable, tu es le seul garant de la stabilité de ton environnement. Les constantes de ton Univers sont donc pour toi variables, puisque tu as un contrôle total sur ton Univers. Tu peux donc altérer à ton gré le fonctionnement et les constantes de ton Univers.

Mais fais attention à ne pas faire n'importe quoi, avec un grand pouvoir viennent de grandes responsabilités...

Qu'est-ce qu'une variable ?

Comme son nom le suggère très explicitement, une variable est variable. Outre sa variabilité, on peut la comparer à un tiroir dans lequel on range quelque chose. Une variable sert à stocker une ou des informations évoluant dans le temps. Elle est l'opposée d'une constante qui ne varie pas dans le temps.

De manière plus détaillée, une variable en informatique associe un nom à une valeur. Pour parler chaussettes, c'est comme si sur ton tiroir était collé une étiquette avec écrit (je te le donne en mille) : "chaussettes", pour ne pas que tu te trompes le matin en partant travailler. Ce tiroir contient des chaussettes et contiendra des chaussettes à jamais (à moins que tu ne te trompes pendant le rangement du linge).

Une variable est donc une valeur portant un nom.

Exemples:

shell
nombre_paires_chaussettes = 3

Voudrait dire qu'il y a trois paires de chaussettes.

shell
nombre_paires_chaussettes = 5
nombre_paires_chaussettes = nombre_paires_chaussettes - 2

On voit la variable nombre_paires_chaussettes être réduite de 2. Il reste donc 3 paires de chaussettes.

Le contenu d'une variable peut changer et cette valeur est identifiée par un nom qui explique son contenu. On se sert d'une variable pour stocker une valeur afin de pouvoir y accéder plus tard, en lecture et en écriture.

↗
Wikipédia - Concept de variable

Lire la définition

fr.wikipedia.org

Qu'est-ce qu'un environnement ?

Vous devez sûrement extrapoler en ces temps d'abondance et de destruction planétaire sur la signification supposée de "environnement". L'environnement au sens général est l'ensemble des éléments qui entourent un objet. Appliqué à l'informatique, le sens du mot "environnement" est le même : il s'agit de l'ensemble des éléments dans lequel l'utilisateur et les applications évoluent.

Dans notre cas, et pour faire simple : nous, utilisateurs, évoluons dans un système d'exploitation réalisant nos désirs par le biais matériel de l'ordinateur. Nous évoluons dans le même environnement qu'une application, qui a aussi besoin du système d'exploitation pour communiquer avec le matériel.

Pour plus de clarté, on peut réduire la notion d'environnement informatique à celle de système d'exploitation.

↗
Wikipédia - Concept d'environnement

Lire la définition

fr.wikipedia.org

Qu'est-ce qu'une variable d'environnement, alors ?

Comment mettre ces deux concepts ensemble ?

Tu as vu tout à l'heure qu'une variable est une valeur identifiée par un nom, et qu'un environnement est un contexte dans lequel un objet évolue. Tu as vu qu'on peut simplifier la notion d'environnement par celle de système d'exploitation. Si la variable est l'objet évoluant dans l'environnement, on peut dire qu'il s'agit dans notre cas d'une variable de système d'exploitation.

Eh oui, une variable d'environnement est tout simplement une variable appartenant au système d'exploitation, qui est l'environnement dans lequel elle évolue. Il s'agit d'une variable rendue accessible par le système d'exploitation, le plus souvent pour configuration et le partage d'informations inter-programmes.

A l'image des constantes physiques, les variables d'environnement ont un impact sur le système tout entier. Certaines doivent être manipulées avec une forte précaution.

↗
Wikipédia - Concept de variable d'environnement
fr.wikipedia.org

La variable d'environnement PATH

T'es-tu déjà demandé comment il est possible d'appeler des commandes dans le terminal sans avoir à spécifier leur chemin ? Et cela de n'importe où sur le système de fichiers. Pourtant, la quasi-totalité des exécutables sont des fichiers résidant à un endroit du disque. Quant aux commandes exécutées dans le Terminal Windows, elles résident très souvent dans le dossier C:\\Windows\System32 (si vous ne me croyez pas, allez donc y faire un tour :) ).

La variable d'environnement PATH permet à cette magie de fonctionner. Une variable d'environnement permet la configuration du système, et la variable PATH est une variable d'environnement. La variable PATH contient un ensemble de répertoires : ces répertoires PATH sont ceux dans lesquels le système ira chercher une exécutable si elle n'est pas dans le dossier courant.

Donc, pour pouvoir ajouter des exécutables au PATH, il suffit d'ajouter un répertoire à la variable PATH ! Aussi simple que ça :).

↗
Modifier la variable d'environnement PATH

Tutoriel vidéo

youtube.com
↗
Modifier la variable d'environnement PATH

Tutoriel écrit

pcastuces.com

Afficher des variables

Dans la ressource précédente, tu as vu comment modifier la valeur d'une variable d'environnement, et en particulier la variable PATH. Le processus est lourd et implique plusieurs clics et la connaissance des menus. Si un programme que nous écrivons venait à modifier une variable d'environnement, on ne le ferait jamais cliquer à notre place. C'est pour cela qu'il existe une commande dans le terminal qui modifie une variable d'environnement.

Il est possible d'afficher la valeur de la variable PATH ainsi que de la modifier. Pour appeler une variable dans le terminal Windows, vous devez entourer son nom avec le caractère %.

shell
C:\\Windows\System32> echo %PATH%

Vous voyez donc la valeur de PATH, qui est légèrement moins lisible que sur l'interface que vous avez modifiée tout à l'heure. Comment est-ce possible ? Vous avez appelé la commande echo qui affiche du texte, et vous avez ensuite passé en paramètre le contenu de la variable PATH. Vous voyez donc maintenant le contenu de la variable.

Merveilleux, mais je ne peux que l'afficher ... Y aurait-il un moyen de modifier la variable avec le terminal ?

Dangers sur le chemin

PATH est une variable très sensible. Elle te permet de naviguer de manière fluide dans ton terminal, sans avoir à taper le chemin complet d'une commande à chaque fois. Donc, si tu la manipules, tu dois faire très attention car tu risques de casser ton terminal et d'autres programmes. C'est pour cela que je te recommande fortement de modifier PATH à partir de l'interface graphique : tu prends beaucoup moins de risques et puis c'est beaucoup plus simple à comprendre. Si tu devais taper C:\\Windows\System32\dir à chaque fois que tu voulais afficher un répertoire, tu abandonnerais très vite ce merveilleux outil qu'est le terminal. Et qui plus est, tu abandonnerais aussi l'informatique car tu risquerais de passer pas mal de temps sur un terminal :D (et à casser des trucs).

Quoi qu'il en soit, tu es là pour apprendre à modifier une variable d'environnement depuis le terminal. Mais nous allons prendre des précautions pour que tu ne te retrouves pas bloqué sur un système qui ne fonctionne plus. Nous allons modifier PATH, mais nous n'allons pas répercuter sa modification sur tout le système. La commande qui te permet de modifier une variable d'environnement s'appelle set, et heureusement pour nous, son comportement par défaut consiste à ne pas modifier la variable PATH globalement, mais localement, dans ton terminal. Du coup, si ta variable PATH est illisible ou farfelue, il te suffira de lancer un nouveau terminal pour retenter ta chance.

Exemple:

shell
C:\\Windows\System32> set PATH=%PATH%;.

Ajoute le répertoire courant au PATH système local.

↗
La commande set
docs.microsoft.com

Challenge

Un programme accessible de n'importe où

Tu as à ta disposition un programme C# que tu peux télécharger en cliquant ici. Ce simple programme prend en paramètre un nom, puis affiche "Hello, {le nom passé en paramètre}".

Ta mission est de faire en sorte que ce programme s'exécute à partir du terminal, quelle que soit ta position dans le système de fichiers.

Critères de validation

  • Vidéo de ton terminal pendant que tu effectues la procédure