Maison  >  Article  >  Tutoriel système  >  L'utilisation des variables d'environnement sous Linux est divisée par le même cycle de vie

L'utilisation des variables d'environnement sous Linux est divisée par le même cycle de vie

王林
王林avant
2024-03-25 08:00:49639parcourir

Préface :

1. Les variables d'environnement sont des variables définies par l'environnement du système d'exploitation et sont applicables aux processus utilisateur dans l'ensemble du système ;

2. Les variables d'environnement peuvent être définies dans la commande, et cette valeur de paramètre sera perdue lorsque l'utilisateur se déconnectera ;

3. Si vous souhaitez l'appliquer à plusieurs reprises, il est préférable de le définir dans .profile ; l'utilisation des variables d'environnement est la même que l'utilisation des variables locales,

;

4. Et avant utilisation, il faut l'importer avec la commande export.

1. Introduction aux fichiers de variables d'environnement

Les variables d'environnement sous Linux incluent les variables d'environnement au niveau du système et au niveau de l'utilisateur. Les variables d'environnement au niveau du système sont des variables système que chaque utilisateur qui se connecte au système doit lire, tandis que les variables d'environnement au niveau de l'utilisateur sont des variables d'environnement qui sont chargées lorsque l'utilisateur utilise. le système. , de sorte que les fichiers qui gèrent les variables d’environnement sont également divisés en niveau système et niveau utilisateur.

2.Types de variables sous Linux

Définies par le cycle de vie des variables, les variables Linux peuvent être divisées en deux catégories :

1. Permanent : Le fichier de configuration doit être modifié et les variables prendront effet de manière permanente

2. Temporaire : utilisez la commande d'exportation pour déclarer, la variable deviendra invalide à la fermeture du shell

3. Fichier de variables d'environnement Linux

Les fichiers de variables Linux incluent /etc/environment ou /etc/profile ou ~/.profile ou /etc/bash.bashrc ou ~/.bashrc, et ~/.bash_profile (généralement créé par les utilisateurs dans leurs propres répertoires), ~ / .bash_logout.

Niveau système :

1./etc/environment : C'est le premier fichier lu par le système lors de la connexion. Ce fichier définit l'environnement de l'ensemble du système. Ce fichier ne sera lu qu'au démarrage du système. Le téléchargement de Redhat Linux est utilisé pour définir. l'environnement pour tous les processus. Lorsque le système utilise ce fichier, il n'exécute pas les commandes de ce fichier. Au lieu de cela, il suit le code en mode KEY=VALUE et définit VALUE sur le paramètre KEY. Par conséquent, si vous souhaitez définir la variable d'environnement PATH dans le fichier. fichier, il vous suffit d'ajouter une ligne du formulaire : Le code de PATH=$PATH:/xxx/bin suffit

2./etc/profile : Ce fichier est le deuxième fichier exécuté lorsque le système se connecte. Définir les informations d'environnement pour chaque utilisateur du système Lorsque l'utilisateur se connecte pour la première fois, ce fichier est exécuté. Et collectez les paramètres du shell à partir du fichier de configuration dans le répertoire /etc/profile.d. (/etc/profile peut être utilisé pour définir des variables d'environnement pour tous les utilisateurs de l'ensemble du système. La période de la variable d'environnement est permanente)

3./etc/bashrc : Il s'agit d'un fichier d'initialisation bash pour tous les utilisateurs. Les variables d'environnement définies ici seront appliquées aux shells de tous les utilisateurs. Ce fichier sera exécuté à chaque fois que l'utilisateur ouvrira le shell. (C'est-à-dire que chaque fois qu'un nouveau terminal est ouvert, /etc/bashrc sera exécuté).

Niveau utilisateur (ce fichier se trouve dans le répertoire personnel) :

1.~/.profile : Le fichier de profil correspondant à l'utilisateur actuellement connecté permet de personnaliser l'environnement de travail personnel de l'utilisateur actuel (la variable est permanente. Chaque utilisateur peut utiliser ce fichier pour saisir des informations shell dédiées à son propre usage). . Ce fichier n'est exécuté qu'une seule fois lorsque l'utilisateur se connecte ! Par défaut, il définit certaines variables d'environnement et exécute le fichier .bashrc de l'utilisateur. C'est l'endroit recommandé pour mettre vos paramètres personnels

2.~/.bashrc : Ce fichier contient des informations bash spécifiques à votre bashshell. Ce fichier est lu lors de la connexion et à chaque fois qu'un nouveau shell est ouvert. (~/.bashrc est uniquement destiné à l'utilisateur actuel, le cycle de vie des variables est permanent)

