Comment définir une variable d'environnement dans Zsh

Comment définir une variable d'environnement dans Zsh

Si vous avez déjà utilisé le terminal Linux, vous êtes probablement conscient des variables d'environnement. Les variables d'environnement se réfèrent à un ensemble de noms de variables dynamiques qui stockent une valeur que les applications du shell Linux peuvent utiliser.

Les variables d'environnement sont des paires de valeurs de clé où la clé représente le nom de la variable et une valeur. Vous pouvez personnaliser les valeurs des variables d'environnement, les modifications réfléchies globalement sur toutes les applications lancées à partir du shell.

Ce guide discutera de la façon d'interagir avec les variables environnementales, de lecture et de définition des variables d'environnement à l'aide du shell Zsh.

Comment fonctionnent les variables de l'environnement

Prenons un moment pour comprendre comment fonctionnent les variables de l'environnement.

Dans Linux et d'autres systèmes basés sur UNIX, chaque fois que nous lançons une nouvelle session Shell, il initialise un processus pour recueillir les informations qui devraient être disponibles dans cette session Shell et tous ses processus enfants. Ces informations sont collectées à partir de fichiers de configuration tels que .zshrc, .zlogin, etc.

Le but des variables d'environnement est de fournir un support simple où le shell peut récupérer ou définir des paramètres liés au système.

Les variables d'environnement prennent le format suivant:

Clé = valeur
Clé = valeur 1: valeur2

Si la variable d'environnement contient plusieurs valeurs, chaque valeur est séparée par un côlon (:). Un exemple célèbre d'une telle variable d'environnement est le $ Path.

De même, si la valeur de la variable d'environnement contient des espaces, la valeur est enfermée dans une paire de guillemets comme:

Key = "valeur avec espaces"

Les variables d'environnement sont sensibles à la casse. Il est recommandé d'utiliser des noms majuscules pour les variables d'environnement pour les distinguer dans d'autres contextes.

Vous ne devez pas inclure d'espaces autour du signe égal (=).

Il existe deux principaux types de variables:

  1. Variables d'environnement
  2. Variables de coquille.

Variables d'environnement

Les variables d'environnement sont des variables globales héritées par tous les obus et leurs processus enfants correspondants.

Variables de coquille

D'un autre côté, des variables de coquille sont disponibles dans la coquille dans laquelle ils sont définis ou définis. Ils sont couramment utilisés pour stocker des données temporaires et sont automatiquement détruits une fois la session de coquille terminée.

Chaque obus comme Bash, Zsh, Fish et d'autres contiennent leur propre ensemble de variables de coquille.

Comment imprimer des variables d'environnement

Diverses coques Linux gardent une trace de leurs variables de coquille et d'environnement prédéfinies. Nous pouvons afficher ces variables en utilisant diverses commandes.

La commande la plus courante pour afficher les variables d'environnement est la commande primitenv. Si vous exécutez cette commande sans arguments, il imprime toutes les variables d'environnement comme indiqué dans l'exemple ci-dessous:

imprimer

La commande ci-dessus doit imprimer toutes les variables d'environnement comme indiqué:

Shell = / bin / zsh
Session_manager = local / debian10.local: @ / tmp /.GLACE-
Unix / 964, Unix / Debian10.local: / tmp /.Ice-Unix / 964
Qt_accessibility = 1
Colorterm = TrueColor
Xdg_menu_prefix = gnome-
Gnome_desktop_session_id =
Ssh_auth_sock = / run / user / 1000 / keyring / ssh
Desktop_Session = gnome
GTK_Modules = Gail: ATK-Bridge
Xdg_seat = siège0
Pwd = / home / debian
Xdg_session_desktop = gnome
Logname = Debian
Xdg_session_type = wayland
Gjs_debug_topics = erreur js; journal js
Gdm_lang = en_us.UTF-8
Accueil = / Home / Debian
Nom d'utilisateur = Debian
---------Sortie tronquée-------------------------------------

À l'aide de la commande printenv, vous pouvez imprimer une variable individuelle en la faisant passer comme argument. Par exemple, pour afficher la valeur du chemin $, vous pouvez utiliser la commande:

Path Printenv

La commande doit renvoyer la valeur de la variable de chemin comme:

/ usr / local / bin: / usr / bin: / bin: / usr / local / jeux: / usr / jeux

Vous pouvez également transmettre plusieurs variables à la commande PRINTENV en tant que:

$ PRIMENV PATH Name d'utilisateur
/ usr / local / bin: / usr / bin: / bin: / usr / local / jeux: / usr / jeux
/ Home / Debian
Debian

