Wie listet man alle Variablennamen und ihre aktuellen Werte auf?

290

Wie listet man alle Variablennamen und ihre aktuellen Werte auf?

Einschließlich nicht nur $HOME , $PWD etc, sondern alle anderen, die Sie definiert haben.

    
Strapakowsky 30.03.2013, 01:36
quelle

7 Antworten

413

Geben Sie in einem Terminal den folgenden Befehl ein, um alle Umgebungsvariablen zu drucken:

printenv

Weitere Informationen zu diesem Befehl finden Sie auf der printenv man-Seite .

Um eine Liste mit den "Shell-Variablen" anzuzeigen, können Sie den nächsten Befehl eingeben:

( set -o posix ; set ) | less

Dies zeigt Ihnen nicht nur die Shell-Variablen, sondern auch die Umgebungsvariablen.

Für weitere Informationen zu diesem Thema lesen Sie:

Lucio 30.03.2013, 02:21
quelle
43

Ich weiß, dass diese Frage ziemlich alt ist und beantwortet wird, aber ich denke, dass ich ein paar nützliche Informationen hinzufügen kann.

Bei allen oben beschriebenen Methoden lautet die vorgeschlagene Vorgehensweise:

  • Starten Sie ein Terminal
  • zeigt die Umgebungsvariablen mit env , oder an printenv oder was auch immer

Das Problem dieser Lösungen besteht darin, dass Sie die Umgebungsvariablen der Shell sehen, die in das Terminal läuft . Die Umgebungsvariablen, die für eine Anwendungsausführung verfügbar sind, werden beispielsweise nicht direkt von der grafischen Oberfläche angezeigt.

Dies macht sich bemerkbar, wenn Sie zum Beispiel Ihre ~/.profile oder .bashrc oder .zshenv (abhängig von Ihrer Shell) verwenden, um die Umgebungsvariablen zu ändern - wie das klassische Hinzufügen von Verzeichnissen zum Pfad .

Um zu sehen, welche Umgebungsvariablen für die Anwendung direkt in der grafischen Umgebung verfügbar sind, können Sie Folgendes tun (in Gnome Shell bin ich mir sicher, dass es in allen anderen DE eine entsprechende Methode gibt):

  • Drücken Sie Alt-F2
  • führe den Befehl xterm -e bash --noprofile --norc

Sie haben jetzt ein Terminal mit einer Shell, die keine Umgebungsvariablen hinzugefügt hat. Sie können env hier verwenden, um alle Ihre Umgebungsvariablen aufzulisten:

Offensichtlich werden in der neuen Shell die Umgebungsvariablen von den Systemdateien hinzugefügt, aber diese Variablen sollten sowieso allen Programmen im System zur Verfügung stehen.

Ich poste das, weil es das vierte Mal ist, dass ich diesen Trick erneut durchsuchen muss, indem ich meine .pam_environment -Datei überprüfe. So, jetzt werde ich es schneller finden (und dabei hoffe ich, jemand anderem zu helfen ...)

    
Rmano 12.10.2013 02:37
quelle
31

Sie können alle Variablen mit dem eingebauten declare sehen.

declare -p

Wenn Sie nur an Umgebungsvariablen interessiert sind, verwenden Sie

declare -xp

Führen Sie help declare aus, um zu sehen, was die anderen Optionen sind.

    
geirha 04.04.2013 22:28
quelle
11

Um die Umgebungsvariablen im Terminal mit STRG + ALT + T aufzulisten, können Sie den Befehl env verwenden.

zum Beispiel:

[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

usw.

hoffe das hilft.

    
Ten-Coin 30.03.2013 17:41
quelle
3

In bash mit compgen:

compgen -v | while read line; do echo $line=${!line};done  
    
tmgoblin 11.04.2014 22:53
quelle
2

env ist ein POSIX 7 Weg :

export asdf=qwer
env | grep asdf

Beispielausgabe:

asdf=qwer

Es zeigt nur exportierte Variablen an: nicht exportierte Variablen werden normalerweise nicht als "Umgebungsvariablen" betrachtet.

Lieber über printenv , was nicht POSIX ist. Beide scheinen dasselbe ohne Argumente zu tun: lien

    
quelle
0

Wenn Sie eine bestimmte Umgebungsvariable wollen, anstatt sie alle mit printenv zu drucken, können Sie sie zum Beispiel ausdrucken, indem Sie echo "$PWD"

eingeben     
inigo333 08.01.2018 15:13
quelle