जब आप लॉग इन करते हैं, तो फ़ाइल ~/.profileलॉगिन शेल (आपके लिए ksh) द्वारा पढ़ी जाती है। आप उस लॉगिन शेल को बैश करके खुद को बदलने का निर्देश दे सकते हैं। आपको कुछ सावधानियां बरतनी चाहिए:
- इंटरेक्टिव होने पर ही लॉगिन शेल को बदलें। यह महत्वपूर्ण है: अन्यथा, ग्राफिक मोड में लॉगिंग काम नहीं कर सकती है (यह सिस्टम-निर्भर है: कुछ लेकिन सभी सिस्टम नहीं पढ़ते हैं
~/.profileजब xdm या समान के माध्यम से लॉग इन करते हैं), और मुहावरे जैसे कि ssh foo '. ~/.profile; mycommand'विफल हो जाएंगे।
- जाँच करें कि बैश उपलब्ध है, ताकि आप अभी भी लॉग इन कर सकें यदि निष्पादन योग्य किसी कारण से नहीं है।
आपके पास एक विकल्प है कि बैश को लॉगिन शेल के रूप में चलाएं या नहीं। इसे लॉगिन शेल बनाने में एकमात्र बड़ा अंतर यह है कि यह लोड होगा ~/.bash_profileया ~/.profile। तो अगर आप लॉगिन शेल के रूप में बैश चलाते हैं, तो बहुत सावधानी बरतें ~/.bash_profileया इस बात का ध्यान रखें कि बैर को फिर से न चलाएं ~/.profile। ~/.profileKsh के बजाय bash द्वारा निष्पादित होने का कोई वास्तविक लाभ नहीं है, इसलिए मैं इसे नहीं करने की सलाह दूंगा।
SHELLपर्यावरण चर को भी काटने के लिए सेट करें , ताकि टर्मिनल एमुलेटर जैसे कार्यक्रम उस शेल को लागू करेंगे।
यहां बैश पर स्विच करने के लिए कोड है। के अंत में रखें ~/.profile।
case $- in
*i*)
# Interactive session. Try switching to bash.
if [ -z "$BASH" ]; then # do nothing if running under bash already
bash=$(command -v bash)
if [ -x "$bash" ]; then
export SHELL="$bash"
exec "$bash"
fi
fi
esac