Une variable d'environnement est une variable dynamique utilisée par des processus ou des applications afin de définir des chemins ou des raccourcis d'information.
Les variables d'environnement sont dynamiques. C'est à dire qu'elles peuvent chacune changer en fonction de divers paramètres que l'utilisateur demande, l'endroit où l'on se trouve sur le serveur, le langage qu'on utilisons …
Cette variable contient le chemin du répertoire d'accueil de l'utilisateur.
Cette variable contient une liste de répertoire dans lesquels le shell recherche toutes les commandes qui sont exécutées. Si une commande est exécutée et qu'elle ne se trouve dans aucun des répertoires indiqués dans la variable PATH, une erreur sera retournée en indiquant que la commande est introuvable. Si l'on souhaite exécuter une commande qui se trouve dans un répertoire non indiqué dans la variable PATH, il suffit tout simplement de modifier le contenu de la variable.
$ PATH=$PATH:/leRepertoireDeMaCommande
Pour modifier la variable PATH définitivement, il suffit d'ajouter une ligne au fichier ~/.bashrc :
> export PATH=$PATH:/mon_autre_repertoire
Ou modifier directement le fichier /etc/environment :
> PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/mon_autre_repertoire"
Pour exécuter une commande présente dans le répertoire courant, il suffit d'ajouter à la variable PATH la valeur “:.” ou “:”.
Cette variable contient le chemin du répertoire courant.
Cette variable contient la chaine de caractères correspondant au prompt ($ en règle générale).
Pour faire apparaitre la valeur du répertoire courant dans le prompt :
$PS1='$PWD$ '
ou
$ PS1='\w$ '
Le tableau ci-dessous présente les séquences d'échappement permettant de paramétrer la variable PS1
Séquence échappement | Valeur |
---|---|
\u | Nom de l'utilisateur |
\h | Nom de la machine |
\w | Répertoire courant |
\W | Partie terminale du répertoire courant |
Cette variable contient la chaine de caractères correspondant au prompt secondaire (> en règle générale).
$ echo 'ceci est le début > de ma chaine de texte > et tant que je ne saisi pas > le caractère apostrophe > ça continue > ' ceci est le début de ma chaine de texte et tant que je ne saisi pas le caractère apostrophe ça continue $
Cette variable contient le type du terminal de l'utilisateur.
Cette variable contient le nom de l'utilisateur connecté.
Dans cette section, nous allons apprendre à voir, définir et supprimer des variables d'environnement sous Linux.
La commande set
permet d'obtenir la liste des variables pour le shell courant..
$ set
Le soucis avec “set” est que la commande liste aussi les fonctions, la commande env
permet d'obtenir une sortie plus classique.
$ env BASH=/bin/bash HOME=/home/toto HOSTNAME=myhostname PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games PS1='\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h$ PS2='> ' PS4='+ ' SHELL=/bin/bash ...
Le caractère $ permet d'obtenir la valeur d'une variable :
$ echo $BASH /bin/bash
On peut également filtrer la sortie de la commande set
$ set | grep EDITOR EDITOR=/usr/bin/nano
ou de la commande env
$ env | grep EDITOR EDITOR=/usr/bin/nano
ou env
On peut facilement créer une variable d'environnement pour le shell en cours avec la commande suivante :
$ export DIR_APPLI=/etc/appli
On peut vérifier ensuite que la variable est créée :
$ echo $DIR_APPLI
Cela devrait renvoyer selon l'exemple “/etc/appli”. On pourra alors utiliser cette variable dans un fichier de configuration (par exemple). Il est important de savoir que la création d'une variable d'environnement n'est valable que pour la session en cours. Pour rendre cette création permanente, il faut saisir cette même commande dans le fichier “/home/$USER/.bashrc” de l'utilisateur en cours (si l'on veut que la variable ne soit que pour l'utilisateur) ou dans le fichier “/etc/bash.bashrc”, pour tous les utilisateurs.
La suppression d'une variable peut se faire avec la commande “unset” qui est faite pour effacer complètement une variable d'environnement (pour la session en cours !) :
$ unset $VAR
On pourra ensuite vérifier que la variable à été correctement supprimée avec la commande d'affichage des variables d'environnement :
$ env
Si la variable à juste été définie pour une session, elle sera effacée au prochain redémarrage.
Les fichiers d'environnement sont utilisés pour stocker de manière permanente tout le paramétrage de l'environnement de l'utilisateur.
Ce sont des scripts shell qui contiennent un ensemble de commandes Linux.
Certains scripts sont exécutés uniquement par le shell de connexion et d'autres par un shell ordinaire.
Le shell de connexion est lancé immédiatement après l'identification de l'utilisateur.
Le shell de connexion exécute en premier le script /etc/profile. Ce script contient le paramétrage commun à tous les utilisateurs.
Il recherche ensuite dans le répertoire d'accueil de l'utilisateur un script dont le nom dépend du shell utilisé.
Le script de connexion se nomme ~/.profile
L'un des 3 scripts suivants dans l'ordre :
~/.bash_profile ~/.bash_login ~/.profile
En bash, le shell de connexion exécute en premier le script /etc/profile, puis le script ~/.profile et enfin le script ~/.bashrc.
C'est dans ce dernier fichier, ~/.bashrc, que l'on peut définir de nouveaux alias, exporter automatiquement de nouvelles variables, paramétrer l'auto-complétion, définir les variables PS1 et PS2, paramétrer le nombre de commandes à historiser, etc etc.
Par exemple, en BASH, pour utiliser le programme nano (éditeur de texte) comme éditeur par défaut du programme mutt (client mail en ligne de commande), il suffit d'inscrire dans son fichier ~/.bashrc :
export EDITOR=/usr/bin/nano