Bash environment
plus d'informations sur http://doc.ubuntu-fr.org/variables_d_environnement
Sommaire
Assigner des valeurs aux variables d'environnement
Pour affecter une valeur à une variable d'environnement existante, nous utilisons une expression d'affectation. Par exemple pour assigner la valeur « fr_FR.UTF-8 » à la variable « LANG », nous utilisons la commande suivante :
LANG=fr_FR.UTF-8
Si nous utilisons une expression d'affectation pour une variable qui n'existe pas, l'interpréteur de commande créera une « variable de shell », qui est similaire à une variable d'environnement mais qui n'affectera pas le comportement d'autres applications.
Une variable de shell peut être exportée pour devenir une variable d'environnement grâce à la commande export. Pour créer la variable d'environnement « EDITOR » et lui assigner la valeur « nano », plusieurs méthodes peuvent être utilisée. Voici celle que nous proposons :
EDITOR=nano export EDITOR
L'interpréteur de commandes bash (celui qui est fourni par défaut avec Ubuntu) propose un raccourci pour créer des variables d'environnement. L'exemple précédent peut être condensé en une seule ligne de commande :
export EDITOR=nano
Examiner les valeurs des variables d'environnement
La commande printenv affichent les noms et les valeurs de toutes les variables d'environnement définies :
printenv
Pour examiner la valeur d'une variable en particulier, il suffit de spécifier son nom après la commande printenv :
printenv TERM
La valeur de la variable peut également être récupérée en utilisant le signe « $ » devant son nom, comme dans l'exemple suivant :
echo $TERM
Il existe une commande qui permet de faire des modifications temporaires, à court terme, sur l'environnement. Cela peut aussi être utilisé pour afficher les variables d'environnement courantes. Il s'agit de la commande env :
env
Le signe dollar peut être utilisé pour récupérer la valeur des variables d'environnement dans les lignes de commandes. Par exemple, la commande suivante peut être utilisée pour lister les fichiers du bureau (dossier Desktop) de l'utilisateur courant :
ls $HOME/Desktop
Effacer des variables d'environnement Dans la plupart des cas, affecter une valeur vide à une variable d'environnement suffit à annuler son effet, comme dans l'exemple ci-dessous. Cependant certaines variables comme « POSIXLY_CORRECT » ont une influence sur les programmes du fait même de leur existence, et ce, même si leur valeur est vide.
export LC_ALL=
La commande unset peut être utilisée pour supprimer complètement une variable d'environnement :
unset LC_ALL
Il est également possible d'utiliser la commande export avec l'argument -n. Ceci aura pour effet de faire perdre à la variable son statut de variable d'environnement, elle devient une variable de shell tout en conservant sa valeur.
export -n LC_ALL
variables d'environnement principales
User Environment
Variable | Exemple de valeur | Rôle |
---|---|---|
USERNAME | nom_utilisateur | Le nom de l'utilisateur actuellement connecté. Cette variable est définie par le système.Vous ne devriez certainement pas changer sa valeur manuellement. |
LOGNAME | nom_utilisateur | Similaire à USER, certains programmes utilisent celle-ci de préférence à USER |
HOME | /home/utilisateur | Emplacement du répertoire personnel de l'utilisateur actuellement connecté. |
PWD | /home/utilisateur/Desktop | Le répertoire de travail courant de l'interpréteur de commande. |
SHELL | /bin/bash | L'interpréteur de commande préféré de l'utilisateur tel qu'il est défini dans le fichier « /etc/passwd » |
POSIXLY_CORRECT | s.o. | L'existence même de cette variable d'environnement, indépendamment de sa valeur, oblige quelques utilitaires à se comporter de manière plus conforme au standard POSIX. Cela peut provoquer le dysfonctionnement de divers outils GNU qui facilitent la vie, mais c'est peut être justement ce qui est recherché pour faire fonctionner correctement de vieux scripts UNIX. |
HOSTALIASES | /etc/host.aliases | Le nom du fichier contenant les alias des noms d'hôtes pour utiliser avec divers logiciels réseau. |
TZDIR | /usr/share/zoneinfo | Le chemin du dossier contenant les fichiers d'informations sur les fuseaux horaires (TimeZoneDIRectory).Il est généralement inutile de la définir manuellement car les systèmes cherchent de tels fichiers dans /usr/share/zoneinfo, par défaut. |
TZ | IST-2:Japan | Cette variable était utilisée par les anciens systèmes Unix pour spécifier le fuseau horaire du système. Cependant, Ubuntu et la plupart des systèmes récents utilisent pour cela le fichier /etc/localtime. Elle peut néamoins être utilisée afin qu'une session utilisateur particulière affiche l'heure pour un fuseau horaire différent de celui du système. La valeur de cette variable peut être soit le nom et le décalage d'un fuseau horaire (premier exemple), soit le nom d'un fichier de zone situé dans /usr/share/zoneinfo (second exemple). |
TERM | xterm | Le nom d'un fichiers d'informations sur le terminal situé dans /lib/terminfo, ce fichier indique au programme en mode console comment effectuer certaines tâches telles que l'affichage des couleurs. Il peut être utile de jouer avec cette variable si vous essayez d'utiliser un programme d'émulation de terminal inhabituel, ou si vous essayez de connecter un émulateur de terminal matériel par le port série et que vous n'obtenez pas les résultats escomptés. |
TERMCAP | Cette variable peut être utilisée à la place de "TERM" pour spécifier les informations sur le terminal manuellement, plutôt que d'avoir recours à un fichier. | |
COLUMNS | 80 | Le nombre de colonnes sur la fenêtre de console. Try adjusting this variable if lines don't seem to wrap properly in the console. |
LINES | 25 | Le nombre de lignes sur la fenêtre de console. Essayez d'ajuster cette variable si vous obtenez des résultats étranges lorsque vous faites défiler le texte. |
http_proxy | http://user:passwd@proxy:port/ | La variable pour utiliser un proxy, marche aussi avec HTTP_PROXY, ftp_proxy et FTP_proxy |
Regional Environment
Variable | Rôle |
---|---|
$LANG | Le paramètre linguistique de base utilisé par les applications du système, tant qu'il n'est pas contredit par une autre variable |
$LC_CTYPE | Le jeu de caractères utilisé pour saisir et afficher du texte |
$LC_NUMERIC | Mise en forme des valeurs numériques non-monétaires |
$LC_TIME | Format de la date et de l'heure |
$LC_COLLATE | Comment trier diverses informations, définit par exemple l'ordre alphabétique afin que les éléments puissent être triés alphabétiquement en utilisant la commande sort |
$LC_MONETARY | Format des valeurs numériques monétaires |
$LC_MESSAGES | Langue utilisée pour afficher les messages à l'utilisateur |
$LC_PAPER | Définitions des formats de papier standard |
$LC_NAME | Format des noms |
$LC_ADDRESS | Format des adresses |
$LC_TELEPHONE | Structure des numéros de téléphone |
$LC_MEASUREMENT | Unités de mesure à utiliser |
$LC_IDENTIFICATION | |
$LC_ALL | Cette variable a un rôle puissant pour écraser les autres paramètres régionaux. Lorsqu'une valeur lui est affectée, les applications utiliseront cette valeur quelle que soient les valeurs des autres variables |