.bashrc
और .bash_profile
कर रहे हैं नहीं स्क्रिप्ट। वे कॉन्फ़िगरेशन फ़ाइल प्राप्त करते हैं जो हर बार bash
2 तरीकों में से एक में निष्पादित होती हैं:
मंगलाचरण बैश आदमी पृष्ठ के अनुभाग क्या की प्रासंगिक है।
एक लॉगिन शेल वह है जिसका तर्क शून्य का पहला वर्ण है -
, या एक --login
विकल्प के साथ शुरू हुआ है ।
एक इंटरैक्टिव शेल गैर-विकल्प तर्कों के बिना शुरू किया गया है और उस -c
विकल्प के बिना जिसका मानक इनपुट और त्रुटि दोनों टर्मिनलों से जुड़े हुए हैं (जैसा कि निर्धारित किया गया है isatty(3))
, या एक -i
विकल्प के साथ शुरू हुआ है । PS1 सेट है और $-
इसमें शामिल है i
अगर bash
कोई शेल स्क्रिप्ट की अनुमति देता है या इस राज्य का परीक्षण करने के लिए एक स्टार्टअप फ़ाइल।
निम्नलिखित पैराग्राफ वर्णन करते हैं कि bash
इसकी स्टार्टअप फ़ाइलों को कैसे निष्पादित किया जाता है। यदि कोई भी फाइल मौजूद है, लेकिन पढ़ी नहीं जा सकती, तो bash एक त्रुटि की सूचना देता है। विस्तार अनुभाग में टिल्ड विस्तार के तहत नीचे वर्णित फ़ाइल नामों में
टिल्ड का विस्तार किया गया है ।
जब बैश को एक इंटरेक्टिव लॉगिन शेल के रूप में या --login
विकल्प के साथ एक गैर-इंटरैक्टिव शेल के रूप में लागू किया जाता है , तो यह पहले फ़ाइल से कमांड को पढ़ता है और निष्पादित करता है /etc/profile
, यदि वह फ़ाइल मौजूद है। उस फ़ाइल को पढ़ने के बाद, यह उस क्रम में , और , के लिए लग रहा है ~/.bash_profile
,
~/.bash_login
और ~/.profile
पहले से मौजूद आदेशों को पढ़ता है और निष्पादित करता है और पढ़ने योग्य है।
--noprofile
विकल्प इस्तेमाल किया जा सकता है जब खोल इस व्यवहार को बाधित करने के लिए शुरू कर दिया है।
जब एक लॉगिन शेल बाहर निकलता है, तो bash पढ़ता है और फ़ाइल से कमांड निष्पादित करता है ~/.bash_logout
, अगर यह मौजूद है।
जब एक इंटरेक्टिव शेल जो कि लॉगिन शेल नहीं है, तो bash पढ़ता है और कमांड से निष्पादित करता है ~/.bashrc
, यदि वह फ़ाइल मौजूद है। यह --norc
विकल्प का उपयोग करके बाधित हो सकता है। --rcfile file
विकल्प पढ़ सकते हैं और के बजाय फ़ाइल से आदेश पर अमल करने के लिए पार्टी के लिए बाध्य करेगा ~/.bashrc
।
जब वे कमांड लाइन स्विच के माध्यम से लोड हो जाते हैं, --norc
और आप नियंत्रित कर सकते हैं --noprofile
। आप उस स्थान को भी ओवरराइड कर सकते हैं जहां वे --rcfile
स्विच का उपयोग करने से लोड होते हैं ।
जैसा कि अन्य ने उल्लेख किया है कि आप कैसे इन फ़ाइलों को source <file>
कमांड के उपयोग या कमांड के उपयोग के माध्यम से लोड कर सकते हैं . <file>
।
इस प्रकार इस कार्यक्षमता के बारे में सोचना सबसे अच्छा है:
- बैश एक नंगे वातावरण के साथ शुरू होता है
- बैश तो इन फ़ाइलों में से एक को खोलता है (यह कैसे इंटरएक्टिव या लॉगिन के रूप में लागू किया गया था पर निर्भर करता है, और फिर ...
- ... लाइन द्वारा लाइन फ़ाइल के भीतर प्रत्येक कमांड निष्पादित करता है ...
- जब पूरा एक संकेत के रूप में नियंत्रण देता है, इनपुट की प्रतीक्षा कर रहा है
आह्वान करने के तरीके
यह विषय हर एक बार थोड़ी देर में आने लगता है, इसलिए यहां पर इनवाइट करने के लिए विभिन्न तरीकों की एक छोटी सी चिट्ठी है bash
और वे इसमें क्या परिणाम देते हैं। नोट: मदद करने के लिए मैंने संदेशों को "$ sourced $ HOME / .bashrc" और "sourced" जोड़ा है। $ HOME / .bash_profile "उनकी संबंधित फ़ाइलों के लिए।
बुनियादी कॉल
बैश -इ
$ bash -i
sourced /home/saml/.bashrc
बैश-एल
$ bash -l
sourced /home/saml/.bashrc
sourced /home/saml/.bash_profile
bash -il -or- bash -li
$ bash -il
sourced /home/saml/.bashrc
sourced /home/saml/.bash_profile
bash -c "..cmd .."
$ bash -c 'echo hi'
hi
नोट: ध्यान दें कि -c
स्विच या तो फ़ाइल स्रोत नहीं था!
कॉन्फ़िगर की जा रही फ़ाइलों को पढ़ने से अक्षम करना
बैश - nnorc
$ bash --norc
bash-4.1$
बैश - नोनोप्रोफाइल
$ bash --noprofile
sourced /home/saml/.bashrc
बैश - नोरक -इ
$ bash --norc -i
bash-4.1$
बैश - नोरक -एल
$ bash --norc -l
sourced /home/saml/.bashrc
sourced /home/saml/.bash_profile
बैश - नोनोप्रोफाइल -आई
$ bash --noprofile -i
sourced /home/saml/.bashrc
बैश - nnoprofile -l
$ bash --noprofile -l
bash-4.1$
bash --norc -i -or- bash --norc -l
$ bash --norc -c 'echo hi'
hi
बैश कॉल करने के अधिक गूढ़ तरीके
बैश - आर्कफाइल $ HOME / .bashrc
$ bash -rcfile ~/.bashrc
sourced /home/saml/.bashrc
bash --norc --rcfile $ HOME / .bashrc
$ bash --norc -rcfile ~/.bashrc
bash-4.1$
ये असफल रहे
bash -i -rcfile ~ / .bashrc
$ bash -i -rcfile ~/.bashrc
sourced /home/saml/.bashrc
sourced /home/saml/.bash_profile
bash: /home/saml/.bashrc: restricted: cannot specify `/' in command names
bash -i -rcfile .bashrc
$ bash -i -rcfile .bashrc
sourced /home/saml/.bashrc
sourced /home/saml/.bash_profile
bash: .bashrc: command not found
शायद और भी हैं लेकिन आपको बात मिलती है, उम्मीद है ...।
और क्या?
अंत में यदि आप इस विषय से इतने अधिक रोमांचित हैं कि आप इस पर अधिक पढ़ना / तलाशना चाहते हैं, तो मैं अत्यधिक बैश शुरुआती गाइड, विशेष रूप से अनुभाग: 1.2 पर एक नज़र डालने का सुझाव देता हूं । बॉर्न अगेन शेवेल के फायदे । "1.2.2.3.3। इंटरएक्टिव शेल व्यवहार" के माध्यम से उस एक, "1.2.2.1। मंगलाचरण" के तहत विभिन्न उपखंड, उन विभिन्न तरीकों के बीच निम्न स्तर के अंतरों की व्याख्या कर सकते हैं जिन्हें आप आमंत्रित कर सकते हैं ।bash