Recherche de site Web

Comment définir et supprimer des variables d'environnement locales, utilisateur et système sous Linux


Les Variables d'environnement sont des variables spéciales définies dans le shell et nécessaires aux programmes lors de leur exécution. Ils peuvent être définis par le système ou par l'utilisateur. Les variables définies par le système sont celles qui sont définies par le système et utilisées par les programmes au niveau du système.

Par ex. La commande PWD est une variable système très courante qui est utilisée pour stocker le répertoire de travail actuel. Les variables définies par l'utilisateur sont généralement définies par l'utilisateur, soit temporairement pour le shell actuel, soit de manière permanente. L'ensemble du concept de définition et de suppression de variables d'environnement tourne autour d'un ensemble de fichiers et de quelques commandes et différents shells.

En termes plus larges, une variable d'environnement peut être de trois types :

1. Variable d'environnement local

Celui défini pour la session en cours. Ces variables d'environnement ne durent que jusqu'à la session en cours, qu'il s'agisse d'une session de connexion à distance ou d'une session de terminal local. Ces variables ne sont spécifiées dans aucun fichier de configuration et sont créées et supprimées à l'aide d'un ensemble spécial de commandes.

2. Variable d'environnement utilisateur

Ce sont les variables qui sont définies pour un utilisateur particulier et sont chargées chaque fois qu'un utilisateur se connecte à l'aide d'une session de terminal local ou que cet utilisateur est connecté à l'aide d'une session de connexion à distance. Ces variables sont généralement définies et chargées à partir des fichiers de configuration suivants : .bashrc, .bash_profile, .bash_login, .profile fichiers présents dans le répertoire personnel de l'utilisateur.

3. Variables d'environnement à l'échelle du système

Ce sont les variables d'environnement disponibles dans tout le système, c'est-à-dire pour tous les utilisateurs présents sur ce système. Ces variables sont présentes dans les fichiers de configuration à l'échelle du système présents dans les répertoires et fichiers suivants : /etc/environment, /etc/profile, /etc/profile.d /, /etc/bash.bashrc. Ces variables sont chargées à chaque fois que le système est mis sous tension et connecté localement ou à distance par n'importe quel utilisateur.

Comprendre les fichiers de configuration à l'échelle de l'utilisateur et du système

Ici, nous décrivons brièvement divers fichiers de configuration répertoriés ci-dessus qui contiennent des variables d'environnement, à l'échelle du système ou spécifiques à l'utilisateur.

.bashrc

Ce fichier est un fichier spécifique à l'utilisateur qui est chargé chaque fois que l'utilisateur crée une nouvelle session locale, c'est-à-dire en termes simples, ouvre un nouveau terminal. Toutes les variables d'environnement créées dans ce fichier prendraient effet à chaque démarrage d'une nouvelle session locale.

.bash_profile

Ce fichier est un fichier de connexion à distance spécifique à l'utilisateur. Les variables d'environnement répertoriées dans ce fichier sont invoquées chaque fois que l'utilisateur est connecté à distance, c'est-à-dire à l'aide d'une session ssh. Si ce fichier n'est pas présent, le système recherche les fichiers .bash_login ou .profile.

/etc/environnement

Ce fichier est un fichier à l'échelle du système permettant de créer, de modifier ou de supprimer des variables d'environnement. Les variables d'environnement créées dans ce fichier sont accessibles dans tout le système, par chaque utilisateur, localement et à distance.

/etc/bash.bashrc

Fichier bashrc à l'échelle du système. Ce fichier est chargé une fois pour chaque utilisateur, chaque fois que cet utilisateur ouvre une session de terminal local. Les variables d'environnement créées dans ce fichier sont accessibles à tous les utilisateurs mais uniquement via une session de terminal local. Lorsqu'un utilisateur sur cette machine est accessible à distance via une session de connexion à distance, ces variables ne seront pas visibles.

/etc/profil

Fichier de profil à l’échelle du système. Toutes les variables créées dans ce fichier sont accessibles par chaque utilisateur du système, mais uniquement si la session de cet utilisateur est invoquée à distance, c'est-à-dire via une connexion à distance. Aucune variable de ce fichier ne sera accessible pour la session de connexion locale, c'est-à-dire lorsque l'utilisateur ouvre un nouveau terminal sur son système local.

