GNU/Linux >> Tutoriels Linux >  >> Linux

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

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 définis 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 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. Tout le concept de définition et de suppression des variables d'environnement tourne autour d'un ensemble de fichiers, de quelques commandes et de 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 qui 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 qui sont disponibles à l'échelle du 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 à l'échelle du système

Ici, nous décrivons brièvement divers fichiers de configuration répertoriés ci-dessus qui contiennent des variables d'environnement, soit à l'échelle du système, soit 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 se connecte à distance, c'est-à-dire en utilisant une session ssh. Si ce fichier n'est pas présent, le système recherche soit .bash_login ou .profile fichiers.

/etc/environnement

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

/etc/bash.bashrc

bashrc à l'échelle du système dossier. 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 de cette machine est accessible à distance via une session de connexion à distance, ces variables ne sont 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 appelé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  :Variables d'environnement créées à l'aide de système global ou à l'échelle de l'utilisateur les fichiers de configuration peuvent être supprimés en les supprimant uniquement de ces fichiers. Juste qu'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 annuler les variables d'environnement locales ou à l'échelle de la session sous Linux

Variables d'environnement locales peut être créé en utilisant les 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 env

Par défaut, "env" La commande répertorie toutes les variables d'environnement actuelles. Mais, si utilisé avec '-i' switch, 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 local que vous souhaitez utiliser uniquement avec cette commande.

$ env –i bash

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

2. Utiliser unset

Une autre façon d'effacer la variable d'environnement locale consiste à utiliser la commande unset. Pour désactiver 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 méthode moins courante consisterait à définir le nom de la variable que vous souhaitez effacer sur '' (Vider). 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 D'ENVIRONNEMENT DU SYSTÈME OU DE L'UTILISATEUR, MAIS LES CHANGEMENTS SE RÉFLÈTERONT UNIQUEMENT DANS LA SESSION DE TERMINAL EN COURS ET NE SERONT PAS PERMANENTS.

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

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

1. Définir et annuler les variables locales sous Linux

a.) Ici, nous créons une variable locale VAR1 et réglez-le 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 export commande. 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 définissez-le sur une valeur. Ensuite, afin d'exécuter une commande effaçant temporairement toutes les variables d'environnement locales et autres, nous avons exécuté 'env –i' commande. Cette commande a exécuté le shell bash en effaçant toutes les autres variables d'environnement. Après avoir saisi '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 supprimer les variables d'environnement à l'échelle de l'utilisateur sous Linux

a.) Modifier .bashrc fichier dans votre répertoire personnel pour exporter ou définir la variable d'environnement que vous devez ajouter. Après cette source le fichier, pour que les modifications prennent effet. Ensuite, vous verriez la variable ('CD' dans mon cas), prenant 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 à .bashrc fichier en bas.

export CD='This is TecMint Home'

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

$ source .bashrc 
$ echo $CD

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

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

$ vi .bash_profile

Ajoutez la ligne suivante à .bash_profile fichier en bas.

export VAR2='This is TecMint Home'

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

$ source .bash_profile 
$ echo $VAR2

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

$ ssh [email protected]
$ echo $VAR2

Pour supprimer cette variable, supprimez simplement la ligne dans .bash_profile fichier que vous avez ajouté et re-sourcez le fichier.

REMARQUE  :Ces variables seront disponibles chaque fois que vous vous connecterez à 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 de non-connexion à l'échelle du système (c'est-à-dire une variable disponible pour tous les utilisateurs lorsque l'un d'eux ouvre un nouveau terminal mais pas lorsqu'un utilisateur de la machine est accessible à distance), ajoutez la variable à /etc/bash.bashrc fichier.

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 root utilisateur ainsi que 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 lorsque l'un des utilisateurs de votre machine est connecté à distance, mais pas lors de l'ouverture d'un nouveau terminal sur la machine locale, vous devez modifier le fichier - '/etc/profile' .

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

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

$ source /etc/profile
$ echo $VAR1

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

c.) Cependant, si vous souhaitez ajouter un environnement que vous souhaitez rendre disponible dans tout le système, 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 les utilisateurs, exportez simplement la variable dans /etc/environnement fichier.

export VAR12='I am available everywhere'

Après cela, sourcez 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 sur la session de connexion à distance (ici, à localhost ).

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

REMARQUE :les modifications prennent effet lorsque vous sourcez le fichier. Mais si ce n'est pas le cas, vous devrez peut-être vous déconnecter et vous reconnecter.

Conclusion

Ainsi, ce sont quelques façons de modifier les variables d'environnement. Si vous trouvez de nouvelles astuces intéressantes pour la même chose, mentionnez-les dans vos commentaires.


Linux
  1. Variables d'environnement Linux :comment lire et définir sur un VPS Linux

  2. Comment définir/créer des variables d'environnement et de shell sous Linux

  3. Comment définir, répertorier et supprimer des variables d'environnement sous Linux

  4. Exemples de commandes d'exportation Linux (Comment définir des variables d'environnement)

  5. Comment configurer une connexion Wifi-Direct entre Android et Linux

Comment définir et répertorier les variables d'environnement sous Linux

Comment définir ou modifier le nom d'hôte sous Linux

Comment définir et répertorier les variables d'environnement sous Linux

Comment définir/annuler les variables d'environnement sous Linux

Comment changer ou définir un mot de passe utilisateur sous Linux

Comment définir et supprimer des variables d'environnement sous Linux