विंडोज के लिए लिनक्स सुसेबसिस्टम के लिए डिफ़ॉल्ट शेल कैसे बदलें


10

मैंने विंडोज 10 के लिए लिनक्स सबसिस्टम स्थापित किया है। यह ठीक काम करता है, लेकिन मैं सबसिस्टम के लिए डिफ़ॉल्ट शेल वातावरण को बदलना चाहता हूं।

मैंने किया sudo apt-get install fishऔर फिर chsh -s /usr/bin/fish। लेकिन जब मैं bash.exeविंडोज में शुरू करता हूं , तो यह हमेशा बैश शुरू होता है (मुझे लगता है कि यह पूर्वानुमान है)।

क्या कोई इस व्यवहार को बदलने के तर्क जानता है?


जब आप शुरू bash.exeकरते हैं तो आप स्पष्ट रूप से बैश शुरू करते हैं । मैं विंडोज 10 में लिनक्स सबसिस्टम से परिचित नहीं हूं, लेकिन मैं स्पष्ट रूप से एक विशिष्ट शेल को शुरू किए बिना "लिनक्स" शेल शुरू करने के लिए किसी तरह से होने की उम्मीद करूंगा।
बजे एक CVn

क्या आपने अपने bashrc या bashprofile के बदसूरत संस्करण को मछली के लिए इंटरएक्टिव बैश कॉल को फिर से रूट करने की कोशिश की? isatty && exec fishजब आप वास्तविक समाधानों से पूरी तरह से बाहर हो जाते हैं, तो इस तरह एक पंक्ति को जोड़ने का प्रयास किया जा सकता है।
ए। लोइसो

जवाबों:


6

लिनक्स सबसिस्टम को सिस्टम निर्देशिका में रहने वाले bash.exe के माध्यम से शुरू करने के बाद आप डिफ़ॉल्ट शेल को प्रति से बदल नहीं सकते।

हालाँकि, आप उस तरह का एक नया शॉर्टकट बना सकते हैं जो पहले से ही बैश के लिए मौजूद है और इसे कमांड चलाता है

%systemroot%\system32\bash -c /usr/bin/fish

इस तरह से आप तुरंत मछली पकड़ने चलेंगे।


1
मैं %systemroot%\system32\bash.exe ~ -c /bin/zshअपने होम डायरेक्टरी में ZSH को ओपन करता था।
डेविड पेर्सन

वैकल्पिक रूप से, %userprofile%अपने घर निर्देशिका में शेल शुरू करने के लिए शॉर्टकट में "स्टार्ट इन" फ़ील्ड सेट करें ।
dOxxx

@konqui यह किसी अन्य शेल को नहीं तोड़ता है। इसे शुरू करने के लिए यह एक नया शॉर्टकट है। आपका बैश ठीक काम करेगा
सामी कुहोमेन

@SamiKuhmonen एक नए शॉर्टकट के बारे में कुछ भी नहीं कहा गया था - मैंने इसे सही किया अब मैं इस उत्तर के साथ जीवन जी सकता हूं।
कोनक्वी

9

फॉल क्रिएटर्स अपडेट के बाद से आप chshडिफॉल्ट शेल सेट करने के लिए उपयोग कर सकते हैं । यह अभी भी आप उपयोग कर WSL चला रहे हैं काम नहीं करता है bash.exeआदेश, लेकिन उनका कार्य आप के साथ WSL चल रहा है, तो ubuntu.exeआदेश।

इसके अलावा, फॉल क्रिएटर्स अपडेट के बाद से हमें विंडोज स्टोर से WSL OS इंस्टॉल करना चाहिए ।

zshडिफ़ॉल्ट शेल के रूप में सेट करें :

chsh -s /bin/zsh

उसके बाद ubuntu.exeकमांड प्रॉम्प्ट से चलाएँ (या पुनरारंभ करें) ।


5

इसमें बैश खोलें, चलाएं nano ~/.bashrcऔर पेस्ट करें:

if [[ -t 1 && -x /usr/bin/zsh ]]; then
    exec /usr/bin/zsh
fi

बस शेल को fishया जो भी आप चाहते हैं उसे बदलें । -xअगर आप कभी भी फिर से स्थापित बैश की जांच महत्वपूर्ण है - आप के बाद एक ताजा स्थापित क्योंकि इसे खोलने के लिए सक्षम नहीं होगा execआदेश विफल हो जाएगा और उसके बाद बैश बस बंद कर देता है।

यदि ऐसा होता है, तो अपनी .bashrcफ़ाइल यहां हटाएं / नाम बदलें :

C:\Users\<USERNAME>\AppData\Local\lxss\home\<USERNAME>\.bashrc

-tमैं विश्वास है कि जांच करता है कि stdout खुला है। यह निश्चित नहीं है कि यह महत्वपूर्ण क्यों है, मैंने इसे इस लेख से कॉपी किया है ।

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