next up previous contents
Next: 2.5 Fichiers particuliers Up: 2. Premières courses Previous: 2.3 Utilisateurs : droits et devoirs [YB]

2.4 Les variables d'environnement [YB]

Il arrive parfois que certaines informations doivent être mise à disposition d'un grand nombre de programme. Par exemple, nous avons vu que lorsque vous exécutez une commande (telle qu'un simple <<ls>>), c'est en réalité un programme qui est exécuté ; or ce programme est contenu dans un fichier, qui doit être lu pour que le système puisse exécuter le programme. Mais comment le système fait-il pour trouver le fichier en question ? L'information indiquant à quels endroits chercher les fichiers contenant les programmes des diverses commandes doit donc être aisément accessible, et comme certaines commandes en appelle d'autres, cette information doit également être lisible par tout le monde.

Ce genre d'information largement diffusée dans le système est contenu dans ce que l'on appelle des variables d'environnement. Une variable est une zone de la mémoire, identifiée par une étiquette (un nom) et contenant quelque chose (un nombre, un mot...) Ces variables sont fixées, certaines au démarrage du système, d'autres lors de la connexion d'un utilisateur. Examinons l'une d'entre elle. Exécutez la commande suivante :

echo $PATH

La commande echo permet d'afficher quelque chose. Dans la commande précédente, nous lui demandons d'afficher le contenu d'une variable dont le nom est PATH. Notez l'utilisation du symbole dollar ('$') devant le nom de la variable, nécessaire lorsque l'on souhaite accéder au contenu de la variable. Le résultat devrait ressembler à peu prêt à ceci :

/usr/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/yves/bin

C'est manifestement là une suite de répertoires, donnés par leur chemin absolu, et séparés par le caractère deux-points (':'). Nous avons là précisément la réponse au problème posé au début de ce paragraphe : la variable d'environnement PATH contient une liste de répertoires dans lesquels chercher les fichiers contenant les programmes des commandes que l'on souhaite exécuter.

Supposons maintenant que vous souhaitiez modifier cette variable, pour lui rajouter par exemple le répertoire /sbin. Si vous utilisez le shell Bash, la commande à utiliser est :

export PATH="$PATH:/sbin"

Notez les deux modes d'emploi du nom de la variable : d'abord sans le dollar à gauche du signe égale, parce que l'on fixe sa valeur ; puis avec le dollar, parce que l'on lit sa valeur. Vérifions ce que nous venons de faire :

echo $PATH

/usr/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/yves/bin:/sbin

... ce qui est bien le résultat escompté. Si par contre vous utilisez le C-shell, la commande est :

setenv PATH "${PATH}:/sbin"

Le résultat est le même, la variable PATH est modifiée.

Il existe un grand nombre de variables d'environnement, chacune destinée à un usage particuliers. Chaque shell actif possède son propre ensemble de variables d'environnement : si deux utilisateurs sont connectés simultanément sur la même machine, on a deux shells actifs, et chacun possède ses propres variables d'environnement, qui ne sont pas forcément les mêmes. Mieux, une variable donnée peut avoir deux valeurs différentes selon l'utilisateur.

Pour obtenir l'ensemble des variables d'environnement définies lorsque vous êtes connectés avec leurs valeurs, utilisez la commande <<env>>.


next up previous contents
Next: 2.5 Fichiers particuliers Up: 2. Premières courses Previous: 2.3 Utilisateurs : droits et devoirs [YB]
kafka.fr@linux-france.org