यह लेख उस क्रम की व्याख्या करेगा जिसमें निम्नलिखित फाइलें निष्पादित की जाती हैं:
- /आदि/प्रोफ़ाइल
- ~/.bash_profile
- ~/.bashrc
- ~/.bash_login
- ~/.प्रोफ़ाइल
- ~/.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 मान जोड़ना और शेल में फिर से लॉगिन करना और देखें कि कौन सा PS1 मान लिनक्स प्रॉम्प्ट द्वारा उठाया गया है। इसके अलावा, पहले हमने आपके Linux प्रॉम्प्ट को कार्यात्मक और स्टाइलिश दोनों बनाने के लिए PS1 का उपयोग करने के तरीके के बारे में चर्चा की थी।
1. /etc/प्रोफाइल निष्पादित हो जाता है। /etc/प्रोफाइल में निम्नलिखित PS1 लाइन जोड़ें और यह सुनिश्चित करने के लिए पुनः लॉगिन करें कि Linux प्रॉम्प्ट /etc/प्रोफाइल के अंदर सेट किए गए PS1 मान में परिवर्तन करता है।
# grep PS1 /etc/profile PS1="/etc/profile> " [Note: re-login to see the prompt change as shown below] Last login: Sat Sep 27 16:43:57 2008 from 192.168.1.2 /etc/profile>
कृपया सुनिश्चित करें कि उपरोक्त के ठीक से काम करने के लिए ~/.bash_profile में कोई PS1 नहीं है।
<मजबूत>2. ~/.bash_profile निष्पादित हो जाता है: निम्नलिखित PS1 को ~/.bash_profile, ~/.bash_login, ~/.profile और ~/.bashrc में जोड़ें। यह सुनिश्चित करने के लिए पुनः लॉगिन करें कि 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> " [Note: Upon re-login, it executed /etc/profile first and ~/.bash_profile next. So, it took the PS1 from ~/.bash_profile as shown below. It also did not execute ~/.bash_login, as ~/.bash_profile exists] 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 [Note: Upon re-login, it executed /etc/profile first. Since it cannot find ~/.bash_profile, it executed ~/.bash_login] Last login: Sat Sep 27 16:50:55 2008 from 192.168.1.2 ~/bash_login>
<मजबूत>4. ~/.प्रोफ़ाइल निष्पादित हो जाती है। .bash_login का नाम किसी और चीज़ में बदलें। यह सुनिश्चित करने के लिए पुन:लॉगिन करें कि Linux प्रॉम्प्ट नीचे दिखाए गए अनुसार ~/.profile के अंदर सेट किए गए PS1 मान में बदल जाता है।
~/.bash_login> mv .bash_login bash_login_not_used [Note: Upon re-login, it executed /etc/profile first. Since it cannot find ~/.bash_profile and ~/.bash_login, it executed ~/.profile] Last login: Sat Sep 27 16:56:36 2008 from 192.168.1.2 ~/.profile>
<मजबूत>5. ~/.bashrc गैर-लॉगिन शेल परीक्षण के लिए निष्पादित हो जाता है . निष्पादन “ bash” कमांड प्रॉम्प्ट पर एक और नॉन-लॉगिन शेल देगा, जो नीचे दिखाए गए अनुसार .bashrc को इनवाइट करेगा।
~/.profile> bash [Note: This displays PS1 from .bashrc as shown below.] ~/.bashrc> exit exit [Note: After exiting from non-login shell, we are back to login shell] ~/.profile>
अगर आपको यह लेख पसंद आया है, तो कृपया इसे del.icio.us पर बुकमार्क कर लें। और इसे ठोकर मारें .