जवाबों:
जब तक आप एक बहु- chsh
स्तरीय वातावरण के रूप में साइबरविन का उपयोग कर रहे हैं (जिस स्थिति में आप मानक पर्यावरण के तहत उपयोग करेंगे)।
अन्यथा, आप zsh -l -i
इसके बजाय चलाने के लिए cygwin.bat को बदलते हैं bash --login -i
और यह लॉगिन शेल के रूप में चलेगा।
बेशक, यदि आप स्टार्टअप से कई गोले चलाना चाहते हैं, तो बस .bat
अलग-अलग गोले लोड करने के लिए फ़ाइलों का एक सेट बनाएं । ( sh
, ksh
, csh
, fish
आदि)
मैंने महसूस किया कि मुझे इसे अपडेट करने के लिए इसे बिना किसी जानकारी के प्रदान करना चाहिए chsh
लेकिन फिर भी इसे यूनिक्स के अंत में करना चाहिए। /etc/passwd
फ़ाइल संपादित करें और के /bin/bash
साथ होने वाली घटनाओं को बदलें /bin/zsh
। (यह प्रभावी रूप से क्या chsh
करेगा, लेकिन इस तरह से आप इसे एक ही बार में सभी उपयोगकर्ताओं के लिए करेंगे ।)
mkpasswd -l -p "$(cygpath -H)" > /etc/passwd
/etc/passwd
यदि मैं आपका प्रश्न सही पढ़ता हूं, तो आप कुछ और खोज रहे हैं जो चेरे की आपूर्ति (जो प्रदान की गई है, अपने आप में बहुत अच्छा है)।
Cygwin के वर्तमान संस्करण में / etc / passwd फ़ाइल नहीं है, और मैं जिस सिस्टम पर काम कर रहा हूं, मेरे नियंत्रण से बाहर एक डोमेन डेटाबेस में Windows खाता जानकारी है। नतीजतन, chsh अब समर्थित नहीं है।
मैंने यह भी पाया कि बैश, स्टार्टक्सविन स्क्रिप्ट में हार्ड-कोडेड नहीं है , न ही यह किसी भी .bat फ़ाइल में हार्ड-कोडेड है। पता चला है कि आप .bat फ़ाइलों के साथ बेला करने की आवश्यकता नहीं है।
अपने शेल को कैसे बदलना है, इसकी खोज करते हुए, मुझे mkpasswd के बारे में कुछ सलाह मिली
मैंने इसे मिश्रण में जोड़ा।
मानव-पृष्ठ ने कहा:
SYNOPSIS mkpasswd [OPTIONS]... OPTIONS Don't use this command to generate a local /etc/passwd file, unless you really need one. See the Cygwin User's Guide for more information. -c,--current Print current user. DESCRIPTION The mkpasswd program can be used to create a /etc/passwd file. Cygwin doesn't need this file, because it reads user information from the Windows account databases, but you can add an /etc/passwd file, for instance if your machine is often dis‐ connected from its domain controller. Note that this information is static, in contrast to the informa‐ tion automatically gathered by Cygwin from the Windows account databases. If you change the user information on your system, you'll need to regenerate the passwd file for it to have the new information. For very simple needs, an entry for the current user can be cre‐ ated by using the option -c.
(मुझे नहीं पता कि रिक्ति इतनी "बंद" क्यों है ...)
मैंने तब निम्न कमांड का उपयोग किया:
mkpasswd -c | sed -e 'sX / bashX / zshX' | टी-ए / आदि / पासवार्ड
अगली बार जब आप साइगविन टर्मिनल खोलेंगे, तो यह सीधे zsh पर जाएगा
और मुझे लगता है कि, आपने जो माँगा है।
मैं सिर्फ bin
अपने विंडोज पथ पर्यावरण चर के लिए cygwin निर्देशिका में निर्देशिका जोड़ने और फिर एक शॉर्टकट बनाने के लिए:
mintty.exe -i /Cygwin-Terminal.ico /bin/zsh --login
या बस डिफ़ॉल्ट cygwin प्रारंभ मेनू शॉर्टकट को उसी में बदलें।
/bin/zsh
इसके बजाय उपयोग करना था zsh
।
the bin directory in the cygwin directory to my Windows Path Environment Variable
मेरे लिए इस बदलाव के बिना काम करता है
i
आवश्यकता नहीं है क्योंकि यह एक लॉगिन शेल होगा और नहीं interactive
।
ढेर अतिप्रवाह पर मेरे जवाब से नकल :
एक पासवार्ड फ़ाइल बनाने के बजाय, जिसे साइगविन 1 के खिलाफ सुझाता है , आप /etc/nsswitch.conf को संपादित कर सकते हैं । निम्न पंक्ति जोड़ें या संपादित करें:
db_shell: / usr / bin / zsh
इस पद्धति का डाउन / अप पक्ष यह है कि, यदि आपके पास कई उपयोगकर्ता हैं, तो यह परिवर्तन उन सभी को प्रभावित करता है। ऊपर / ऊपर की तरफ है कि यह मृत सरल है। एकमात्र पकड़ यह है कि आपको Cygwin को पुनरारंभ करना होगा।
यदि आप इस परिवर्तन के बाद mkpasswd का उपयोग करते हैं, तो यह उन सभी उपयोगकर्ताओं के लिए आपके नए डिफ़ॉल्ट शेल का उपयोग करेगा जिन्हें लॉग ऑन करने की अनुमति है।
1 mkpasswd प्रलेखन यह कहता है:
जब तक आपको वास्तव में एक की आवश्यकता न हो, स्थानीय / etc / passwd फ़ाइल बनाने के लिए इस कमांड का उपयोग न करें। अधिक जानकारी के लिए सिगविन उपयोगकर्ता गाइड देखें।
मैं वास्तव में उपयोगकर्ता के गाइड में कोई ठोस तर्क नहीं पा सकता , एक उल्लेख के अलावा जो आपको / etc / passwd और / etc / group फ़ाइलों को फिर से प्राप्त करना होगा यदि आपके उपयोगकर्ता और समूह बदलते हैं, जो मुझे लगता है कि एक सभ्य पर्याप्त है कारण। मैं कह सकता हूं कि यह प्रक्रिया कुछ हद तक त्रुटि के लिए है।
मान लें कि आप शेट्टी / साइगविन टर्मिनल में उपयोग किए गए शेल को बदलने में रुचि रखते हैं, यह पहले शेल पर्यावरण चर की जांच करता है, फिर (अब कोई नहीं) पासवार्ड फ़ाइल, फिर वापस / बिन / श तक गिर जाता है, जो कि ऐसा लगता है डिफ़ॉल्ट रूप से।
मैं शेल वातावरण चर सेट करने में सक्षम था Windows में करने के लिए /usr/bin/zsh
और यह किसी भी अन्य बदलाव के बिना काम किया। मैंने इसे अपने विंडोज उपयोगकर्ता के लिए बदल दिया है, न कि विश्व स्तर पर।
परिवेश चर सेट करना संभवतः विंडोज के विभिन्न संस्करणों के लिए भिन्न होता है। अपने विंडोज कंट्रोल पैनल में "पर्यावरण" खोजने की कोशिश करें। मेरे लिए, विंडोज 7 के तहत, यह कंट्रोल पैनल → सिस्टम → एडवांस्ड सिस्टम सेटिंग्स था, जो सिस्टम प्रॉपर्टीज कंट्रोल पैनल / डायलॉग लाता है, फिर एडवांस्ड टैब, फिर एनवायरमेंट वेरिएबल्स बटन, जो एनवायरमेंट वेरिएबल्स डायलॉग लाता है, फिर क्रिएट करता है। SHELL
मूल्य के साथ नामित एक नया उपयोगकर्ता चर /usr/bin/zsh
। फिर उस सब से बाहर वापस आ जाओ और एक नई मिनिट शुरू करो।
बस मैंने सोचा कि मैं इस उत्तर को उस मामले में जोड़ दूंगा जो किसी को भी इसकी तलाश में मदद करता है। यदि आप चेरे का उपयोग करते हैं (जो किसी भी फ़ोल्डर के राइट-क्लिक संदर्भ मेनू में "बैश प्रॉम्प्ट" विकल्प जोड़ता है), तो आप इसे zsh ("Zsh Prompt Here") के साथ सेट कर सकते हैं:
chere -i -t mintty -s zsh