Remarque : Les variables d'environnement créées à l'aide de fichiers de configuration à l'échelle du système ou à l'échelle de l'utilisateur peuvent être supprimées en les supprimant. à partir de ces fichiers uniquement. Juste après chaque modification de ces fichiers, déconnectez-vous et reconnectez-vous ou tapez simplement la commande suivante sur le terminal pour que les modifications prennent effet :

source <file-name>

Définir ou supprimer des variables d'environnement locales ou à l'échelle de la session sous Linux

Les variables d'environnement locales peuvent être créées à l'aide des commandes suivantes :

var=value 
OR
export var=value

Ces variables s'appliquent à l'ensemble de la session et ne sont valides que pour la session de terminal en cours. Pour effacer ces variables d'environnement à l'échelle de la session, les commandes suivantes peuvent être utilisées :

1. Utiliser l'environnement

Par défaut, la commande "env" répertorie toutes les variables d'environnement actuelles. Mais, s'il est utilisé avec le commutateur '-i', il efface temporairement toutes les variables d'environnement et permet à l'utilisateur d'exécuter une commande dans la session en cours en l'absence de toutes les variables d'environnement.

env –i [Var=Value]… command args…

Ici, var=value correspond à toute variable d'environnement locale que vous souhaitez utiliser uniquement avec cette commande.

env –i bash

Donnera un shell bash qui n'aura temporairement aucune variable d'environnement. Mais lorsque vous quittez le shell, toutes les variables seront restaurées.

2. Utilisation du désarmement

Une autre façon d’effacer la variable d’environnement locale consiste à utiliser la commande unset. Pour supprimer temporairement une variable d'environnement local,

unset <var-name>

Où, var-name est le nom de la variable locale que vous souhaitez supprimer ou effacer.

3. Définissez le nom de la variable sur "

Une autre manière moins courante serait de définir le nom de la variable que vous souhaitez effacer sur '' (Vide). Cela effacerait la valeur de la variable locale pour la session en cours pour laquelle elle est active.

REMARQUE – VOUS POUVEZ MÊME JOUER AVEC ET MODIFIER LES VALEURS DES VARIABLES DU SYSTÈME OU DE L'ENVIRONNEMENT UTILISATEUR, MAIS LES CHANGEMENTS SE REFLÉTERONT UNIQUEMENT DANS LA SESSION TERMINALE EN COURS ET NE SERONT PAS PERMANENTS.

Apprenez à créer des variables d'environnement à l'échelle de l'utilisateur et du système sous Linux

Dans la section, nous allons apprendre comment définir ou supprimer des variables d'environnement locales, utilisateur et système sous Linux avec les exemples ci-dessous :

1. Définir et désactiver des variables locales sous Linux

a.) Ici, nous créons une variable locale VAR1 et la définissons sur n'importe quelle valeur. Ensuite, nous utilisons unset pour supprimer cette variable locale, et à la fin, cette variable est supprimée.

VAR1='TecMint is best Site for Linux Articles'
echo $VAR1
unset VAR1
echo $VAR1

b.) Une autre façon de créer une variable locale consiste à utiliser la commande export. La variable locale créée sera disponible pour la session en cours. Pour désactiver la variable, définissez simplement la valeur de la variable sur ''.

export VAR='TecMint is best Site for Linux Articles'
echo $VAR
VAR=
echo $VAR

c.) Ici, nous avons créé une variable locale VAR2 et lui avons attribué une valeur. Ensuite, afin d'exécuter une commande effaçant temporairement toutes les variables d'environnement locales et autres, nous avons exécuté la commande 'env –i'. Cette commande a exécuté ici le shell bash en effaçant toutes les autres variables d'environnement. Après avoir entré 'exit' sur le shell bash invoqué, toutes les variables seraient restaurées.

VAR2='TecMint is best Site for Linux Articles'
echo $VAR2
env -i bash
echo $VAR2   

2. Définir et désactiver les variables d'environnement à l'échelle de l'utilisateur sous Linux

a.) Modifiez le fichier .bashrc dans votre répertoire personnel pour exporter ou définir la variable d'environnement que vous devez ajouter. Après cela, sourcez le fichier pour que les modifications prennent effet. Ensuite, vous verriez la variable ('CD' dans mon cas) prendre effet. Cette variable sera disponible à chaque fois que vous ouvrirez un nouveau terminal pour cet utilisateur, mais pas pour les sessions de connexion à distance.

