जब कोई लॉगिन शेल बाहर निकलता है, खूब जोर से पीटना फ़ाइल से कमांड पढ़ता है और निष्पादित करता है ~/.बैश_लॉगआउट, यदि यह मौजूद है। इस प्रक्रिया को विस्तार से बताया गया है लॉग इन और खूब जोर से पीटना मैन पेज।
7.2.3. सेटअप फ़ाइलों का एक विशिष्ट सेट
7.2.3.1. /etc/प्रोफ़ाइल उदाहरण
आइए इनमें से कुछ कॉन्फ़िगरेशन फ़ाइलों को देखें। पहला / Etc / प्रोफ़ाइल पढ़ा जाता है, जिसमें महत्वपूर्ण वेरिएबल जैसे
पथ, उपयोगकर्ता और होस्टनाम सेट हैं:
डेबी:~> बिल्ली /etc/profile
# /आदि/प्रोफ़ाइल
# लॉगिन सेटअप के लिए सिस्टम वाइड वातावरण और स्टार्टअप प्रोग्राम
# फ़ंक्शन और उपनाम /etc/bashrc में जाते हैं
# पथ हेरफेर
यदि [ `id -u` = 0 ] && ! प्रतिध्वनि $पथ | /bin/grep -q "/sbin" ; फिर PATH=/sbin:$PATH
fi
यदि [ `id -u` = 0 ] && ! प्रतिध्वनि $पथ | /bin/grep -q "/usr/sbin" ; फिर PATH=/usr/sbin:$PATH
fi
यदि [ `id -u` = 0 ] && ! प्रतिध्वनि $पथ | /bin/grep -q "/usr/local/sbin" फिर
PATH=/usr/local/sbin:$PATH
fi
अगर ! प्रतिध्वनि $पथ | /bin/grep -q "/usr/X11R6/bin" ; फिर PATH='$PATH:/usr/X11R6/bin'
fi
डेबी:~> बिल्ली /etc/profile
# /आदि/प्रोफ़ाइल
# लॉगिन सेटअप के लिए सिस्टम वाइड वातावरण और स्टार्टअप प्रोग्राम
# फ़ंक्शन और उपनाम /etc/bashrc में जाते हैं
# पथ हेरफेर
यदि [ `id -u` = 0 ] && ! प्रतिध्वनि $पथ | /bin/grep -q "/sbin" ; फिर PATH=/sbin:$PATH
fi
यदि [ `id -u` = 0 ] && ! प्रतिध्वनि $पथ | /bin/grep -q "/usr/sbin" ; फिर PATH=/usr/sbin:$PATH
fi
यदि [ `id -u` = 0 ] && ! प्रतिध्वनि $पथ | /bin/grep -q "/usr/local/sbin" फिर
PATH=/usr/local/sbin:$PATH
fi
अगर ! प्रतिध्वनि $पथ | /bin/grep -q "/usr/X11R6/bin" ; फिर PATH='$PATH:/usr/X11R6/bin'
fi
ये पंक्तियाँ सेट करने के लिए पथ की जाँच करती हैं: यदि जड़ एक शेल खोलता है (उपयोगकर्ता आईडी 0), यह जांचा जाता है / sbin, / usr / sbin और
/usr/local/sbin पथ में हैं. यदि नहीं, तो उन्हें जोड़ दिया जाता है. यह सभी के लिए जांचा जाता है
/usr/X11R6/bin पथ में है.
# डिफ़ॉल्ट रूप से कोई कोर फाइल नहीं ulimit -S -c 0 > /dev/null 2>&1
# डिफ़ॉल्ट रूप से कोई कोर फाइल नहीं ulimit -S -c 0 > /dev/null 2>&1
सारा कचरा चला जाता है / Dev / बातिल यदि उपयोगकर्ता इस सेटिंग को नहीं बदलता है।
USER=`id -un` LOGNAME=$USER
MAIL='/var/spool/mail/$USER'
HOSTNAME=`/bin/hostname` HISTSIZE=1000
USER=`id -un` LOGNAME=$USER
MAIL='/var/spool/mail/$USER'
HOSTNAME=`/bin/hostname` HISTSIZE=1000
यहां सामान्य चरों को उनके उचित मान दिए गए हैं।
यदि [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; फिर INPUTRC=/etc/inputrc
fi
यदि [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; फिर INPUTRC=/etc/inputrc
fi
यदि चर INPUTRC सेट नहीं है, और नहीं है .inputrc उपयोगकर्ता की होम निर्देशिका में, फिर डिफ़ॉल्ट इनपुट नियंत्रण फ़ाइल लोड की जाती है।
निर्यात पथ USER लॉगनाम मेल HOSTNAME हिस्टसाइज़ INPUTRC
सभी चर निर्यात किए जाते हैं, ताकि वे आपके पर्यावरण के बारे में जानकारी का अनुरोध करने वाले अन्य कार्यक्रमों के लिए उपलब्ध हों।
7.2.3.2. प्रोफ़ाइल.डी निर्देशिका
मेरे लिए /etc/profile.d/*.sh ; यदि करें [ -r $i ]; तब
. $मैं
फाई डन अनसेट आई
मेरे लिए /etc/profile.d/*.sh ; यदि करें [ -r $i ]; तब
. $मैं
फाई डन अनसेट आई
से सभी पठनीय शेल स्क्रिप्ट /आदि/प्रोफाइल.डी निर्देशिका को पढ़ा और निष्पादित किया जाता है। ये सक्षम करने जैसे कार्य करते हैं रंग-एल.एस, उपनाम vi सेवा मेरे शक्ति, स्थान सेटिंग आदि। अस्थायी चर i इसे बाद में शेल व्यवहार में गड़बड़ी से रोकने के लिए तैयार नहीं किया गया है।
7.2.3.3. .bash_profile उदाहरण
फिर खूब जोर से पीटना एक के लिए देखता है .bash_profile उपयोगकर्ता की होम निर्देशिका में:
डेबी:~> बिल्ली .bash_profile
################################################## ###############
# #
# .बैश_प्रोफ़ाइल फ़ाइल #
# #
# जब आप लॉग इन करते हैं तो बैश शेल से निष्पादित होता है। #
# #
################################################## ###############
स्रोत ~/.bashrc स्रोत ~/.bash_login
यह बहुत सीधी-सादी फ़ाइल आपके शेल को पहले पढ़ने का निर्देश देती है ~ / .bashrc और फिर ~/.bash_login. आपका सामना होगा स्रोत शेल वातावरण में काम करते समय नियमित रूप से अंतर्निहित शेल कमांड: इसका उपयोग वर्तमान वातावरण में कॉन्फ़िगरेशन परिवर्तन लागू करने के लिए किया जाता है।
7.2.3.4. .bash_login उदाहरण
RSI ~/.bash_login फ़ाइल सेट करके डिफ़ॉल्ट फ़ाइल सुरक्षा को परिभाषित करती है umask मान, धारा 3.4.2.2 देखें। ~ / .bashrc फ़ाइल का उपयोग उपयोगकर्ता-विशिष्ट उपनामों और फ़ंक्शंस और व्यक्तिगत पर्यावरण चर के एक समूह को परिभाषित करने के लिए किया जाता है। यह पहले पढ़ता है / आदि / bashrc, जो डिफ़ॉल्ट प्रॉम्प्ट का वर्णन करता है (PS1) और डिफ़ॉल्ट umask मान। उसके बाद, आप अपनी स्वयं की सेटिंग्स जोड़ सकते हैं। अगर कोई नहीं ~ / .bashrc मौजूद, / आदि / bashrc डिफ़ॉल्ट रूप से पढ़ा जाता है.
7.2.3.5. /etc/bashrc उदाहरण
आपका / आदि / bashrc फ़ाइल इस तरह दिख सकती है:
डेबी:~> बिल्ली /etc/bashrc
# /etc/bashrc
# सिस्टम व्यापी फ़ंक्शंस और उपनाम
# पर्यावरण सामग्री /etc/profile में जाती है
# डिफ़ॉल्ट रूप से, हम चाहते हैं कि यह सेट हो जाए।
डेबी:~> बिल्ली /etc/bashrc
# /etc/bashrc
# सिस्टम व्यापी फ़ंक्शंस और उपनाम
# पर्यावरण सामग्री /etc/profile में जाती है
# डिफ़ॉल्ट रूप से, हम चाहते हैं कि यह सेट हो जाए।
# यहां तक कि गैर-संवादात्मक, गैर-लॉगिन शेल के लिए भी।
यदि [ `id -gn` = `id -un` -a `id -u` -gt 99 ]; फिर उमास्क 002
अन्य
उमास्क 022
fi
# यहां तक कि गैर-संवादात्मक, गैर-लॉगिन शेल के लिए भी।
यदि [ `id -gn` = `id -un` -a `id -u` -gt 99 ]; फिर उमास्क 002
अन्य
उमास्क 022
fi
ये पंक्तियाँ निर्धारित करती हैं umask कीमत। फिर, शेल के प्रकार के आधार पर, प्रॉम्प्ट सेट किया जाता है:
#क्या हम एक इंटरैक्टिव शेल हैं? यदि [ "$PS1" ]; तब
यदि [ -x /usr/bin/tput ]; तब
यदि [ "x`tput kbs`" != "x" ]; तब
# हम "डंब" टर्मिनल स्ट्टी इरेज `tput kbs` के साथ ऐसा नहीं कर सकते
एलिफ़ [ -x /usr/bin/wc ]; तब
अगर [ "`tput kbs|wc -c`" -gt 0 ]; तब
# हम "डंब" टर्मिनल स्ट्टी इरेज `tput kbs` के साथ ऐसा नहीं कर सकते
फाई फाई
fi
केस $TERM में
xterm*)
यदि [ -e /etc/sysconfig/bash-prompt-xterm ]; फिर PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm
अन्य
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%)*}:\
${PWD/$HOME/~}\007"'
fi
;;
*)
[ -e /etc/sysconfig/bash-prompt-default ] && PROMPT_COMMAND=\
/etc/sysconfig/bash-prompt-default
;;
esac
[ "$PS1" = "\\s-\\v\\$ " ] && PS1='[\u@\h \W]\\$ "
यदि [ "x$SHLVL" != "x1" ]; फिर # हम /etc/profile.d/*.sh में i के लिए लॉगिन शेल नहीं हैं; करना
अगर [ -x $i ]; तब
. $मैं
fi
किया
fi
fi
#क्या हम एक इंटरैक्टिव शेल हैं? यदि [ "$PS1" ]; तब
यदि [ -x /usr/bin/tput ]; तब
यदि [ "x`tput kbs`" != "x" ]; तब
# हम "डंब" टर्मिनल स्ट्टी इरेज `tput kbs` के साथ ऐसा नहीं कर सकते
एलिफ़ [ -x /usr/bin/wc ]; तब
अगर [ "`tput kbs|wc -c`" -gt 0 ]; तब
# हम "डंब" टर्मिनल स्ट्टी इरेज `tput kbs` के साथ ऐसा नहीं कर सकते
फाई फाई
fi
केस $TERM में
xterm*)
यदि [ -e /etc/sysconfig/bash-prompt-xterm ]; फिर PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm
अन्य
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%)*}:\
${PWD/$HOME/~}\007"'
fi
;;
*)
[ -e /etc/sysconfig/bash-prompt-default ] && PROMPT_COMMAND=\
/etc/sysconfig/bash-prompt-default
;;
esac
[ "$PS1" = "\\s-\\v\\$ " ] && PS1='[\u@\h \W]\\$ "
यदि [ "x$SHLVL" != "x1" ]; फिर # हम /etc/profile.d/*.sh में i के लिए लॉगिन शेल नहीं हैं; करना
अगर [ -x $i ]; तब
. $मैं
fi
किया
fi
fi
7.2.3.6. .bash_logout उदाहरण
लॉगआउट करने पर, कमांड अंदर आती है ~/.बैश_लॉगआउट निष्पादित होते हैं, जो उदाहरण के लिए टर्मिनल को साफ़ कर सकते हैं, ताकि दूरस्थ सत्र से लॉग आउट करने पर, या सिस्टम कंसोल छोड़ने पर आपके पास एक साफ़ विंडो हो:
डेबी:~> बिल्ली .बैश_लॉगआउट
# ~/.बैश_लॉगआउट
स्पष्ट
डेबी:~> बिल्ली .बैश_लॉगआउट
# ~/.बैश_लॉगआउट
स्पष्ट
आइए अगले भाग में इस पर करीब से नज़र डालें कि ये स्क्रिप्ट कैसे काम करती हैं। रखना पता खूब जोर से पीटना हाथ के पास।