यदि आप नहीं चला सकते हैं chsh
क्योंकि आपके पास व्यवस्थापक विशेषाधिकार नहीं हैं, तो किसी ऐसे व्यक्ति से बात करें जो करता है ।
सबसे अधिक संभावना है कि आप chsh
गैर-रूट के रूप में उपयोग नहीं कर सकते क्योंकि आप जिस सिस्टम का उपयोग कर रहे हैं वह कॉन्फ़िगर किया गया है इसलिए chsh
काम नहीं करेगा, क्योंकि सिस्टम केवल /etc/passwd
फ़ाइल के बजाय एनआईएस या एलडीएपी का उपयोग करता है । या शायद आपके सिस्टम का व्यवस्थापक कुछ नियंत्रण बनाए रखना चाहता है।
आपके शेल को बदलने की प्रक्रिया आपके संगठन की नीतियों पर निर्भर करती है। एक स्थानीय कमांड हो सकता है जो chsh
सामान्य रूप से करता है। या आपको शेल परिवर्तन का अनुरोध करते हुए एक समर्थन टिकट जमा करने की आवश्यकता हो सकती है।
अधिकांश अन्य उत्तर अच्छे हैं, लेकिन यदि आपके व्यवस्थापक यथोचित रूप से उत्तरदायी हैं, तो आप अपने स्टार्टअप स्क्रिप्ट को हैक करने से परेशान नहीं होना चाहते। मैं शायद केवल zsh -l
लॉग इन करने के बाद मैन्युअल रूप से आह्वान करूंगा जब तक कि व्यवस्थापक मेरे खाते को अपडेट करने के लिए चारों ओर न पहुंच जाए।
एक और बात ध्यान में रखें: कभी-कभी विभिन्न गोले एक ही स्टार्टअप फ़ाइलों का उपयोग कर सकते हैं। उदाहरण के लिए, sh
और bash
दोनों निष्पादित कर सकते हैं $HOME/.profile
, और csh
और tcsh
दोनों निष्पादित कर सकते हैं $HOME/.login
और $HOME/.cshrc
(हालांकि जैसा शेल-विशिष्ट स्टार्टअप फ़ाइलों .bashrc
, .bash_profile
और .tcshrc
उन ओवरराइड कर सकते हैं)। यदि आपका डिफ़ॉल्ट शेल है /bin/csh
और आप उपयोग करना चाहते हैं /bin/tcsh
, तो अपने .login
इनवॉइस को अपडेट करने से /bin/tcsh -l
एक अनंत लूप बन सकता है। -स्पेशल स्टार्टअप फ़ाइलों zsh
को निष्पादित करने के लिए नहीं होता है bash
, इसलिए यह आपके लिए कोई समस्या नहीं है।
अधिकांश गोले चर की पहचान जो शैल आप (चला रहे हैं सेट $BASH_VERSION
, $tcsh
, $ZSH_VERSION
)। यदि आप अपने पसंदीदा शेल को इनवॉइस करने के लिए स्टार्टअप कोड लिखने जा रहे हैं, तो यह एक बुरा विचार नहीं है, if
ताकि आप इसे पहले से ही उस शेल में न चलाएं। Konsolebox के उत्तर से कोड का उपयोग करना :
if [ "${ZSH_VERSION:-unset}" = "unset" ] ; then
export SHELL=/bin/zsh
exec /bin/zsh -l
fi
( आपके द्वारा की गई संभावना के "${ZSH_VERSION:-unset}"
बजाय जाँच की अतिरिक्त जटिलता , एक विकल्प है जो एक त्रुटि के लिए अपरिभाषित चर के संदर्भ का कारण बनता है।)"$ZSH_VERSION"
set -o unset
zsh
पर जोड़ें.bashrc
। लॉगआउट और लॉगिन और किया!