GNU/Linux >> Tutoriels Linux >  >> Linux

Trucs et astuces pour les variables d'environnement Linux

Les variables d'environnement existent pour améliorer et standardiser votre environnement shell sur les systèmes Linux. Il existe des variables d'environnement standard que le système configure pour vous, mais vous pouvez également configurer vos propres variables d'environnement ou éventuellement modifier celles par défaut pour répondre à vos besoins.

[ Téléchargement gratuit :Aide-mémoire sur les commandes Linux avancées. ]

En commençant par env commande

Si vous voulez voir vos variables d'environnement, utilisez le env commande et recherchez les mots en majuscules à l'extrême gauche de la sortie. Voici vos variables d'environnement, et leurs valeurs sont à droite :

 $ env
LS_COLORS=(long output)
LANG=en_US.UTF-8
HISTCONTROL=ignoredups
HOSTNAME=rhel8t
XDG_SESSION_ID=5
USER=khess
SELINUX_ROLE_REQUESTED=
PWD=/home/khess
HOME=/home/khess
SSH_CLIENT=192.168.1.94 53911 22
SELINUX_LEVEL_REQUESTED= XDG_DATA_DIRS=/home/khess/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share
SSH_TTY=/dev/pts/1
MAIL=/var/spool/mail/khess
TERM=xterm-256color
SHELL=/bin/bash SELINUX_USE_CURRENT_RANGE=
SHLVL=1
LOGNAME=khess
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
XDG_RUNTIME_DIR=/run/user/1000 PATH=/home/khess/.local/bin:/home/khess/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/bin
HISTSIZE=1000
LESSOPEN=||/usr/bin/lesspipe.sh %s _=/usr/bin/env 

J'ai omis la sortie du LS_COLORS variable parce qu'il est trop long. Essayez cette commande sur votre système pour voir à quoi ressemble la sortie complète.

De nombreuses variables d'environnement sont définies puis exportées depuis le /etc/profile fichier et le /etc/bashrc dossier. Il y a une ligne dans /etc/profile qui lit :

 export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL

Pour apporter des modifications permanentes aux variables d'environnement pour tous les nouveaux comptes, accédez à votre /etc/skel fichiers, tels que .bashrc , et modifiez ceux qui sont déjà là ou entrez les nouveaux. Lorsque vous créez de nouveaux utilisateurs, ces /etc/skel les fichiers seront copiés dans le répertoire personnel du nouvel utilisateur.

Explorer les niveaux du shell (SHLVL )

Pour appeler la valeur d'une seule variable d'environnement, entrez la commande suivante, en utilisant SHLVL (Niveau Shell) à titre d'exemple :

 $ echo $SHLVL 1

Cette variable change en fonction du nombre de sous-shells ouverts. Par exemple, saisissez bash deux fois, puis relancez la commande :

 $ bash 
$ bash echo $SHLVL 3

Un niveau de shell de trois signifie que vous êtes à deux sous-shells, alors tapez exit deux fois pour revenir à votre shell habituel.

[Vous voulez essayer Red Hat Enterprise Linux ? Téléchargez-le maintenant gratuitement.] 

Manipulation de votre PATH variables

Le PATH La variable contient le chemin de recherche pour exécuter des commandes et des scripts. Pour voir votre PATH , saisissez :

 $ echo $PATH /home/khess/.local/bin:/home/khess/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin

Modifiez temporairement votre PATH en entrant la commande suivante pour ajouter /opt/bin :

 $ PATH=$PATH:/opt/bin
$ echo $PATH /home/khess/.local/bin:/home/khess/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/bin

Le changement est temporaire pour la session en cours. Il n'est pas permanent car il n'est pas entré dans le .bashrc dossier. Pour rendre le changement permanent, entrez la commande PATH=$PATH:/opt/bin dans le .bashrc de votre répertoire personnel fichier.

Lorsque vous faites cela, vous créez un nouveau PATH variable en ajoutant un répertoire au PATH actuel variable, $PATH . Deux-points (: ) sépare PATH entrées.

Démêler $USER , $PWD , et $LOGNAME