Il n'est pas recommandé de le mettre ici, car chaque fois qu'un shell est ouvert, ce fichier sera lu une fois

Dans un système Linux, quel est le shell par défaut

, et l'efficacité sera certainement affectée.

3.~/.bash_profileor~./bash_login:~/.bash_profile est utilisé pour entrer bash en mode de connexion interactif, ~/.bashrc est utilisé pour entrer bash en mode interactif sans connexion. Généralement, les paramètres du. deux sont à peu près identiques. Donc, généralement, le dernier appellera le premier. Chaque utilisateur peut utiliser ce fichier pour saisir des informations shell spécifiques à sa propre utilisation. Lorsque l'utilisateur se connecte, le fichier n'est exécuté qu'une seule fois. Par défaut, il définit certaines variables d'environnement et exécute le fichier .bashrc de l'utilisateur. (S'il n'y a pas de .bash_profile dans le répertoire ~/, créez-en un nouveau) C'est l'endroit recommandé pour placer les paramètres personnels

Lorsqu'un shell est fermé, les variables système définies dans bash_profile deviendront invalides. Pour ce faire, exécutez sourcebash_profile chaque fois que vous ouvrez un nouveau shell et pour l'utilisateur actuel.

4.~/.pam_environment : fichier de configuration des variables d'environnement au niveau de l'utilisateur. Je ne l'ai pas testé, donc je ne sais pas s'il fonctionne.

5.~/.bash_logout : Exécutez ce fichier à chaque fois que vous quittez le système (quittez bashshell). De plus, les variables (globales) définies dans /etc/profile peuvent affecter n'importe quel utilisateur, tandis que les variables (locales) définies dans ~/.bashrc ne peuvent hériter que des variables dans /etc/profile. Elles sont "mère et enfant" ". relation.

4. Ordre d'exécution des fichiers de variables d'environnement Linux

1. Le processus d'exécution des fichiers lors de la connexion à Linux est le suivant :

Lorsque vous vous connectez pour la première fois à LinuxDans le système Linux, quel est le shell par défaut ?,

Démarrez d’abord le fichier /etc/profile,

Après cela, démarrez l'un des fichiers ~/.bash_profile, ~/.bash_login ou ~/.profile dans le répertoire utilisateur. L'ordre d'exécution des fichiers dans le répertoire du propriétaire est :

~/.bash_profile->~/.bash_login->~/.profile.

Si le fichier ~/.bash_profile existe, le fichier ~/.bashrc sera généralement exécuté.

Parce qu'il y a généralement le code suivant dans le fichier ~/.bash_profile :

if [ -f ~/.bashrc ] ; then
 . ./bashrc
fi

~/.bashrc contient généralement le code suivant :

if [ -f /etc/bashrc ] ; then
 . /etc/bashrc
fi

Donc, ~/.bashrc appellera le fichier /etc/bashrc. Enfin, à la sortie du shell, le fichier ~/.bash_logout est exécuté.

L'ordre d'exécution est :/etc/profile->(~/.bash_profile|~/.bash_login|~/.profile)->~/.bashrc->/etc/bashrc->~/.bash_logout

Les avantages de divers fichiers de configuration de variables d'environnement tels que /etc/profile et /etc/environment

1) Ajoutez d’abord exportLANG=zh_CN à /etc/profile, quittez le système et reconnectez-vous. L’invite de connexion affichera le chinois.

2) Supprimez d'abord exportLANG=zh_CN dans /etc/profile, ajoutez LNAG=zh_CN à /etc/environment, quittez le système et reconnectez-vous. L'invite de connexion s'affichera en anglais.

Dans le processus d'amélioration de l'environnement utilisateur, exécutez toujours /etc/profile en premier, puis lisez /etc/environment.

Pourquoi y a-t-il les différences mentionnées ci-dessus ? Au lieu d'exécuter d'abord /etc/environment puis /etc/profile ?

En effet, /etc/environment doit définir l'environnement de l'ensemble du système, tandis que /etc/profile doit définir l'environnement de tous les utilisateurs. Ce dernier n'a rien à voir avec l'utilisateur connecté, tandis que le premier est lié. à l'utilisateur connecté.

