Cygwin में डिफ़ॉल्ट शेल कैसे बदलें?


29

मैं अपने डिफ़ॉल्ट गोले को bash से zsh में cygwin में बदलने की कोशिश कर रहा हूं।

  1. सामान्य यूनिक्स कमांड chshसाइबरविन पर उपलब्ध नहीं है
  2. Etc / passwd फ़ाइल ऐसा लगता है कि अब इसका प्रयोग cygwin के मौजूदा संस्करणों में नहीं किया गया है।

तो डिफ़ॉल्ट शेल को और कैसे बदला जा सकता है?

जवाबों:


22

जवाब इस बात पर निर्भर करता है कि आप सिगविन की शुरुआत कैसे करते हैं।

यदि आप Cygwin.bat के साथ Cygwin शुरू करते हैं , तो /Cygwin.bat(आमतौर पर C:\cygwin\या C:\cygwin64\) की अंतिम पंक्ति को संशोधित करें ।

यदि आप मिन्टी के साथ साइगविन शुरू करते हैं , तो शेल को एक पैरामीटर के रूप में जोड़ें। mintty /usr/bin/zsh -


2
धन्यवाद, मैं Conemu का उपयोग कर रहा हूं। बदलना पड़ा sh.exeको zsh.exeConemu सेटिंग> स्टार्टअप> कार्य> बैश Cygwin बैश> मेंset CHERE_INVOKING=1 & %ConEmuDrive%\CygWin\bin\sh.exe --login -i
gyaani_guy

@gyaani_guy मैं केवल निष्पादित करने के लिए ConEmu का उपयोग कर रहा हूं CygWin\bin\zsh.exesh.exe --loginबैश लॉन्च करेंगे, आप इसे कैसे बदलेंगे? या फिर इससे कोई फर्क नहीं पड़ता? मुझे लगता है sh.exe --loginकि अनावश्यक रूप shसे पहले निष्पादित किया जा रहा है zsh...
deed02392

@ deed02392 मुझे यकीन नहीं है कि मैं समझ रहा हूँ .. लेकिन मैं जिस सटीक कमांड का उपयोग कर रहा हूँ वह set CHERE_INVOKING=1 & %ConEmuDrive%\CygWin\bin\zsh.exe --login -ihth है
gyaani_guy

@gyaani_guy धन्यवाद, मैं उलझन में था क्योंकि आपकी पहली टिप्पणी में आपको लग रहा था कि आप zsh के साथ शुरू करते हैं sh.exe। अब मुझे एहसास हुआ कि मैंने आपके संदेश को सही ढंग से नहीं पढ़ा है :-)
deed02392

3
मीनट्टी उदाहरण मेरे लिए काफी काम नहीं आया। जब तक मैंने इसे जोड़कर एक लॉगिन शेल नहीं बनाया, तब तक यह समस्या थी -l: mintty.exe -i /Cygwin-Terminal.ico /usr/bin/zsh -l -
मॉर्गन मई

18

यदि आप mintty.exeसीधे प्रारंभ मेनू या डेस्कटॉप से ​​साइगविन टर्मिनल चलाते हैं (जो कि शेट्टी.नेट का शॉर्टकट है), तो आप विंडोज में शेल पर्यावरण चर सेट कर सकते हैं /usr/bin/zsh

विंडोज 7 पर:

  1. विंडोज की दबाएं।
  2. "पर्यावरण" लिखना शुरू करें।
  3. जब यह दिखाई दे, तो "अपने खाते के लिए पर्यावरण चर संपादित करें" चुनें।

बाकी स्व-व्याख्यात्मक होना चाहिए।


5
इसे गंभीरता से अधिक वोटों की जरूरत है। मैंने कभी भी इस दस्तावेज को कहीं भी नहीं देखा है, और यह स्पष्ट रूप से अभीष्ट विधि है।
केविन मिल्स

1
जो लोग उपयुक्त पैनल खोजने के लिए खोज पर भरोसा नहीं करना चाहते हैं, प्रारंभ मेनू पर राइट-क्लिक करें और सिस्टम नियंत्रण कक्ष लॉन्च करने के लिए "सिस्टम" का चयन करें। फिर बाईं ओर के कॉलम से "उन्नत सिस्टम सेटिंग्स" पर क्लिक करें। "सिस्टम गुण" विंडो पर जो पॉप अप करता है, पर्यावरण चर संपादक लॉन्च करने के लिए "पर्यावरण चर ..." पर क्लिक करें।
डेविड सी।

पूरी तरह से काम किया!
bkunzi01

16

ढेर अतिप्रवाह पर मेरे जवाब से नकल :


एक पासवार्ड फ़ाइल बनाने के बजाय, जिसे साइगविन 1 के खिलाफ सुझाता है , आप /etc/nsswitch.conf को संपादित कर सकते हैं । निम्न पंक्ति जोड़ें या संपादित करें:

db_shell: / usr / bin / मछली

इस पद्धति का डाउन / अप पक्ष यह है कि, यदि आपके पास कई उपयोगकर्ता हैं, तो यह परिवर्तन उन सभी को प्रभावित करता है। ऊपर / ऊपर की तरफ है कि यह मृत सरल है। एकमात्र पकड़ यह है कि आपको Cygwin को पुनरारंभ करना होगा।

यदि आप इस परिवर्तन के बाद mkpasswd का उपयोग करते हैं, तो यह उन सभी उपयोगकर्ताओं के लिए आपके नए डिफ़ॉल्ट शेल का उपयोग करेगा जिन्हें लॉग ऑन करने की अनुमति है।


1 mkpasswd प्रलेखन यह कहता है:

जब तक आपको वास्तव में एक की आवश्यकता न हो, स्थानीय / etc / passwd फ़ाइल बनाने के लिए इस कमांड का उपयोग न करें। अधिक जानकारी के लिए सिगविन उपयोगकर्ता गाइड देखें।

मैं वास्तव में उपयोगकर्ता के गाइड में कोई ठोस तर्क नहीं पा सकता , एक उल्लेख के अलावा जो आपको / etc / passwd और / etc / group फ़ाइलों को फिर से प्राप्त करना होगा यदि आपके उपयोगकर्ता और समूह बदलते हैं, जो मुझे लगता है कि एक सभ्य पर्याप्त है कारण। मैं कह सकता हूं कि यह प्रक्रिया कुछ हद तक त्रुटि के लिए है।


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