chsh -s / usr / bin / zsh काम नहीं कर रहा है


24

मैं chshकमांड का उपयोग करके अपने शेल को स्थायी रूप से zsh में बदलने की कोशिश कर रहा हूं , लेकिन यह काम नहीं कर रहा है।

zsh स्थापित है (उपयुक्त के माध्यम से) और ठीक काम करता है जब मैं इसे बैश प्रॉम्प्ट टर्मिनल से सीधे आह्वान करता हूं। लेकिन मुझे डिफ़ॉल्ट रूप से टर्मिनलों में लोड करने के लिए zsh नहीं मिल सकता है, और chsh कुछ अजीब कर रहा है:

$ echo $SHELL
/bin/bash
$ which zsh
/usr/bin/zsh
$ chsh -s /usr/bin/zsh
Password: 
$ echo $SHELL
/bin/bash
$ grep kurtosis /etc/passwd
kurtosis:x:1000:1000:kurtosis,,,:/home/kurtosis:/usr/bin/zsh

ऐसा प्रतीत होता है कि chsh सही ढंग से / etc / passwd को बदलने में कामयाब रहा है, लेकिन $ SHELL env वैरिएबल नहीं है। इस प्रकार, नए टर्मिनल हमेशा बाश में शुरू होते हैं, न कि zsh में।

मुझे यकीन नहीं है कि इस समस्या का निवारण कहाँ करना है। .bashrcभले ही यह निर्दिष्ट नहीं है जब तक कि शेल निर्दिष्ट नहीं है? किसी भी मदद की सराहना की।


1
सिस्टम में पुनः लॉग-इन करने के बाद आप शेल को बदल नहीं सकते?
अंगूर_सुंदर

जवाबों:


34

इन परिवर्तनों को प्रभावी करने के लिए आपको फिर से लॉग आउट करने की आवश्यकता है। / Etc / passwd फ़ाइल में परिभाषित शेल आपका लॉगिन शेल है :-) तो आपको वास्तव में उसके लिए लॉग इन करना होगा।


2
धन्यवाद। मुझे रिबूट करने के बिना लिनक्स में बदलाव करने में सक्षम होने के लिए उपयोग किया जाता है, यह मेरे लिए नहीं हुआ।
कुर्टोसिस

मुझे वास्तव में इसे प्रभावी बनाने के लिए एक रिबूट करना था - मुझे लगता है कि यह किसी तरह मुझे एक मौजूदा शेल सत्र से फिर से जोड़ रहा था।
क्रिस किम्पटन

एक ssh कनेक्शन का उपयोग करते समय, भले ही आप बाहर निकलें, सर्वर कनेक्शन और शेल को सभी तरह से बंद नहीं कर सकता है। तो, आपको उन प्रक्रियाओं (ssh और sh) को मारने की आवश्यकता हो सकती है जो आपके उपयोगकर्ता से संबंधित हैं। (मुझे यह समस्या थी और इसका हल खोजना आसान था लेकिन फिर भी, मुझे इस पोस्ट पर आना पड़ा कि मुझे लॉगआउट करना है।)
जॉन हैमिल्टन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.