J'avais une théorie qui, je pense, a été dissipée par mon bon moi. Ma théorie était que les commandes pwd et whoami probablement juste lu et renvoyé en écho le contenu des variables shell $PWD et $USER ou $LOGNAME , respectivement. À ma grande surprise, après avoir regardé le code source, ce n'est pas le cas. Peut-être que je devrais les réécrire pour faire exactement cela. Il n'y a aucune raison d'ajouter plusieurs bibliothèques et près de 400 lignes de code C pour afficher le répertoire de travail. Vous pouvez simplement lire $PWD et l'écho à l'écran (stdout). Il en va de même pour whoami avec soit $USER ou $LOGNAME .

Si vous voulez jeter un œil au code source par vous-même, c'est sur GitHub et ailleurs. Si vous trouvez que ces programmes (ou d'autres) utilisent des variables shell, j'aimerais le savoir. Certes, je ne suis pas très doué pour lire le code source C, donc ils pourraient très bien utiliser des variables shell et je ne le saurais jamais. D'après ce que j'ai lu, ils ne semblaient tout simplement pas comprendre.

Jouer le $SHELL jeu

Dans ce dernier aperçu des variables d'environnement, je veux vous montrer comment le $SHELL la variable est pratique. Vous n'êtes pas obligé de rester dans votre shell par défaut, qui est probablement Bash. Vous pouvez entrer et travailler dans n'importe quel shell installé sur le système. Pour savoir quels shells sont installés sur votre système, utilisez la commande suivante :

 $ cat /etc/shells /bin/sh /bin/bash /usr/bin/sh /usr/bin/bash

Tous ces éléments sont en fait Bash, alors ne vous excitez pas. Si vous avez de la chance, vous pourriez également voir des entrées pour /bin/tcsh , /bin/csh , /bin/mksh , /bin/ksh , et /bin/rksh .

Vous pouvez utiliser n'importe lequel de ces shells et avoir des choses différentes dans chacun d'eux si vous le souhaitez. Mais, disons que vous êtes un administrateur Solaris et que vous souhaitez utiliser le shell Korn. Vous pouvez changer votre shell par défaut en /bin/ksh en utilisant le chsh commande :

 $ chsh Changing shell for khess. New shell [/bin/bash]: /bin/ksh Password: Shell changed.

Maintenant, si vous tapez echo $SHELL , la réponse sera /bin/bash , vous devez donc vous déconnecter et vous reconnecter pour voir le changement. Une fois déconnecté et connecté, vous recevrez une réponse différente à echo $SHELL .

Vous pouvez entrer d'autres shells et echo $SHELL devrait indiquez votre shell actuel et $SHLVL , ce qui vous permettra de savoir combien de coques vous avez de profondeur.

Définir vos propres variables d'environnement

Vous pouvez définir vos propres variables sur la ligne de commande par session, ou les rendre permanentes en les plaçant dans le ~/.bashrc fichier, ~/.profile , ou le fichier de démarrage que vous utilisez pour votre shell par défaut. Sur la ligne de commande, entrez votre variable d'environnement et sa valeur comme vous l'avez fait précédemment lors de la modification du PATH variables.

Conclusion

Les variables de shell ou d'environnement sont utiles aux utilisateurs, aux administrateurs système et aux programmeurs. Ils sont utiles sur la ligne de commande et dans les scripts. Je les ai utilisés au fil des ans à de nombreuses fins différentes, et bien que certains d'entre eux soient probablement un peu non conventionnels, ils ont fonctionné et fonctionnent toujours. Créez les vôtres ou utilisez ceux qui vous sont fournis par le système et les applications installées. Ils peuvent vraiment enrichir votre expérience utilisateur Linux.

En passant sur les variables et les shells, est-ce que quelqu'un pense que ceux qui programment en JSON ne devraient être autorisés à utiliser que le Bourne Shell ? Discutez.


Linux
  1. Trucs et astuces pour utiliser CUPS pour imprimer avec Linux

  2. 10 astuces et conseils intéressants en ligne de commande Linux à connaître

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

  4. Trucs/astuces de navigation en ligne de commande Linux 3 - la variable d'environnement CDPATH

  5. Top 8 des trucs et astuces en ligne de commande MySQL

Trucs et astuces pour utiliser Ctrl + Z dans Ubuntu Linux

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

Meilleur environnement de bureau Linux :15 examinés et comparés

19 trucs et astuces utiles pour la ligne de commande Linux

Meilleures combinaisons de distribution Linux et d'environnement de bureau

L'année de Linux sur le bureau (Windows) - Trucs et astuces WSL