2009-02-10 30 views
49

अगर मैं एक टर्मिनल में टाइप करें,लिनक्स: पर्यावरण चर कहाँ संग्रहीत हैं?

export DISPLAY=:0.0 

... जहां खोल कि वातावरण चर भंडारण किया जाता है?

मैं उबंटू 8.10 का उपयोग कर रहा हूं। मैंने फ़ाइलों को ~/.profile और/etc/profile में देखा है और DISPLAY का कोई निशान नहीं ढूंढ सकता है।

उत्तर

90

रनटाइम पर एक प्रक्रिया के पर्यावरण चर मौजूद हैं, और कुछ फ़ाइल में संग्रहीत नहीं हैं। वे प्रक्रिया की अपनी याददाश्त में संग्रहित होते हैं (यही वह जगह है जहां वे बच्चों को पास करते हैं)। लेकिन वहाँ

/proc/pid/environ

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

cat /proc/3940/environ | tr '\0' '\n' 

प्रत्येक चर अगले एक से एक द्विआधारी शून्य से सीमांकित किया जाता है कर सकते हैं। tr शून्य को एक नई लाइन में बदल देता है।

+0

क्या यह जानकारी लिनक्स विशिष्ट है? – cletus

+0

क्लेटस, हाँ मुझे लगता है कि यह लिनक्स विशिष्ट है, लेकिन मुझे नहीं पता। –

+4

'/ proc' में कुछ भी ओएस विशिष्ट होने के लिए माना जाना चाहिए। '/ Proc' को देखने वाले प्रोग्राम लिखना मेरे लिए एक बड़ा डब्ल्यूटीएफ है। – asveikau

26

"सेट" टाइप करें और आपको सभी मौजूदा चरों की एक सूची मिल जाएगी। यदि आप कुछ जारी रखना चाहते हैं तो इसे ~/.bashrc या ~/.bash_profile में रखें (यदि आप बैश का उपयोग कर रहे हैं)

-7

वह चर कुछ स्क्रिप्ट में संग्रहीत नहीं है। यह बस एक्स सर्वर स्क्रिप्ट द्वारा सेट है। आप वर्तमान में सेट का उपयोग कर सेट किए गए पर्यावरण चर की जांच कर सकते हैं।

+0

दरअसल, यह * एक्स * क्लाइंट * के लिए * एक्स * सेट * सेट है। – paxdiablo

+0

बेशक, यह उन स्क्रिप्ट द्वारा सेट किया गया है जो एक्स सर्वर को ऊपर लाते हैं। –

7

यह प्रक्रिया (खोल) में संग्रहीत है और चूंकि आपने इसे निर्यात किया है, किसी भी प्रक्रिया जो स्पॉन्स को संसाधित करती है।

उपर्युक्त करना इसे फाइल सिस्टम जैसे/etc/profile में कहीं भी संग्रहीत नहीं करता है। ऐसा होने के लिए आपको इसे स्पष्ट रूप से वहां रखना होगा।

8

यदि आप पर्यावरण के व्यापक उपयोग के लिए पर्यावरण रखना चाहते हैं तो आप /etc/environment फ़ाइल के साथ ऐसा कर सकते हैं।

+0

नीचे वोट? क्यूं कर? कृपया समझाओ। – JohnnyQ

+0

सवाल यह है कि where में कहां है। – user2284570

+2

@ user2284570 जहां प्रश्न में निर्दिष्ट किया गया है? क्या आप विस्तार से बता सकते हैं? – JohnnyQ

संबंधित मुद्दे