Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Bash प्रोग्रामिंग

Bash कैसे .bash_profile, .bashrc, .bash_login, .profile, और .bash_logout फ़ाइलों को लोड करता है

यह लेख बताएगा कि निम्नलिखित फ़ाइलों को किस क्रम में निष्पादित किया जाता है:

  • /etc/profile
  • ~/.bash_profile
  • ~/.bashrc
  • ~/.bash_login
  • ~/.profile
  • ~/.bash_logout

इंटरैक्टिव लॉगिन शेल के लिए निष्पादन क्रम

निम्नलिखित स्यूडो कोड इन फ़ाइलों के निष्पादन के क्रम को समझाता है।

execute /etc/profile IF ~/.bash_profile exists THEN execute ~/.bash_profile ELSE IF ~/.bash_login exist THEN execute ~/.bash_login ELSE IF ~/.profile exist THEN execute ~/.profile END IF END IF END IF

जब आप इंटरैक्टिव शेल से लॉगआउट करते हैं, तो निष्पादन का क्रम निम्नलिखित होता है:

IF ~/.bash_logout exists THEN execute ~/.bash_logout END IF

कृपया ध्यान दें कि /etc/bashrc को ~/.bashrc द्वारा निष्पादित किया जाता है जैसा कि नीचे दिखाया गया है:

# cat ~/.bashrc if [ -f /etc/bashrc ]; then . /etc/bashrc fi

इंटरैक्टिव नॉन-लॉगिन शेल के लिए निष्पादन क्रम

नॉन-लॉगिन इंटरैक्टिव शेल लॉन्च करते समय, निष्पादन का क्रम निम्नलिखित होता है:

IF ~/.bashrc exists THEN execute ~/.bashrc END IF

नोट: जब एक नॉन-इंटरैक्टिव शेल शुरू होता है, तो यह ENV पर्यावरण वेरिएबल को देखता है, और ENV वेरिएबल में उल्लिखित फ़ाइल नाम को निष्पादित करता है।

निष्पादन क्रम का परीक्षण करें

निष्पादन क्रम का परीक्षण करने का एक तरीका इन फ़ाइलों में अलग-अलग PS1 मान जोड़ना और शेल में फिर से लॉगिन करना है और देखें कि Linux प्रॉम्प्ट द्वारा कौन सा PS1 मान लिया गया था। इसके अलावा, हमने पहले चर्चा की थी कि PS1 का उपयोग करके अपने Linux प्रॉम्प्ट को कार्यात्मक और स्टाइलिश कैसे बनाया जाए।

1. /etc/profile निष्पादित होता है। /etc/profile में निम्नलिखित PS1 लाइन जोड़ें और यह सुनिश्चित करने के लिए फिर से लॉगिन करें कि Linux प्रॉम्प्ट /etc/profile के अंदर सेट PS1 मान में बदल जाए।

# grep PS1 /etc/profile PS1="/etc/profile> " [नोट: प्रॉम्प्ट परिवर्तन देखने के लिए फिर से लॉगिन करें जैसा कि नीचे दिखाया गया है] Last login: Sat Sep 27 16:43:57 2008 from 192.168.1.2 /etc/profile>

कृपया सुनिश्चित करें कि ~/.bash_profile में उपरोक्त के ठीक से काम करने के लिए कोई PS1 नहीं है।

2. ~/.bash_profile निष्पादित होता है: ~/.bash_profile, ~/.bash_login, ~/.profile और ~/.bashrc में निम्नलिखित PS1 जोड़ें। फिर से लॉगिन करके सुनिश्चित करें कि Linux प्रॉम्प्ट ~/.bash_profile के अंदर सेट PS1 मान में बदल जाए जैसा कि नीचे दिखाया गया है।

/etc/profile> grep PS1 ~/.bash_profile export PS1="~/.bash_profile> " /etc/profile> grep PS1 ~/.bash_login export PS1="~/.bash_login> " /etc/profile> grep PS1 ~/.profile export PS1="~/.profile> " /etc/profile> grep PS1 ~/.bashrc export PS1="~/.bashrc> " [नोट: पुनः लॉगिन पर, इसने पहले /etc/profile और फिर ~/.bash_profile निष्पादित किया। इसलिए, इसने ~/.bash_profile से PS1 लिया जैसा कि नीचे दिखाया गया है। इसने ~/.bash_login को निष्पादित नहीं किया, क्योंकि ~/.bash_profile मौजूद है] Last login: Sat Sep 27 16:48:11 2008 from 192.168.1.2 ~/.bash_profile>

