Variables d'environnement des shells Bash et Korn
Les shells bash et ksh93 stockent des informations sur des variables spéciales constituant pour les shells des variables d'environnement. Pour afficher la liste complète des variables d'environnement actuelles pour le shell bash, exécutez la commande declare.
$ declare
BASH=/usr/bin/bash
BASH_ARGC=()
BASH_ARGV=()
BASH_LINEND=()
BASH_SOuRCE=()
BASH_VERSINFO=([0]=''3'' [1]=''2'' [2]=''25'' [3]=''1''
[4]=''release'' [5]''
.
.
.
Pour le shell ksh93, utilisez la commande set, qui est l'équivalent de la commande declare du shell bash.
$ set
COLUMNS=80
ENV='$HOME/.kshrc'
FCEDIT=/bin/ed
HISTCMD=3
HZ=''
IFS=$' \t\n'
KSH_VERSION=.sh.version
LANG=C
LINENO=1
.
.
.
Pour imprimer les variables d'environnement de l'un ou l'autre shell, utilisez la commande echo ou la commande printf. Ainsi,
$ echo $SHELL
/usr/bin/bash
$ printf "$PATH\n"
/usr/bin:/usr/sbin
Remarque -
Les variables de l'environnement ne sont pas préservées entre deux sessions. Pour configurer les valeurs de variable d'environnement persistant, définissez les valeurs dans le fichier
.bashrc.
Un shell peut avoir deux types de variables :
- Variables d'environnement
-
Variables exportées vers tous les processus générés par le shell. La commande exporter permet d'exporter une variable. Ainsi,
export VARIABLE=value
Ces paramètres peuvent être affichés à l'aide de la commande env. Un sous-ensemble de variables d'environnement, tel que PATH, affecte le comportement du shell lui-même.
- Variables (locales) de shell
-
Variables qui affectent uniquement le shell actuel.
Dans un fichier d'initialisation utilisateur, vous pouvez personnaliser l'environnement de shell d'un utilisateur en modifiant les valeurs des variables prédéfinies ou en spécifiant des variables supplémentaires.
Le tableau suivant fournit plus de détails sur le shell et les variables d'environnement disponibles dans la version d'Oracle Solaris.
Table 1-10 Description des variables d'environnement et shell
|
|
|
Définit une variable utilisée par la commande cd. Si le répertoire cible de la commande cd est spécifié comme un chemin d'accès relatif, la commande cd recherche d'abord le répertoire cible dans le répertoire courant (.). Si la cible est introuvable, les chemins d'accès répertoriés dans la variable CDPATH sont recherchés consécutivement jusqu'à ce que le répertoire cible soit détecté et le changement de répertoire terminé. Si le répertoire cible est introuvable, le répertoire de travail courant est laissé intact. Par exemple, la variable CDPATH est définie sur /home/jean, et deux répertoires existent sous /home/jean, bin et doc. Dans le répertoire /home/jean/bin, lorsque vous tapez cd doc, vous changez les répertoires en /home/jean/doc, même si vous ne spécifiez pas un chemin d'accès complet.
|
|
Définit le chemin d'accès au répertoire personnel de l'utilisateur.
|
|
Définit l'environnement linguistique.
|
|
Définit le nom de l'utilisateur actuellement connecté. La valeur par défaut de LOGNAME est définie automatiquement par le programme de connexion pour le nom d'utilisateur spécifié dans le fichier passwd. Vous devez uniquement vous référez à cette variable, mais pas la réinitialiser.
|
|
Définit le chemin d'accès à la boîte aux lettres de l'utilisateur.
|
|
Définit les hiérarchies de pages de manuel disponibles.
Remarque -
A partir de la version Oracle Solaris 11, la variable d'environnement MANPATH n'est plus requise. La commande man détermine le MANPATH approprié, selon la valeur de la variable d'environnement PATH.
|
|
Indique, dans l'ordre, les répertoires analysés par le shell pour trouver le programme à exécuter lorsque l'utilisateur saisit une commande. Si le répertoire ne se trouve pas dans le chemin de recherche, les utilisateurs doivent entrer le nom de chemin d'accès complet d'une commande.
Dans le cadre du processus de connexion, la valeur par défaut PATH est automatiquement définie comme indiqué dans .profile .
L'ordre du chemin de recherche est important. Lorsque des commandes identiques figurent à différents emplacements, la première commande détectée avec ce nom est utilisée. Supposons par exemple que PATH est défini dans la syntaxe shell en tant que PATH=/usr/bin:/usr/sbin:$HOME/bin et qu'un fichier nommé sample réside à la fois sous /usr/bin et /home/jean/bin. Si l'utilisateur saisit la commande sample sans indiquer son chemin d'accès complet, la version trouvée dans /usr/bin est utilisée.
|
|
Définit l'invite de shell pour le shell bash ou ksh93.
|
|
Définit le shell par défaut utilisé par make, vi et d'autres outils.
|
|
Nomme un répertoire lorsqu'une autre base de données terminfo est stockée. Utilisez la variable TERMINFO dans le fichier /etc/profile ou /etc/.login. Pour plus d'informations, reportez-vous à la page de manuel terminfo(4).
Lorsque la variable d'environnement TERMINFO est définie, le système vérifie d'abord le chemin d'accès TERMINFO défini par l'utilisateur. Si le système ne trouve pas la définition d'un terminal dans le répertoire TERMINFO défini par l'utilisateur, il effectue une recherche dans le répertoire par défaut, /usr/share/lib/terminfo pour une définition. Si le système ne trouve pas de définition dans l'un ou l'autre des emplacements, le terminal est qualifié de "terminal idiot".
|
|
Définit le terminal. Cette variable doit être réinitialisée dans le fichier /etc/profile ou le fichier /etc/.login. Lorsque l'utilisateur appelle un éditeur, le système recherche un fichier portant le même nom et qui est défini dans cette variable d'environnement. Le système effectue une recherche dans le répertoire référencé par TERMINFO afin de déterminer les caractéristiques des terminaux.
|
|
Définit le fuseau horaire. Le fuseau horaire est utilisé pour afficher les dates, par exemple, dans la commande ls -l. Si TZ n'est pas défini dans l'environnement utilisateur, le paramètre système est utilisé. Dans le cas contraire, l'heure moyenne de Greenwich est utilisée.
|
|