Comment lister tous les noms de variables et leurs valeurs actuelles?

290

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.

    
posée Strapakowsky 30.03.2013 - 01:36
la source

7 réponses

413

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:

réponse donnée Lucio 30.03.2013 - 02:21
la source
43

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:

  • lancer un terminal
  • affiche les variables d’environnement en utilisant 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):

  • appuyez sur Alt-F2
  • exécuter la commande 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 ...)

    
réponse donnée Rmano 12.10.2013 - 02:37
la source
31

Vous pouvez voir toutes les variables avec le paramètre intégré declare .

declare -p

Si vous êtes uniquement intéressé par les variables d’environnement, utilisez

declare -xp

Exécutez help declare pour voir les autres options.

    
réponse donnée geirha 04.04.2013 - 22:28
la source
11

Pour lister les variables d'environnement dans le terminal avec CTRL + ALT + T vous pouvez utiliser la commande env .

par exemple:

[raja@localhost ~]$ 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.

    
réponse donnée Ten-Coin 30.03.2013 - 17:41
la source
3

En bash en utilisant compgen:

compgen -v | while read line; do echo $line=${!line};done  
    
réponse donnée tmgoblin 11.04.2014 - 22:53
la source
2

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

    
la source
0

Si vous souhaitez une variable d’environnement spécifique, au lieu de tout imprimer avec printenv , vous pouvez par exemple l’imprimer en faisant echo "$PWD"

    
réponse donnée inigo333 08.01.2018 - 15:13
la source

Lire d'autres questions sur les étiquettes