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.