Hogyan kell felsorolni minden változó nevét és aktuális értékét?

299

Hogyan kell felsorolni minden változó nevét és aktuális értékét?

Nem csak a$HOME, a$PWD etc, de az összes más definíciót is beleértve.

    
készlet Strapakowsky 30.03.2013 01:36
forrás

7 válasz

421

Adja meg a következő parancsot a terminálon az összes környezeti változó kinyomtatásához:

printenv

A parancsra vonatkozó további információkért olvassa el a printenv man oldalt .

A "shell változók" listáját tartalmazó lista megjelenítéséhez be kell írnia a következő parancsot:

( set -o posix ; set ) | less

Ez megmutatja nem csak a shell változókat, hanem a környezeti változókat is.

A témával kapcsolatos további információ:

válasz adott Lucio 30.03.2013 02:21
forrás
43

Tudom, hogy ez a kérdés meglehetősen idős és válaszolt, de szerintem hasznos információkkal szolgálhatok.

A fent ismertetett módszereknél a javasolt eljárás:

  • indítson terminált
  • a környezeti változókat aenv, vagy printenv vagy bármi

Ezeknek a megoldásoknak a problémája, hogy a terminál futó shelljének környezeti változóit látja. Nem látja az alkalmazások futtatásához rendelkezésre álló környezeti változókat, például közvetlenül a grafikus felületen.

Ez észrevehető, ha például a~/.profile vagy a.bashrc vagy a.zshenv függvényt használja (a shelltől függően) a környezeti változók módosításához --- hasonlóan a könyvtárak klasszikus hozzáadásához az útvonalhoz .

Ahhoz, hogy az alkalmazáshoz elérhető környezeti változók közvetlenül a grafikus környezetben kezdődjenek, a következőket teheti (a Gnome Shell-ben, biztos vagyok benne, hogy az összes többi DE-ben van egy egyenértékű módszer):

  • nyomja meg az Alt-F2
  • gombot
  • futtassa axterm -e bash --noprofile --norc

Most rendelkezik egy olyan terminállal, amely nem tartalmazott környezeti változókat. Aenv itt használhatja az összes környezeti változó felsorolását:

Nyilvánvaló, hogy az új shell a rendszerfájlok által hozzáadott környezeti változókat fogja tartalmazni, de a változóknak örökölhetőnek kell lenniük a rendszer összes programjához.

Ezt azért teszem közzé, mert ez a negyedik alkalommal ismét meg kell vizsgálnom ezt a trükköt, ellenőrzöm a.pam_environment fájlt. Tehát most gyorsabban megtalálom (és a folyamatban remélem, hogy valaki más segít ...)

    
válasz adott Rmano 12.10.2013 02:37
forrás
32

Az összes változót adeclare beépített változatban láthatja.

declare -p

Ha csak a környezeti változók érdekelnek, használja

declare -xp

Futtassa ahelp declare -ot, hogy lássa, mi a többi lehetőség.

    
válasz adott geirha 04.04.2013 22:28
forrás
11

A CTRL + ALT + T terminálon lévő környezeti változók listájának megjelenítéséhez aenv parancsot kell használni.

például:

[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

stb.

remélem, hogy segít.

    
válasz adott rɑːdʒɑ 30.03.2013 17:41
forrás
3

A bash alkalmazásban:

compgen -v | while read line; do echo $line=${!line};done  
    
válasz adott tmgoblin 11.04.2014 22:53
forrás
2

env egy POSIX 7 út :

>
export asdf=qwer
env | grep asdf

Minta kimenet:

asdf=qwer

Csak az exportált változókat jeleníti meg: a nem exportált változókat általában nem "környezeti változóknak" tekintjük.

Aprintenv fölött van, amely nem POSIX. Mindkettő úgy tűnik, hogy ugyanazt a dolgot érvek nélkül: link

    
forrás
0

Ha egy adott környezeti változót szeretne, aprintenv -kal való nyomtatás helyett, akkor például nyomtassa ki aecho "$PWD"

    
válasz adott inigo333 08.01.2018 15:13
forrás