Comment lister tous les noms de variables et leurs valeurs actuelles?
Incluant non seulement $HOME
, $PWD
etc, mais tout autre que vous avez défini.
Comment lister tous les noms de variables et leurs valeurs actuelles?
Incluant non seulement $HOME
, $PWD
etc, mais tout autre que vous avez défini.
Entrez la commande suivante dans un terminal pour imprimer toutes les variables d’environnement:
printenv
Pour plus d’informations sur cette commande, consultez la page de manuel printenv
.
Pour afficher une liste comprenant les "variables shell", vous pouvez entrer la commande suivante:
( set -o posix ; set ) | less
Cela vous montrera non seulement les variables shell, mais aussi les variables d'environnement.
Pour plus d'informations sur ce sujet, lisez:
Je sais que cette question est assez ancienne et répondue, mais je pense que je peux ajouter quelques informations utiles.
Dans toutes les méthodes décrites ci-dessus, la procédure suggérée est la suivante:
env
, ou
printenv
ou autre Le problème de ces solutions est que vous voyez les variables d'environnement du shell qui s'exécute sur le terminal . Vous ne voyez pas les variables d'environnement disponibles pour une application exécutée, par exemple, directement par l'interface graphique.
Cela se remarque si, par exemple, vous utilisez vos ~/.profile
, ou .bashrc
, ou .zshenv
(en fonction de votre shell) pour modifier les variables d'environnement - comme l'ajout classique de répertoires au chemin .
Pour voir les variables d'environnement disponibles pour l'application démarrée directement dans l'environnement graphique, vous pouvez effectuer les opérations suivantes (dans Gnome Shell, je suis sûr qu'il existe une méthode équivalente dans tous les autres DE):
xterm -e bash --noprofile --norc
Vous avez maintenant un terminal avec un shell qui n’a pas ajouté de variables d’environnement. Vous pouvez utiliser env
ici pour répertorier toutes vos variables d'environnement:
Évidemment, le nouveau shell aura les variables d’environnement ajoutées par les fichiers système, mais ces variables devraient de toute façon être disponibles (par héritage) pour tous les programmes du système.
Je publie ceci parce que c’est la quatrième fois que je cherche à nouveau cette astuce, en vérifiant mon fichier .pam_environment
. Alors maintenant je le trouverai plus rapidement (et en même temps, j'espère aider quelqu'un d'autre ...)
Pour lister les variables d'environnement dans le terminal avec CTRL + ALT + T vous pouvez utiliser la commande env
.
par exemple:
[[email protected] ~]$ env
XDG_VTNR=1
SSH_AGENT_PID=3671
XDG_SESSION_ID=3
HOSTNAME=localhost.localdomain
IMSETTINGS_INTEGRATE_DESKTOP=yes
GPG_AGENT_INFO=/home/raja/.gnupg/S.gpg-agent:3691:1
GLADE_PIXMAP_PATH=:
TERM=xterm-256color
SHELL=/bin/bash
XDG_MENU_PREFIX=xfce-
DESKTOP_STARTUP_ID=
HISTSIZE=1000
XDG_SESSION_COOKIE=0250277dd805498381e96c05d88068b0-1364679772.845276-1676152201
WINDOWID=65011716
GNOME_KEYRING_CONTROL=/home/raja/.cache/keyring-N3QoQ2
IMSETTINGS_MODULE=none
QT_GRAPHICSSYSTEM_CHECKED=1
USER=raja
etc.
J'espère que ça aide.
env est une méthode POSIX 7 :
export asdf=qwer
env | grep asdf
Exemple de sortie:
asdf=qwer
Il affiche uniquement les variables exportées: les variables non exportées ne sont généralement pas considérées comme des "variables d'environnement".
Préférez cela sur printenv
, qui n'est pas POSIX. Les deux semblent faire la même chose sans arguments: lien
Lire d'autres questions sur les étiquettes command-line bash environment-variables