3. ~/.bash_login निष्पादित होता है। .bash_profile का नाम बदलकर कुछ और कर दें। फिर से लॉगिन करके सुनिश्चित करें कि Linux प्रॉम्प्ट ~/.bash_login के अंदर सेट PS1 मान में बदल जाए जैसा कि नीचे दिखाया गया है।

~/.bash_profile> mv .bash_profile bash_profile_not_used [नोट: पुनः लॉगिन पर, इसने पहले /etc/profile निष्पादित किया। चूंकि यह ~/.bash_profile नहीं ढूंढ सका, इसने ~/.bash_login निष्पादित किया] Last login: Sat Sep 27 16:50:55 2008 from 192.168.1.2 ~/bash_login>

4. ~/.profile निष्पादित होता है। .bash_login का नाम बदलकर कुछ और कर दें। फिर से लॉगिन करके सुनिश्चित करें कि Linux प्रॉम्प्ट ~/.profile के अंदर सेट PS1 मान में बदल जाए जैसा कि नीचे दिखाया गया है।

~/.bash_login> mv .bash_login bash_login_not_used [नोट: पुनः लॉगिन पर, इसने पहले /etc/profile निष्पादित किया। चूंकि यह ~/.bash_profile और ~/.bash_login नहीं ढूंढ सका, इसने ~/.profile निष्पादित किया] Last login: Sat Sep 27 16:56:36 2008 from 192.168.1.2 ~/.profile>

5. नॉन-लॉगिन शेल परीक्षण के लिए ~/.bashrc निष्पादित होता है. कमांड प्रॉम्प्ट पर "bash" निष्पादित करने से एक और नॉन-लॉगिन शेल मिलेगा, जो .bashrc को लागू करेगा जैसा कि नीचे दिखाया गया है।

~/.profile> bash [नोट: यह नीचे दिखाए अनुसार .bashrc से PS1 प्रदर्शित करता है.] ~/.bashrc> exit exit [नोट: नॉन-लॉगिन शेल से बाहर निकलने के बाद, हम लॉगिन शेल पर वापस आ गए हैं] ~/.profile>
  1. CMOS क्या है और इसका उपयोग किस लिए किया जाता है? CMOS क्या है और इसका उपयोग किस लिए किया जाता है?

    CMOS या कॉम्प्लिमेंट्री मेटल ऑक्साइड सेमीकंडक्टर आपके कंप्यूटर के मदरबोर्ड में थोड़ी मात्रा में मेमोरी है और इसका उपयोग BIOS सेटिंग्स को संग्रहीत करने के लिए किया जाता है। वे आपके कंप्यूटर के लिए बहुत महत्वपूर्ण हैं क्योंकि वे सिस्टम फ़ाइलों को संग्रहीत करते हैं जो आपकी तारीख और समय और कुछ हार्डवेयर

  1. CMOS क्या है और इसका उपयोग किस लिए किया जाता है? CMOS क्या है और इसका उपयोग किस लिए किया जाता है?

    CMOS या कॉम्प्लिमेंट्री मेटल ऑक्साइड सेमीकंडक्टर आपके कंप्यूटर के मदरबोर्ड में एक छोटी मात्रा में मेमोरी है और इसका उपयोग BIOS सेटिंग्स को संग्रहीत करने के लिए किया जाता है। वे आपके कंप्यूटर के लिए बहुत महत्वपूर्ण हैं क्योंकि वे सिस्टम फ़ाइलों को संग्रहीत करते हैं जो आपकी तारीख और समय और कुछ हार्डवे

  1. Microsoft Edge में एकाधिक यूजर प्रोफाइल कैसे बनाएं और उपयोग करें Microsoft Edge में एकाधिक यूजर प्रोफाइल कैसे बनाएं और उपयोग करें

    यदि आप अपने कंप्यूटर को अपने घर के अन्य सदस्यों के साथ साझा करते हैं, तो आप अपने ब्राउज़र पर अलग-अलग यूजर प्रोफाइल सक्षम करके अच्छा करेंगे। अलग-अलग यूजर प्रोफाइल प्रत्येक उपयोगकर्ता को ब्राउज़र पर लॉग ऑन करते समय अपने स्वयं के एक्सटेंशन, सेटिंग्स, इतिहास, बुकमार्क, क्रेडिट कार्ड जानकारी और ईमेल तक प