क्या यह पता लगाना संभव है कि कौन सी फाइलें पर्यावरण चर, और उनकी पूर्वता के क्रम को स्थापित / जोड़ रही हैं?


9

मेरे कुछ पर्यावरण चर ( और $PATH, $MANPATHमित्र) आंशिक रूप से विभिन्न स्रोत फ़ाइलों में स्थापित किए गए हैं।

मैं अपने आप को जल्दी से इकट्ठा करने के लिए एक कमांड या विधि के लिए बधाई देने के लिए लगता है हिस्सा क्या , एक विशिष्ट वातावरण चर में, से आया है क्या फ़ाइल

मेरे $ पथ, उदाहरण के लिए, स्पष्ट रूप से किया गया है सेट में (करने के लिए जोड़ा) .bashrc, /etc/paths, /etc/paths.d/X11... और मैं अभी भी जो superfluously मेरे में कोई डुप्लिकेट पथ परिभाषा बनाई गई है कि पिछले रहस्यमय फ़ाइल के लिए देख रहा हूँ $PATH

पर्यावरण चर में योगदान करने वाली फ़ाइलों को मैन्युअल रूप से इंगित करने में अच्छा समय लगता है। सभी वासियों को ट्रेस करने के इस अनावश्यक श्रम को बायपास करने के लिए एक उपयोगी तरीका होना चाहिए ... या क्या मैं इन पंक्तियों के साथ केवल एक ही सोच रहा हूं?

जवाबों:


6

आमतौर पर PATHप्रोग्राम है जो में लॉग आप (द्वारा एक उच्च प्रणाली पर निर्भर रास्ते में एक प्रारंभिक मान पर सेट है pam_envएक आम योगदानकर्ता है), तो /etc/profileऔर ~/.profileऔर फ़ाइलों कि वे उस मूल्य को संशोधित करने पर जाना शामिल हैं।

कोई भी परिवर्तन निकालें PATHमें .bashrc, पर्यावरण सेटिंग्स में नहीं हैं .bashrc: देख .bashrc और .bash_profile के बीच अंतर

पहले पाठ मोड में प्रवेश करने की कोशिश करें (जैसे के साथ ssh localhost), क्योंकि सत्र स्टार्टअप ग्राफिक्स मोड की तुलना में बहुत सरल है।

रखो set -xकी शुरुआत में /etc/profileऔर ~/.profile। शेल अपने मानक त्रुटि स्ट्रीम पर जो कुछ भी करता है उसका एक निशान प्रिंट करेगा; PATHट्रेस में असाइनमेंट देखें ।

पर्यावरण चर असाइनमेंट की पूर्वता की कोई धारणा नहीं है: जो कोई भी अंतिम जीत प्रदान करता है।


6

आपकी PATH को आपके .bashrc फ़ाइल में ही नहीं, कहीं भी सेट किया जा सकता है। सबसे अधिक संभावना है कि आपके सिस्टम में एक फ़ाइल है, /etc/profileऔर / या /etc/profile.localजो आपके सिस्टम पर सभी उपयोगकर्ताओं के लिए एक डिफ़ॉल्ट पथ सेट करता है। .profileयदि वे आपके में नहीं हैं, तो उपयोगकर्ता के विशिष्ट परिवर्तन या इसके परिवर्तन आपकी फ़ाइल में सेट किए जा सकते हैं .bashrc, या आप बस अपने सिस्टम पर डिफ़ॉल्ट का उपयोग कर सकते हैं।

यदि आप ऐसे परिवर्तन करना चाहते हैं जो केवल आपको प्रभावित करते हैं, तो मैं उन्हें .profileनिम्नलिखित फ़ॉर्म का उपयोग करके आपके पास रखूंगा:

export PATH=/new/directory:$PATH

जिससे वर्तमान पथ को पूरी तरह से लिखने के बजाय इसे संपादित किया जा सके।

की "मंगलाचरण" खंड man bash(या यहाँ ) के बीच का अंतर बताते हैं .profileऔर .bashrc, और इतने पर है, और जो अन्य फ़ाइलों और पढ़ सकते हैं और किस क्रम जब आप प्रवेश या एक खोल शुरू में।


1

यह बहुत संभावना नहीं है कि इसके लिए एक तंत्र मौजूद है। शेल में env वैरिएबल के मान को बदलने के कितने तरीके हैं, इसके बारे में जरा सोचें।

set -xहालांकि आपके साथ कुछ भाग्य भी हो सकता है ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.