L'exécution des applications système n'a peut-être rien à voir avec l'environnement utilisateur, mais est liée à l'environnement système. Par conséquent, lorsque vous vous connectez, les informations d'invite que vous voyez, telles que le format d'affichage des informations de date et d'heure, sont liées. au LANG de l'environnement système. , la valeur par défaut LANG=en_US, si l'environnement système LANG=zh_CN, les informations d'invite sont en anglais, sinon elles sont en anglais.

Pour l'initialisation du shell utilisateur, /etc/profile est d'abord exécuté, puis le fichier /etc/environment est lu pour l'ensemble du système, /etc/environment est exécuté en premier. Est-ce une bonne compréhension ?

L'ordre lors de la connexion au système doit être :

/etc/enviroment-->/etc/profile-->HOME/.profile−−>HOME/.env (s'il existe)

/etc/profile est une variable d'environnement pour tous les utilisateurs

/etc/enviroment est la variable d'environnement système

L'ordre de lecture du shell lors de la connexion au système doit être :

/etc/profile->/etc/enviroment-->HOME/.profile−−>HOME/.env

La raison devrait être la différence entre l'environnement utilisateur et l'environnement système. Si la même variable a des valeurs différentes dans l'environnement utilisateur (/etc/profile) et l'environnement système (/etc/environment), alors l'environnement utilisateur. devrait prévaloir.

5. Variables d'environnement courantes et leurs fonctions sous Linux

Les variables d'environnement courantes sous Linux sont :

1.PATH : Spécifiez le chemin de recherche de la commande

2.HOME : Spécifiez le répertoire de travail personnel de l'utilisateur (c'est-à-dire le répertoire par défaut lorsque l'utilisateur se connecte au système Linux)

3.HISTSIZE : fait référence au nombre d'enregistrements de commandes historiques enregistrés.

4.LOGNAME : fait référence au nom de connexion de l'utilisateur actuel.

5.HOSTNAME : fait référence au nom de l'hôte Si de nombreuses applications doivent utiliser le nom d'hôte, il est généralement obtenu à partir de cette variable d'environnement.

6.SHELL : fait référence au Shell que l'utilisateur actuel utilise.

7.LANG/LANGUGE : Variables d'environnement liées à la langue. Les utilisateurs qui utilisent plusieurs langues peuvent modifier cette variable d'environnement.

在linux系统,默认的shell是什么_在linux系统,默认的shell是什么_在linux系统,默认的shell是什么

8.MAIL : fait référence au répertoire de stockage de messagerie de l'utilisateur actuel.

9.PS1 : L'invite de commande de base est # pour les utilisateurs root et $ pour les utilisateurs ordinaires.

10.PS2 : Invite auxiliaire, la valeur par défaut est ">".

Remarque : Vous pouvez modifier l'invite de commande actuelle en modifiant cette variable d'environnement. Par exemple, la commande suivante modifiera l'invite en chaîne "Bonjour, MyNewPrompt".

#PS1="Bonjour, MyNewPrompt"

Remarque : les noms des variables ci-dessus ne sont pas fixes. Par exemple, HOSTNAME peut être défini sur HOST dans certains systèmes Linux

.

En fait, les variables d'environnement ci-dessus que j'ai énumérées ne sont pas exhaustives !

Linux fournit également des commandes pour modifier et afficher les variables d'environnement ! Voici quelques exemples pour illustrer :

1.echo affiche une certaine valeur de variable d'environnement echo$PATH

2.export définit une nouvelle variable d'environnement exportHELLO="hello" (pas de virgule) et utilise directement [nom de la variable d'exportation = valeur de la variable] pour définir la variable sous la ligne de commande du shell. Cette variable n'est disponible que dans le shell actuel (. BASH ) ou son sous-shell (BASH) est valide. Lorsque le shell est fermé, la variable deviendra invalide. Lorsque vous ouvrirez un nouveau shell, une telle variable n'existera pas. Si vous devez l'utiliser, vous devez la redéfinir.

3.env affiche toutes les variables d'environnement

4.set affiche les variables shell définies localement (déjà existantes dans le système) et les nouvelles valeurs de variable pour définir les variables shell. Si aucune valeur n'est spécifiée, la valeur de la variable sera définie sur NULL.

5.unset nettoie la variable d'environnement unsetHELLO

6.readonly définit la variable d'environnement en lecture seule readonlyHELLO Si la commande readonly est utilisée, la variable ne peut pas être modifiée ou effacée

.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer