सिस्टम-वाइड $ PATH चर सेट कहां है?


10

मैं Ubuntu डेस्कटॉप 14.04 का उपयोग कर रहा हूं, और इस तरह, मैं गैर-लॉगिन शेल का उपयोग कर रहा हूं। जब मैं GUI टर्मिनल खोलता हूं, तो पहले गैर-लॉगिन शेल सत्रों में निम्नलिखित स्टार्टअप फाइलें पढ़ी जाती हैं:

/etc/bash.bashrc
~/.bashrc

गैर-लॉगिन गोले मूल प्रक्रिया से वातावरण प्राप्त करते हैं, जो एक लॉगिन शेल है, इसलिए सत्र निम्नलिखित स्टार्टअप फ़ाइलों को भी पढ़ता है:

/etc/profile
~/.bash_profile

हालांकि, मैं नहीं मिल सकता है $PATHपूरे सिस्टम में रास्तों की तरह के लिए /bin, /sbin, /usr/bin, /usr/sbin, इन फ़ाइलों में से किसी में निर्धारित किया है। $PATHइन निर्देशिकाओं के लिए सेट कहां है ?

जवाबों:


16

फ़ाइल PATHमें विस्तृत (डिफ़ॉल्ट) सिस्टम सेट है /etc/environment

$ cat /etc/environment 
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

यह मूल रूप से वैश्विक पर्यावरण चर को बचाने के लिए जगह है।


+1, हालांकि क्या आपको पता है कि $PATHयह मूल लॉगिन शेल द्वारा विरासत में मिला है या यदि यह प्रत्येक bashउदाहरण द्वारा पुनः लोड किया गया है ?
कोस

@ बच्चों की सभी प्रक्रियाएं माता-पिता के खोल से पर्यावरण को प्राप्त करती हैं, जब तक कि एक संशोधित वातावरण में नहीं चलाया जा रहा है ..
heemayl

मुझे लगता है कि शेल $HOMEचर का विस्तार नहीं लगता है । उदाहरण के लिए, जोड़ने $HOME/.composer/vendor/binके लिए PATHमें /etc/environmentइस निर्देशिका में बाइनरी सक्षम नहीं होते पथ उपसर्ग के बिना निष्पादित किया जाना है। उपयोग ~/.composer/vendor/binकरने से भी काम नहीं होता है। मुझे पूर्ण पथ जोड़ने के लिए यह आवश्यक लग रहा है, जैसे /home/vagrant/.composer/vendor/bin:। यह संबंधित लगता है (हालांकि इस व्यवहार की व्याख्या नहीं करता है): askubuntu.com/questions/402353/…
बेन जॉनसन

2
@BenJohnson यह सिर्फ इसलिए है क्योंकि /etc/environment(और ~/.pam/environment) pam_envPAM मॉड्यूल द्वारा पढ़ा जाता है , शेल या कुछ और नहीं जो शेल / पर्यावरण चर को समझता है; वही ~विस्तार के लिए जाता है । इसलिए, आपको वहां पूर्ण पथ का उपयोग करने की आवश्यकता है।
हेमायल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.