डिफ़ॉल्ट शेल को ZSH में कैसे बदलें - chsh कहते हैं "अमान्य शेल"


36

मैंने ZSH को अपने एक VM पर स्थापित किया, जहां मैंने इसे स्रोत से संकलित किया। ZSH का स्थान वह है /usr/local/bin/zshजब मैं chsh -s /usr/local/bin/zshइसे आउटपुट करता हूं chsh: /usr/local/bin/zsh is an invalid shell। मैंने भी सूडो के साथ यही कोशिश की। मेरे द्वारा इसे कैसे बदला जा सकता है?



6
@ मिकेल, नहीं, यह सवाल "मुझे नहीं पता है chsh" के बजाय " chshमेरे लिए काम नहीं कर रहा है"।
cjm

जवाबों:


48

Zsh को इसमें जोड़ें /etc/shells:

command -v zsh | sudo tee -a /etc/shells

अब आप zsh को शेल के रूप में सेट करने के लिए chsh का उपयोग कर सकते हैं:

sudo chsh -s "$(command -v zsh)" "${USER}"

इस दस्तावेज़ को देखें: अपना लॉगिन शेल बदलना



3

पहले, जाँच लें कि zshक्या एक वैध शेल के रूप में सूचीबद्ध है

cat /etc/shells

यदि zshसूचीबद्ध नहीं है, तो इसे स्थापित करें। उदाहरण के लिए, यदि आप उपयोग करते हैंapt

sudo apt-get install zsh

करो, चरण 1 और फिर से का मार्ग देखें zsh। मेरे मामले में, दोनों /usr/bin/zshऔर /usr/zshसूचीबद्ध है। जैसा कि @ Stéphane Chazelas ने टिप्पणी में उल्लेख किया है, अगर आप स्क्रैच से शेल को संकलित करना और स्थापित करना पसंद करते हैं, तो रास्ते को जोड़ना सुनिश्चित करें /etc/shells

शेल का उपयोग करके बदलें

chsh -s /usr/bin/zsh

से आदमी पेज :

-s, --shell SHELLउपयोगकर्ता के नए लॉगिन शेल का नाम। इस फ़ील्ड को रिक्त पर सेट करने से सिस्टम डिफ़ॉल्ट लॉगिन शेल का चयन करता है।

लॉगआउट करें और फिर से लॉगिन करें।


हां, यदि आप शेल को OS पैकेज के हिस्से के रूप में स्थापित करते हैं, तो OS पैकेजिंग आमतौर पर शेल को जोड़ देगा /etc/shells। यहाँ मुद्दा यह है कि यदि आप शेल को हाथ से संकलित करते हैं और स्थापित करते हैं, तो आपको /etc/shellsअपने आप को हाथ से रास्ता जोड़ना होगा ।
स्टीफन चेजलस

अच्छी बात। मैं 'apt' जैसे पैकेज मैनेजर के बारे में सोच रहा था। मैंने आपकी बात को शामिल करने के लिए उत्तर संपादित किया है।
शनि यम

यह अनिवार्य रूप से अन्य दो उत्तर पहले ही कह चुके हैं, हालांकि।
जेफ स्कालर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.