vi .bashrc

Ajoutez la ligne suivante au fichier .bashrc en bas.

export CD='This is TecMint Home'

Exécutez maintenant la commande suivante pour apporter de nouvelles modifications et la tester.

source .bashrc 
echo $CD

Pour supprimer cette variable, supprimez simplement la ligne suivante du fichier .bashrc et re-sourcez-la :

b.) Pour ajouter une variable qui sera disponible pour les sessions de connexion à distance (c'est-à-dire lorsque vous vous connectez à l'utilisateur depuis un système distant), modifiez le fichier .bash_profile.

vi .bash_profile

Ajoutez la ligne suivante au fichier .bash_profile en bas.

export VAR2='This is TecMint Home'

Lors de la recherche de ce fichier, la variable sera disponible lorsque vous vous connectez à cet utilisateur, mais pas lors de l'ouverture d'un nouveau terminal local.

source .bash_profile 
echo $VAR2

Ici, VAR2 n'est pas initialement disponible mais, en effectuant ssh avec l'utilisateur sur localhost, la variable devient disponible.

ssh tecmint@localhost
echo $VAR2

Pour supprimer cette variable, supprimez simplement la ligne du fichier .bash_profile que vous avez ajouté et ressourcez le fichier.

REMARQUE : ces variables seront disponibles chaque fois que vous serez connecté à l'utilisateur actuel, mais pas aux autres utilisateurs.

3. Définir et supprimer les variables d'environnement à l'échelle du système sous Linux

a.) Pour ajouter une variable sans connexion à l'échelle du système (c'est-à-dire une variable qui est disponible pour tous les utilisateurs lorsque l'un d'entre eux ouvre un nouveau terminal mais pas lorsqu'un utilisateur de la machine est accessible à distance), ajoutez la variable à /etc/bash.bashrc.

export VAR='This is system-wide variable'

Après cela, sourcez le fichier.

source /etc/bash.bashrc 

Désormais, cette variable sera disponible pour chaque utilisateur lorsqu'il ouvrira un nouveau terminal.

echo $VAR
sudo su
echo $VAR
su -
echo $VAR

Ici, la même variable est disponible pour l'utilisateur root ainsi que pour l'utilisateur normal. Vous pouvez le vérifier en vous connectant à un autre utilisateur.

b.) Si vous souhaitez qu'une variable d'environnement soit disponible lorsqu'un utilisateur de votre machine est connecté à distance, mais pas lors de l'ouverture d'un nouveau terminal sur une machine locale, vous devez alors modifier le fichier. – '/etc/profile'.

export VAR1='This is system-wide variable for only remote sessions'

Après avoir ajouté la variable, ressourcez simplement le fichier. La variable serait alors disponible.

source /etc/profile
echo $VAR1

Pour supprimer cette variable, supprimez la ligne du fichier /etc/profile et re-sourcez-la.

c.) Cependant, si vous souhaitez ajouter un environnement que vous souhaitez rendre disponible dans tout le système, à la fois sur les sessions de connexion à distance ainsi que sur les sessions locales (c'est-à-dire l'ouverture d'une nouvelle fenêtre de terminal) pour tous utilisateurs, exportez simplement la variable dans le fichier /etc/environment.

export VAR12='I am available everywhere'

Après cela, recherchez simplement le fichier et les modifications prendront effet.

source /etc/environment
echo $VAR12
sudo su
echo $VAR12
exit
ssh localhost
echo $VAR12

Ici, comme nous le voyons, la variable d'environnement est disponible pour l'utilisateur normal, l'utilisateur root, ainsi que lors d'une session de connexion à distance (ici, sur localhost).

Pour effacer cette variable, supprimez simplement l'entrée dans le fichier /etc/environment et re-sourcez-la ou connectez-vous à nouveau.

REMARQUE : les modifications prennent effet lorsque vous sourcez le fichier. Mais sinon, vous devrez peut-être vous déconnecter et vous reconnecter.

Conclusion

Voici donc quelques façons de modifier les variables d’environnement. Si vous trouvez des astuces nouvelles et intéressantes, mentionnez-les dans vos commentaires.