सवाल सभी चर नामों और उनके वर्तमान मूल्यों को कैसे सूचीबद्ध करें?


सभी चर नामों और उनके वर्तमान मूल्यों को कैसे सूचीबद्ध करें?

न केवल शामिल है $HOME, $PWD आदि लेकिन किसी अन्य जिसे आपने परिभाषित किया है।


295
2018-03-30 00:36


मूल


superuser.com/questions/420295/... - Ciro Santilli 新疆改造中心 六四事件 法轮功


जवाब:


सभी पर्यावरण चर मुद्रित करने के लिए टर्मिनल में निम्न आदेश दर्ज करें:

printenv

इस कमांड के बारे में अधिक जानकारी के लिए, पढ़ें printenv मैन पेज


"खोल चर" सहित एक सूची दिखाने के लिए आप अगला आदेश दर्ज कर सकते हैं:

( set -o posix ; set ) | less

यह आपको दिखाएगा न सिर्फ़ खोल चर, लेकिन पर्यावरण चर भी।

इस विषय से संबंधित अधिक जानकारी के लिए पढ़ें:


417
2018-03-30 01:21



अगर मैं टर्मिनल पर जाता हूं और लिखता हूं MYNEWVARIABLE=Ubuntu और निष्पादित करें printenv यह वहां नहीं दिखाता है। वह क्यों है, और वे अन्य कैसे दिखाते हैं? - Strapakowsky
शायद आप एक शैल चर और एक पर्यावरण चर के बीच अंतर देख रहे हैं। प्रयत्न export MYNEWVARIABLE=Ubuntu और जैसा कि आप उम्मीद करते हैं यह काम करेगा। - Rmano
अगर आप बस निष्पादित करते हैं set, यह आपके द्वारा बनाई गई चर को सूचीबद्ध करता है। या करो set | grep myvar - Sergiy Kolodyazhnyy
printenv एक बाहरी कमांड है, इसलिए यह केवल (और प्रिंट) निर्यात किए गए पर्यावरण चर के बारे में जानता है। set एक आंतरिक बैश कमांड है, इसलिए यह सभी "खोल चर" (अप्रत्याशित पर्यावरण चर) के साथ-साथ निर्यात किए गए पर्यावरण चर दिखाता है। - Dan Pritts
@Strapakowsky के @ Rmano के जवाब पर विस्तार करने के लिए ... यह काम नहीं करेगा unset MYNEWVARIABLE; MYNEWVARIABLE=Ubuntu; printenv | grep MYNEW, लेकिन यह होगा unset MYNEWVARIABLE; export MYNEWVARIABLE=Ubuntu; printenv | grep MYNEW, और यह होगा unset MYNEWVARIABLE; MYNEWVARIABLE=Ubuntu printenv | grep MYNEW। निर्यात का उपयोग करते हुए कहते हैं, "मैं जिस चर को स्थापित कर रहा हूं वह उस वातावरण का हिस्सा होना चाहिए जो प्रक्रियाओं में पारित हो, न केवल इस शेल में एक चर।" मेरा तीसरा उदाहरण कहता है "परिवर्तक पर्यावरण का हिस्सा होना चाहिए जो इस प्रक्रिया में पारित हो जाता है, लेकिन बाद में नहीं टिकता।" - Bruno Bronosky


मुझे पता है कि यह सवाल काफी पुराना है और उत्तर दिया है, लेकिन मुझे लगता है कि मैं थोड़ी उपयोगी जानकारी जोड़ सकता हूं।

ऊपर वर्णित सभी विधियों में, सुझाई गई प्रक्रिया है:

  • एक टर्मिनल लॉन्च करें
  • पर्यावरण चर का उपयोग कर दिखाओ env, या printenv जो कुछ भी

इन समाधानों की समस्या यह है कि आप पर्यावरण चर देख रहे हैं टर्मिनल में चल रहे खोल का। आप अनुप्रयोग चलाने के लिए उपलब्ध पर्यावरण चर नहीं देख रहे हैं, उदाहरण के लिए, सीधे ग्राफ़िक इंटरफ़ेस द्वारा।

यह ध्यान देने योग्य है, उदाहरण के लिए, आप अपना उपयोग करते हैं ~/.profile, या .bashrc, या .zshenv (आपके खोल के आधार पर) पर्यावरण चर को संशोधित करने के लिए --- पथ के लिए निर्देशिकाओं के क्लासिक जोड़े की तरह।

आवेदन के लिए उपलब्ध पर्यावरणीय चर को सीधे ग्राफ़िक वातावरण में शुरू करने के लिए, आप निम्न कार्य कर सकते हैं (जीनोम शैल में, मुझे यकीन है कि अन्य सभी डीई में समकक्ष विधि है):

  • Alt-F2 दबाएं
  • आदेश चलाओ xterm -e bash --noprofile --norc

अब आपके पास एक शेल वाला टर्मिनल है जिसने कोई पर्यावरण चर नहीं जोड़ा है। आप उपयोग कर सकते हैं env अपने सभी पर्यावरण चर सूचीबद्ध करने के लिए यहां:

Example of the bare shell

जाहिर है कि नए खोल में सिस्टम फ़ाइलों द्वारा पर्यावरण चर जोड़ा जाएगा, लेकिन सिस्टम में सभी कार्यक्रमों के लिए वे चर उपलब्ध हैं (विरासत द्वारा)।

