Tüm değişken isimleri ve mevcut değerleri nasıl listelenir?

293

Tüm değişken isimleri ve mevcut değerleri nasıl listelenir?

Yalnızca $HOME , $PWD vb.'yi değil, tanımladığınız diğerleri de içerir.

    
sordu Strapakowsky 30.03.2013 01:36

7 cevap

415

Tüm ortam değişkenlerini yazdırmak için bir terminalde aşağıdaki komutu girin:

printenv

Bu komut hakkında daha fazla bilgi için printenv man sayfasını okuyun.

"Kabuk değişkenlerini" içeren bir listeyi göstermek için sonraki komutu girebilirsiniz:

( set -o posix ; set ) | less

Bu size yalnızca kabuk değişkenlerini değil, ortam değişkenlerini de gösterecektir.

Bu konuyla ilgili daha fazla bilgi için şunu okuyun:

verilen cevap Lucio 30.03.2013 02:21
43

Bu sorunun oldukça eski olduğunu ve yanıtlandığını biliyorum, ancak biraz yararlı bilgiler ekleyebileceğimi düşünüyorum.

Yukarıda açıklanan tüm yöntemlerde, önerilen prosedür:

  • bir terminali başlat
  • ortam değişkenlerini env kullanarak veya printenv veya her neyse

Bu çözümlerin problemi, terminalde çalışan kabuğun ortam değişkenlerini görmenizdir. Bir uygulama çalıştırmasına uygun ortam değişkenlerini, örneğin doğrudan grafik arabirimiyle görmüyorsunuz.

Örneğin, ortam değişkenlerini değiştirmek için ~/.profile veya .bashrc veya .zshenv (kabuğunuza bağlı olarak) kullanırsanız, klasik dizin dizinleri gibi. .

Uygulamanın kullanabileceği ortam değişkenlerini doğrudan grafik ortamında başlattığınızı görmek için aşağıdakileri yapabilirsiniz (Gnome Kabuğu'nda, tüm diğer DE'de eşdeğer bir yöntem olduğundan eminim):

  • Alt-F2'ye basın
  • % co_de komutunu çalıştır

Artık herhangi bir ortam değişkeni eklemeyen bir kabuklu bir terminaliniz var. Tüm ortam değişkenlerinizi listelemek için xterm -e bash --noprofile --norc burayı kullanabilirsiniz:

Açıkça, yeni kabuk sistem dosyaları tarafından eklenen ortam değişkenlerine sahip olacak, fakat bu değişkenlerin sistemdeki tüm programlara (miras yoluyla) ulaşılabilir olması gerekir.

Bunu gönderiyorum, çünkü bu hileyi tekrar aramak için dördüncü kez, env dosyamı kontrol ediyorum. Yani şimdi daha hızlı bulacağım (ve süreçte, başkalarına yardım etmeyi umuyorum ...)

    
verilen cevap Rmano 12.10.2013 02:37
32

Tüm değişkenleri declare yerleşiğiyle görebilirsiniz.

declare -p

Yalnızca ortam değişkenleriyle ilgiliyseniz, kullanın

declare -xp

Diğer seçeneklerin neler olduğunu görmek için help declare dosyasını çalıştırın.

    
verilen cevap geirha 04.04.2013 22:28
11

CTRL + ALT + T olan terminaldeki ortam değişkenlerini listelemek için env komutunu kullanabilirsiniz.

örneğin:

[[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

vb.

Bunun yardımcı olacağını umuyorum.

    
verilen cevap Ten-Coin 30.03.2013 17:41
3

Compress kullanarak bash:

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

env bir POSIX 7 yoludur :

export asdf=qwer
env | grep asdf

Örnek çıktı:

asdf=qwer

Sadece dışa aktarılan değişkenleri gösterir: dışa aktarılamayan değişkenler genellikle "ortam değişkenleri" olarak kabul edilmez.

Bunu POSIX olmayan printenv 'in üzerinde tercih edin. Her ikisi de argüman olmadan aynı şeyi yapıyor gibi görünüyor: İşte

    
0

Belirli bir ortam değişkeni istiyorsanız, hepsini printenv ile yazdırmak yerine, örneğin echo "$PWD"

yaparak yazdırabilirsiniz.     
verilen cevap inigo333 08.01.2018 15:13

Etiketlerdeki diğer soruları oku