स्टार्टअप फ़ाइल में क्या है?
अगर हम एक ठेठ के अंदर नजर डालें .bash_profile (CentOS 6 सिस्टम से लिया गया), यह कुछ इस तरह दिखता है:
# .बैश_प्रोफाइल
# उपनाम और फ़ंक्शन प्राप्त करें यदि [ -f ~/.bashrc ]; तब
। ~ / .bashrc
fi
# उपयोगकर्ता विशिष्ट वातावरण और स्टार्टअप प्रोग्राम PATH=$PATH:$HOME/bin
निर्यात PATH
# .बैश_प्रोफाइल
# उपनाम और फ़ंक्शन प्राप्त करें यदि [ -f ~/.bashrc ]; तब
। ~ / .bashrc
fi
# उपयोगकर्ता विशिष्ट वातावरण और स्टार्टअप प्रोग्राम PATH=$PATH:$HOME/bin
निर्यात PATH
वे पंक्तियाँ जो "#" से शुरू होती हैं टिप्पणियाँ और शेल द्वारा नहीं पढ़े जाते हैं। ये मानव पठनीयता के लिए हैं। पहली दिलचस्प बात निम्नलिखित कोड के साथ चौथी पंक्ति में होती है:
यदि [ -f ~/.bashrc ]; तब
यदि [ -f ~/.bashrc ]; तब
पर्यावरण की स्थापना कैसे होती है?
। ~ / .bashrc
fi
। ~ / .bashrc
fi
इसे ए कहते हैं यदि यौगिक आदेश, जिसे हम भाग 4 में शेल स्क्रिप्टिंग के दौरान पूरी तरह से कवर करेंगे, लेकिन अभी के लिए, यहां एक अनुवाद है:
यदि फ़ाइल "~/.bashrc" मौजूद है, तो "~/.bashrc" फ़ाइल पढ़ें।
यदि फ़ाइल "~/.bashrc" मौजूद है, तो "~/.bashrc" फ़ाइल पढ़ें।
हम देख सकते हैं कि कोड का यह बिट इस प्रकार है कि लॉगिन शेल की सामग्री कैसे प्राप्त होती है .bashrc. हमारी स्टार्टअप फ़ाइल में अगली चीज़ का संबंध इससे है पथ चर।
क्या आपने कभी सोचा है कि जब हम कमांड लाइन पर कमांड दर्ज करते हैं तो शेल को कैसे पता चलता है कि कमांड कहां मिलेंगे? उदाहरण के लिए, जब हम प्रवेश करते हैं ls, शेल खोजने के लिए पूरे कंप्यूटर में खोज नहीं करता है /बिन/एलएस (का पूरा पथनाम ls कमांड), बल्कि, यह उन निर्देशिकाओं की एक सूची खोजता है जो इसमें शामिल हैं पथ चर।
RSI पथ चर अक्सर (लेकिन हमेशा नहीं, वितरण के आधार पर) द्वारा निर्धारित किया जाता है
/etc/profile स्टार्टअप फ़ाइल और इस कोड के साथ:
पथ=$पथ:$घर/बिन
पथ=$पथ:$घर/बिन
सूची के अंत में निर्देशिका $HOME/bin जोड़ने के लिए PATH को संशोधित किया गया है। यह पैरामीटर विस्तार का एक उदाहरण है, जिसे हमने अध्याय 7 में छुआ है। यह कैसे काम करता है यह प्रदर्शित करने के लिए, निम्नलिखित प्रयास करें:
[मुझे@लिनक्सबॉक्स ~]$ foo='यह कुछ है'
[मुझे@लिनक्सबॉक्स ~]$ प्रतिध्वनि $foo
यह मेरे जैसा है
[मुझे@लिनक्सबॉक्स ~]$ foo=$foo"पाठ।"
[मुझे@लिनक्सबॉक्स ~]$ प्रतिध्वनि $foo
यह कुछ पाठ है.
[मुझे@लिनक्सबॉक्स ~]$ foo='यह कुछ है'
[मुझे@लिनक्सबॉक्स ~]$ प्रतिध्वनि $foo
यह मेरे जैसा है
[मुझे@लिनक्सबॉक्स ~]$ foo=$foo"पाठ।"
[मुझे@लिनक्सबॉक्स ~]$ प्रतिध्वनि $foo
यह कुछ पाठ है.
इस तकनीक का उपयोग करके, हम किसी वेरिएबल की सामग्री के अंत में टेक्स्ट जोड़ सकते हैं।
स्ट्रिंग जोड़कर $घर/बिन के अंत तक पथ चर की सामग्री, निर्देशिका $घर/बिन कमांड दर्ज करने पर खोजी गई निर्देशिकाओं की सूची में जोड़ा जाता है। इसका मतलब यह है कि जब हम अपने निजी कार्यक्रमों को संग्रहीत करने के लिए अपनी होम निर्देशिका के भीतर एक निर्देशिका बनाना चाहते हैं, तो शेल हमें समायोजित करने के लिए तैयार है। हमें बस कॉल करना है
it बिन, और हम जाने के लिए तैयार हैं।
नोट: कई वितरण इसे प्रदान करते हैं पथ डिफ़ॉल्ट रूप से सेटिंग. डेबियन आधारित वितरण, जैसे उबंटू, के अस्तित्व का परीक्षण करते हैं ~/बिन लॉगिन पर निर्देशिका, और गतिशील रूप से इसे जोड़ें पथ यदि निर्देशिका मिल जाती है तो परिवर्तनीय।
अंततः, हमारे पास है:
निर्यात PATH
निर्यात PATH
RSI निर्यात कमांड शेल को सामग्री बनाने के लिए कहता है पथ इस शेल की चाइल्ड प्रक्रियाओं के लिए उपलब्ध है।