La commande doit imprimer les valeurs des variables d'environnement passées chacune en une seule ligne.

CONSEIL: Vous pouvez également utiliser la commande env pour imprimer ou définir les valeurs des variables d'environnement.

Variables d'environnement populaires

Voici quelques variables d'environnement standard.

  • MAISON - Représente le répertoire domestique pour l'utilisateur actuel.
  • COQUILLE - Montre le chemin du shell de l'utilisateur actuel.
  • UTILISATEUR - Affiche l'utilisateur actuellement connecté.
  • CHEMIN - Contient une liste des répertoires à rechercher les fichiers exécutables lorsqu'une commande est exécutée.
  • Égouter - Affiche les paramètres des paramètres régionaux, y compris le codage des caractères
  • TERME - Fait référence à l'émulation terminale actuelle.
  • _ - Affiche la commande précédemment exécutée pour cet utilisateur.

Comment imprimer des variables de coquille

Les commandes Printenv et Env ne montreront que les variables d'environnement. Utilisez la commande set pour afficher toutes les variables, y compris les variables, les variables, fonctions et variables de l'environnement locales.

Si vous exécutez la commande set sans paramètres, il imprimera toutes les variables comme:

ensemble

Voici un exemple de sortie:

'!'= 0
'#' = 0
'$' = 2801
'*' = ()
-= 569jnrxzghiklms
0 = Zsh
'?'= 0
@ = ()
Argc = 0
Bg
Cdpath = "
Colorterm = TrueColor
Colonnes = 211
Cputype = x86_64
Dbus_session_bus_address = 'unix: path = / run / user / 1000 / bus'
Desktop_Session = gnome
Affichage =: 0
Egid = 1000
Épochréal
Époques
Euid = 1000
FG
Fignore = "
Fpath = / home / debian /.oh-my-zsh / plugins / git: / home / debian /.Oh mon-
zsh / fonctions: / home / debian /.Oh-my-zsh / complétions
---Sortie tronquée----------------------------------------

Les valeurs imprimées à partir de la commande set sont généralement une liste massive d'éléments que vous pouvez filtrer en tuysant la sortie sur des commandes telles que Grep.

Variables de coquille populaires

Bien que les variables de coquille varieront en fonction de la coquille que vous utilisez; Les éléments suivants sont communs dans la coque Zsh.

  • Zsh_version - La version du shell Zsh en cours d'exécution.
  • RAPIDE - Montre les espaces réservés pour le format d'invite ZSH actuel. Similaire à $ PS1.
  • Historique - Nombre de commandes d'histoire stockées dans la mémoire.
  • Histfile - Chemin vers le fichier d'historique des commandes ZSH.
  • ZSH_NAME - Nom de la coque Zsh.
  • Uid - UID de l'utilisateur actuel.
  • Ifs - Stocke la valeur du séparateur de champ interne.

Comment définir des variables d'environnement dans Zsh

Pour définir des variables d'environnement, nous utilisons la commande d'exportation. La syntaxe est:

Key d'exportation = valeur

Par exemple, pour créer une variable http_proxy et le définir sur une URL, nous pouvons faire:

exporter http_proxy = "http: // 127.0.0.1: 8080 "

Pour vérifier la création de la variable, nous pouvons utiliser la commande Printenv comme:

printenv http_proxy
http: // 127.0.0.1: 8080

Une fois que vous avez défini une variable d'environnement, vous pouvez y accéder à partir de tous les processus enfants. Par exemple:

zsh -c 'echo $ http_proxy'

Cependant, les variables d'environnement créées dans la méthode discutée ci-dessus ne sont disponibles que dans la session de coquille actuelle. Une fois fermées, toutes les variables d'environnement sont détruites.

Comment créer des variables d'environnement permanentes

Si vous souhaitez créer une variable d'environnement qui peut persister dans les séances de shell, vous pouvez utiliser les fichiers de configuration de Shell.

En zsh, vous pouvez définir les variables d'environnement dans le .fichier zshrc.

De même, vous devez utiliser la commande d'exportation comme:

vim ~ /.zshrc
exporter http_proxy- "http: // 127.0.0.1: 8080 "

Fermer et enregistrer le fichier.

Pour charger les variables d'environnement dans la session de shell actuelle, utilisez la commande source comme:

source ~ /.zshrc

Conclusion

Dans ce guide, nous avons discuté de la façon de travailler avec l'environnement et les variables de coquille dans les systèmes Linux. Nous avons également appris à définir des variables d'environnement et à appliquer la persistance entre les séances de coquille.

Merci pour la lecture.