ZSH को डिफ़ॉल्ट शेल कैसे बनाया जाए?


124

मैं ZSH को अपने डिफ़ॉल्ट शेल के रूप में सेट करने की कोशिश कर रहा हूं, हालांकि यह बैश करने के लिए वापस लौट रहा है।

मैंने इस कोड की कोशिश की है:

sudo chsh -s $(which zsh)

मैंने भी कोशिश की है:

sudo chsh -s /bin/zsh 

सूदो के बिना भी इन आदेशों को आजमाया। मुझे और क्या करने की जरूरत है पर कोई विचार। जब ZSH को बैश के भीतर से चलाया जाता है तो यह लोड होता है और ठीक काम करता है लेकिन मैं इसे डिफ़ॉल्ट शेल के रूप में सेट करना चाहूंगा।

जवाबों:


217

बस का उपयोग कर chsh:

chsh -s $(which zsh)

बिना sudo काम नहीं करना चाहिए। यदि आप इसका उपयोग करते हैं तो sudoयह शेल आपके कार्यशील उपयोगकर्ता के लिए नहीं बल्कि रूट के लिए बदल जाएगा

अंत में, अपने कंप्यूटर से लॉग आउट करें और वापस लॉग इन करें

समस्या निवारण:


17
मेरे पास एक ही समस्या है और इसका जवाब हल नहीं है
असविन मुरुगेश

@AswinMurugesh मेरा जवाब देखें
शैलेश

9
आप sudo chsh -s / bin / zsh userName भी चला सकते हैं
मीका

15
नोट: इससे प्रभावी होने से पहले मुझे अपनी प्रणाली को पुनः आरंभ करना होगा।
केविन ओको

नहीं, यह काम नहीं किया।
Haha TTpro

40

मुझे यह सुपरसुअर मंच पर मिला

खुला / आदि / पासवार्ड:

sudo vi /etc/passwd

अपने उपयोगकर्ता नाम के साथ लाइन खोजें:

username:x:1634231:100:Your Name:/home/username:/bin/bash

और बश को zsh से बदलें:

username:x:1634231:100:Your Name:/home/username:/bin/zsh

प्रभावी होने के लिए लॉग आउट करें और लॉग इन करें।


11
आप इस दृष्टिकोण के साथ बहुत सावधान रहना चाहिए - यह आमतौर पर सबसे अच्छा विचार के साथ आसपास mucking जाना नहीं है/etc/passwd
थॉमस वार्ड

हालांकि मैं इस विधि का उपयोग नहीं किया था, यह मुझे के प्रभाव की पुष्टि की मदद कीchsh -s `which zsh`
jchook

हा ये कुल मेरे उपयोगकर्ता गड़बड़। लॉग इन नहीं कर सकते।
मार्क कारपेंटर जूनियर

6

आप यह भी कर सकते हैं:

अपने पसंदीदा संपादक में अपनी bashrc फ़ाइल खोलें

sudo nano ~/.bashrc

फिर फ़ाइल के शीर्ष के नीचे की रेखा जोड़ें

exec zsh

हर बार जब आप टर्मिनल को लोड करते हैं और अपने zsh शेल को चलाते हैं तो यह कमांड निष्पादित करेगा।


13
और यह आपकी सभी गैर-इंटरैक्टिव नौकरियों ( scpउदाहरण के लिए) को भी तोड़ देगा ।
जकूजी

डाउनवोट के लिए क्षमा करें, लेकिन बदलना /etc/passwdया chshबेहतर समाधान और अधिक विश्वसनीय हैं।
टिमो

धन्यवाद कि यह किया। @ टिमो मैंने परिवर्तन को / etc / passwd और या chsh पर किया था लेकिन मेरा डिफ़ॉल्ट बैश में वापस जाता रहा। मैंने पोस्ट की गई प्रतिक्रिया के अनुसार निष्पादन zsh जोड़ा और यह काम किया।
स्ट्राइकर

3

अगर zsh / bin / zsh नहीं है तो chsh काम नहीं करेगा। उबंटू पर यह / usr / bin / zsh है। इसलिए काम करना चाहिए chsh -s /usr/bin/zshया chsh -s `which zsh`करना चाहिए। इसके अलावा डेस्कटॉप सेशन में फिर से लॉगइन करना होगा।


मेरे उबंटू वीपीएस पर यह / बिन / zsh
विल्हेम इरास्मस

मेरे उबंटू पर, मैं इसे दोनों में देखता हूं /bin/zshऔर/usr/bin/zsh
नीला_चिप

2
मेरा (14.04 पर, मुख्य रेपो से zsh के साथ), दो zsh के हैं, और वे दोनों दो-परत सिम्लिंक्स हैं: / usr / bin / zsh -> / etc / विकल्प / zsh-usrbin - / bin / zsh5 और / बिन / zsh -> / etc / विकल्प / zsh -> / bin / zsh5
wjandrea

1

मेरे पास वर्तमान उपयोगकर्ता के तहत शेल को बदलने की अनुमति के साथ एक समस्या थी, लेकिन अगली मेरी मदद करता है (आपको अपने कंप्यूटर के लिए सही 'zsh' फ़ोल्डर सेट करना चाहिए):

sudo chsh -s /bin/zsh <myUserName>

0

अजीब बात है, "स्वीकृत" जवाब मेरे लिए काम नहीं किया जैसा कि मुझे मिला

chsh: PAM: Authentication failure

इस समस्या को हल करने के लिए अपने / etc / passwd को संपादित करें और यह सुनिश्चित करें कि यह zsh स्थान की ओर इशारा करता है। (आप इसे "कौन सा zsh" चलाकर पा सकते हैं) मेरे मामले में "वेबमास्टर" नामक मेरे उपयोगकर्ता इस तरह दिखे:

webmaster:x:1001:1001:webmaster,,,:/var/www/webmaster:/usr/bin/zsh

मेरा मानना ​​है कि यह पासवर्ड मांगने वाला है। मुझे अपनी पिछली टकसाल स्थापित करने पर वही त्रुटि मिली। वर्तमान में ठीक काम किया
विल्हेम इरास्मस

किसी और को भी यही समस्या थी, और यह पता चला कि वे भाग चुके थे chsh -s zsh, जिससे उनकी पासवार्ड एंट्री गलत हो गई।
वेजेंड्रिया

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