सही उत्तर में आपकी समस्या का समाधान होना चाहिए:
chsh: / usr / bin / zsh: गैर-मानक शेल
ऐसा होने का कारण यह है क्योंकि chsh
फ़ाइल / etc / गोले में परिभाषित किए गए गोले को केवल स्वीकार करेंगे, जैसा कि आप इसके लिए मैनुअल पढ़कर देख सकते हैं chsh
:
chsh सिस्टम पर किसी भी निष्पादन योग्य फ़ाइल के पूर्ण पथनाम को स्वीकार करेगा। हालाँकि, यह चेतावनी जारी करेगा यदि शेल / etc / गोले फ़ाइल में सूचीबद्ध नहीं है।
इस समस्या को हल करने और zsh को डिफ़ॉल्ट शेल बनाने के लिए, आपको इस प्रकार होना चाहिए:
$ sudo echo "$(which zsh)" >> /etc/shells
$ chsh -s $(which zsh)
जाहिर है, मुझे लगता है कि zsh
यहाँ अपने रास्ते में है। यह समाधान भी काम करेगा यदि आप, उदाहरण के लिए, के zsh
साथ नवीनतम स्थापित करने के लिए चुनें brew install zsh
।
संपादित करें (टिप्पणी के लिए ThisIsFlorianK के लिए धन्यवाद) :
आपके शेल सेटअप के आधार पर आपको एक संदेश मिल सकता है /etc/shells: Permission denied
। आप इस मुद्दे के बारे में जानकारी यहाँ पा सकते हैं ।
इसके चारों ओर काम करने के लिए, इसके बजाय निम्नलिखित का उपयोग करें:
$ sudo sh -c "echo $(which zsh) >> /etc/shells"
$ chsh -s $(which zsh)
chsh -l
आउटपुट क्या करता है? (यदि वह काम नहीं करता है तो क्या सामग्री हैं/etc/shells
?) क्या आपको यकीन है कि यह विफल हो रहा है और सिर्फ चेतावनी नहीं? क्या/usr/bin/zsh
वहाँ जोड़ने से यह काम हो जाता है?