मैं इसे पोस्ट कर रहा हूं क्योंकि चौथी बार मुझे इस चाल को फिर से खोजना है, मेरी जांच कर रहा हूं .pam_environment फ़ाइल। तो अब मैं इसे तेज़ी से पाउंगा (और इस प्रक्रिया में, मुझे उम्मीद है कि किसी और की मदद करें ...)


43
2017-10-12 00:37



आपके पास डेस्कटॉप वातावरण है, सर्वर सीएलआई-केवल लोक के लिए उपयोगी नहीं है। - K7AAY
हाँ --- लेकिन फिर सीएलआई के लिए केवल पिछला जवाब ठीक है। मैं बस यह इंगित कर रहा था कि कभी-कभी आपको ग्राफ़िकल वातावरण द्वारा शुरू किए गए एप्लिकेशन के लिए उपलब्ध पर्यावरण चर की जांच करने की आवश्यकता होती है, जो एक ही सेट नहीं है जब आप इसमें टर्मिनल प्रारंभ करते हैं। उदाहरण के लिए, यदि आप यह समझने की कोशिश कर रहे हैं कि आपका किइल ऐप एक लाटेक्स फ़ाइल को संकलित क्यों नहीं कर सकता है, जबकि टर्मिनल में आप कर सकते हैं, तो यहां दी गई चाल बहुत मददगार होगी। - Rmano
एक बहुत ही उपयोगी उत्तर के लिए धन्यवाद! मैंने बस उससे जुड़ा हुआ है help.ubuntu.com/community/... - Gunnar Hjalmarsson
धन्यवाद। क्या आपने सिफारिश की थी xterm -e bash --noprofile --norc क्योंकि जब उबंटू को ग्राफिकल इंटरफेस के साथ शुरू किया जाता है तो स्टार्टअप फ़ाइलों को पढ़ और निष्पादित नहीं किया जाता है? देख askubuntu.com/q/1025845/1471 - Tim
@ टिम मूल रूप से यह ग्राफ़िक वातावरण के लिए उपलब्ध पर्यावरण चर से कहीं अधिक के बिना खोल खोलने का एक तरीका है। एक मानक टर्मिनल पढ़ेगा (या फिर से पढ़ा जाएगा) .bashrc उदाहरण के लिए... - Rmano


आप के साथ सभी चर देख सकते हैं declare builtin।

declare -p

यदि आप केवल पर्यावरण चर में रुचि रखते हैं, तो उपयोग करें

declare -xp

रन help declare यह देखने के लिए कि अन्य विकल्प क्या हैं।


32
2018-04-04 20:28



यह तुलना में काफी साफ समाधान है POSIXLY_CORRECT=1 set और यह उल्लेख करने योग्य भी है declare है alias (उस संदर्भ में) के लिए typeset, एक और बश बनाया गया। - w17t


टर्मिनल में पर्यावरण चर सूचीबद्ध करने के लिए CTRL+एएलटी+टी आप उपयोग कर सकते हैं env आदेश।

उदाहरण के लिए :

[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

आदि।

उम्मीद है की वो मदद करदे।


11
2018-03-30 16:41



मैंने देखा है कि env कुछ चर o_O याद आती है। विशेष रूप से एक VAR = VAL फ़ाइल सोर्सिंग के बाद। - ThorSummoner
@ThorSummoner यहां जवाब मदद कर सकता है stackoverflow.com/questions/15474650/... - georaldc


Compgen का उपयोग कर बैश में:

compgen -v | while read line; do echo $line=${!line};done  

3
2018-04-11 20:53



यह स्वीकार्य उत्तर होना चाहिए, क्योंकि अन्य सभी सिर्फ नाम से अधिक सूचीबद्ध हैं। मेरे मामले में कुछ चरों में मल्टीलाइन मान होते हैं जो अन्य समाधानों को व्यवहार्य नहीं बनाता है। - Mene


env एक है पॉज़िक्स 7 रास्ता:

export asdf=qwer
env | grep asdf

नमूना उत्पादन:

asdf=qwer

यह केवल निर्यात किए गए चर दिखाता है: गैर-निर्यातित चर को आमतौर पर "पर्यावरण चर" नहीं माना जाता है।

उस पर पसंद करें printenv, जो पॉज़िक्स नहीं है। तर्क के बिना दोनों एक ही काम करते हैं: https://unix.stackexchange.com/questions/123473/what-is-the-difference-between-env-and-printenv


2
2017-11-30 14:31



दो साल पहले उल्लेख किया गया है: askubuntu.com/a/276162/158442 - muru
@मुरु मेला पर्याप्त है। इच्छा है कि यह बनाया था env बेहतर स्वरूपण के साथ अधिक दृश्यमान, और मैंने और जानकारी जोड़ दी है। - Ciro Santilli 新疆改造中心 六四事件 法轮功
यही तो संपादन के लिए है। - muru


यदि आप सभी को प्रिंट करने के बजाय, एक विशिष्ट पर्यावरण चर चाहते हैं printenv, उदाहरण के लिए आप इसे कर प्रिंट कर सकते हैं echo "$PWD"


0
2018-01-08 14:13