सभी चर नामों और उनके वर्तमान मूल्यों को कैसे सूचीबद्ध करें?
न केवल सहित $HOME
, $PWD
आदि लेकिन कोई अन्य जिसे आपने परिभाषित किया है ।
सभी चर नामों और उनके वर्तमान मूल्यों को कैसे सूचीबद्ध करें?
न केवल सहित $HOME
, $PWD
आदि लेकिन कोई अन्य जिसे आपने परिभाषित किया है ।
बैश के लिए: (उबंटू में मानक खोल)
सभी पर्यावरण चर प्रिंट करने के लिए टर्मिनल में निम्न कमांड दर्ज करें:
printenv
इस आदेश के बारे में अधिक जानकारी के लिए, पढ़ें printenv
मैन पेज.
"शेल चर" सहित एक सूची दिखाने के लिए आप अगली कमांड दर्ज कर सकते हैं:
( set -o posix ; set ) | less
यह आपको दिखाएगा इतना ही नहीं शेल चर, लेकिन पर्यावरण चर भी ।
इस विषय से संबंधित अधिक जानकारी के लिए पढ़ें:
जेडएसएच के लिए: (एक उन्नत खोल)
निम्न आदेश का उपयोग करें:
( setopt posixbuiltin; set; ) | less
जेडएसएच विकल्पों के बारे में अधिक जानकारी के लिए, देखें zshoptions
मैन पेज.
आप के साथ सभी चर देख सकते हैं declare
बिल्टिन।
declare -p
यदि आप केवल पर्यावरण चर में रुचि रखते हैं, तो उपयोग करें
declare -xp
भागो help declare
यह देखने के लिए कि अन्य विकल्प क्या हैं ।
मुझे पता है कि यह प्रश्न काफी पुराना है और उत्तर दिया गया है, लेकिन मुझे लगता है कि मैं थोड़ी उपयोगी जानकारी जोड़ सकता हूं ।
ऊपर वर्णित सभी विधियों में, सुझाई गई प्रक्रिया है:
env
, याprintenv
या जो भी होइन समाधानों की समस्या यह है कि आप पर्यावरण चर देख रहे हैं टर्मिनल में चल रहे शेल का. आप किसी एप्लिकेशन रन के लिए उपलब्ध पर्यावरण चर नहीं देख रहे हैं, उदाहरण के लिए, सीधे ग्राफिक इंटरफ़ेस द्वारा ।
यह ध्यान देने योग्य है अगर, उदाहरण के लिए, आप अपने ~/.profile
, या .bashrc
, या .zshenv
(आपके खोल के आधार पर) पर्यावरण चर को संशोधित करने के लिए --- पथ के लिए निर्देशिकाओं के क्लासिक जोड़ की तरह ।
ग्राफिक वातावरण में सीधे शुरू किए गए एप्लिकेशन के लिए उपलब्ध पर्यावरण चर को देखने के लिए, आप निम्न कार्य कर सकते हैं (गनोम शेल में, मुझे यकीन है कि अन्य सभी डी में एक समान विधि है):
xterm -e bash --noprofile --norc
(या, यदि आपके पास नहीं है xterm
, gnome-terminal -- bash --noprofile --norc
--- टिप्पणी के लिए @माइक नकिस को धन्यवाद) ।
अब आपके पास एक शेल के साथ एक टर्मिनल है जिसमें कोई पर्यावरण चर नहीं जोड़ा गया है । आप उपयोग कर सकते हैं env
यहां अपने सभी पर्यावरण चर सूचीबद्ध करने के लिए:
जाहिर है कि नए शेल में सिस्टम फ़ाइलों द्वारा जोड़े गए पर्यावरण चर होंगे, लेकिन सिस्टम में सभी कार्यक्रमों के लिए चर (विरासत द्वारा) उपलब्ध होना चाहिए ।
मैं इसे पोस्ट कर रहा हूं क्योंकि यह चौथी बार है जब मुझे इस ट्रिक को फिर से खोजना है, मेरी जाँच करना .pam_environment
फ़ाइल। तो अब मैं इसे तेजी से पाऊंगा (और इस प्रक्रिया में, मुझे उम्मीद है कि किसी और की मदद करेंगे । ..)
टर्मिनल में पर्यावरण चर को सूचीबद्ध करने के लिए CTRL+ALT+T आप उपयोग कर सकते हैं env
कमान।
उदाहरण के लिए :
[raja@localhost ~]$ envXDG_VTNR=1SSH_AGENT_PID=3671XDG_SESSION_ID=3HOSTNAME=localhost.localdomainIMSETTINGS_INTEGRATE_DESKTOP=yesGPG_AGENT_INFO=/home/raja/.gnupg/S.gpg-agent:3691:1GLADE_PIXMAP_PATH=:TERM=xterm-256colorSHELL=/bin/bashXDG_MENU_PREFIX=xfce-DESKTOP_STARTUP_ID=HISTSIZE=1000XDG_SESSION_COOKIE=0250277dd805498381e96c05d88068b0-1364679772.845276-1676152201WINDOWID=65011716GNOME_KEYRING_CONTROL=/home/raja/.cache/keyring-N3QoQ2IMSETTINGS_MODULE=noneQT_GRAPHICSSYSTEM_CHECKED=1USER=raja
आदि ।
आशा है कि मदद करता है ।
कॉम्पजेन का उपयोग करके बैश में:
compgen -v | while read line; do echo $line=${!line};done
यदि आप उन सभी को प्रिंट करने के बजाय एक विशिष्ट पर्यावरण चर चाहते हैं printenv
, आप उदाहरण के लिए इसे करके प्रिंट कर सकते हैं echo "$PWD"
यहां अधिकांश समाधान या तो केवल पर्यावरण चर प्रिंट करते हैं, या दोष यह है कि एनवी या (सेट-ओ पॉज़िक्स; सेट) आसानी से पार्स करने योग्य रूप में मान प्रिंट नहीं करते हैं (चर ए=$'ए\आर\एनबी' प्रिंट करने का प्रयास करें, इसमें कई लाइनें हैं । ..).
यहां एक फ़ंक्शन है जो पॉज़िक्स बच गए फॉर्म में सभी चर, प्रति पंक्ति एक चर प्रिंट करेगा (सरल पाठ चर के लिए ठीक से काम करता है, सरणी के लिए काम नहीं करता है):
function dump_vars { local VARNAME compgen -v | while read -r VARNAME; do printf "$VARNAME=%q\n" "${!VARNAME}" done}
कॉम्पजेन-वी के उपयोग को इंगित करने के लिए @टीएमगोब्लिन के लिए धन्यवाद ।
एनवी एक है पॉज़िक्स 7 वे:
export asdf=qwerenv | grep asdf
नमूना आउटपुट:
asdf=qwer
यह केवल निर्यात किए गए चर दिखाता है: गैर-निर्यात किए गए चर को आमतौर पर "पर्यावरण चर"नहीं माना जाता है ।
उस पर पसंद करते हैं printenv
, जो पॉज़िक्स नहीं है । दोनों बिना तर्क के एक ही काम करते प्रतीत होते हैं: https://unix.stackexchange.com/questions/123473/what-is-the-difference-between-env-and-printenv
प्रिंटेनव केवल निर्यात किए गए चर को सूचीबद्ध करता है,command+alt+$("\ई$": पूर्ण-चर )सभी चर सूचीबद्ध करेगा ।
printenv
सभी वैश्विक पर्यावरण चर दिखाएगाआपने गलत उत्तर स्वीकार कर लिया है । “प्रिंटेनव” केवल आपको पर्यावरण चर देता है । यदि आप वास्तव में अपने शेल में वर्तमान में घोषित सभी चर चाहते हैं, तो “डिक्लेयर-पी” या "टाइपसेट-पी"का उपयोग करें ।