OSX पर zsh से bash पर स्विच करना, और फिर से वापस आना?


193

तो Im रेल में विकसित करने के लिए सीखने, और zsh की शक्ति की खोज की है। हालांकि, मेरे कुछ अन्य कार्यों के लिए, मैं सामान्य बैश का उपयोग करना चाहता हूं। हालांकि वे समान हैं, मैं बस कुछ स्थितियों में बैश से बाहर निकलने के साथ सहज महसूस करता हूं। मैं आगे और पीछे कैसे स्विच करूं, या zsh को चालू और बंद करूं? धन्यवाद!

जवाबों:


379

आप execअपने वर्तमान शेल को नए शेल से बदलने के लिए उपयोग कर सकते हैं :

पर स्विच करें bash:

exec bash

पर स्विच करें zsh:

exec zsh

यह नई टर्मिनल विंडो या कुछ भी प्रभावित नहीं करेगा, लेकिन यह सुविधाजनक है।


1
आपका स्वागत है! यदि आप इस उत्तर से खुश हैं, तो कृपया उत्तर के बाईं ओर चेकमार्क की जाँच करके इसे स्वीकार करने के लिए कुछ समय दें। धन्यवाद!
लार्क्स २६'१२ को २२:२६

1
या, बस zsh आह्वान करें, और जब आप exitबैश करने के लिए वापस आए। यह अनावश्यक और अवांछनीय लगता है।
क्रिस पेज

सभी इस बात पर निर्भर करते हैं कि जब आप बाहर निकलते हैं तो आप अपने टर्मिनल विंडो से क्या उम्मीद करते हैं। मुझे अपने आप को अनावश्यक और अवांछनीय शुरू करना लगता है।
लार्क्स

2
आप डिफ़ॉल्ट कैसे बदलते हैं? इसके अलावा, जब मैं zsh में "bash निष्पादित करता हूं", तो यह मेरे bash_profile को स्रोत नहीं करता है।
कालेह

1
ऐसे समय होते हैं जब मैं zsh का उपयोग करना चाहता हूं और अन्य बार जब यह हस्तक्षेप करता है कि मैं क्या करना चाहता हूं। डिफ़ॉल्ट को आगे और पीछे सेट करना एक बुरा विचार है इसलिए यह सही समाधान है !!! प्रशंसा !!
बॉब रॉबर्ट्स

126

आप chsh -s /bin/bashबैश को डिफ़ॉल्ट के रूप में सेट करने की कोशिश कर सकते हैं , या chsh -s /bin/zshzsh को डिफ़ॉल्ट के रूप में सेट करने के लिए।


54

मैं zsh के बीच स्विच करता हूं और कुछ हद तक टकराता हूं। थोड़ी देर के लिए, मुझे हर स्विच को अपने bash_profile स्रोत करना पड़ता था। तब मुझे पता चला कि आप (आमतौर पर) कर सकते हैं

exec bash --login

या केवल

exec bash -l

1
धन्यवाद फिलिप्स, मैंने थॉटबोट / लैपटॉप स्थापित किया है और यह मेरे सभी कॉन्फ़िगरेशन को गड़बड़ कर रहा है। आपकी टिप मेरे बैश वातावरण को वापस लाने में मदद करती है।
सेराल्टो

1
उपयोगी टोपी होगी जो आपने लिखा है - "--login" किसके लिए है?
इवोक्स

Make bash act as if it had been invoked as a login shell (see INVOCATION below). स्रोत
lony

16

अगर यह सिर्फ एक अस्थायी स्विच है

आप ऊपर बताए अनुसार निष्पादन का उपयोग कर सकते हैं, लेकिन स्थायी समाधान के लिए।

आप chsh -s / bin / bash ( bash में स्विच करने के लिए) और chsh -s / bin / zsh ( zsh पर स्विच करने के लिए) का उपयोग कर सकते हैं


12

बैश के लिए, प्रयास करें

chsh -s $(which bash)

Zsh के लिए, प्रयास करें

chsh -s $(which zsh)

6

zsh में एक अंतर्निहित कमांड है emulateजो उचित विकल्पों को सेट करके विभिन्न गोले का अनुकरण कर सकता है, हालांकि csh को कभी भी पूरी तरह से अनुकरण नहीं किया जाएगा।

emulate bash
perform commands
emulate -R zsh

-R ध्वज उस शेल के लिए उनके डिफ़ॉल्ट मानों के सभी विकल्पों को पुनर्स्थापित करता है।

देखें: zsh मैनुअल


1
हालांकि यह स्पष्ट नहीं है कि यह किस संस्करण का बैश होगा, क्या यह बैश 4.x का अनुकरण करेगा? या 5.x?
एडगर अरौटियूनियन

2

आपको बस bashbash में स्विच करने के लिए टर्मिनल में टाइप करने में सक्षम होना चाहिए , और फिर zshzsh पर स्विच करने के लिए टाइप करना होगा। मेरे लिए कम से कम काम करता है।


यह और भी सरल है।
andromeda

2
यह काम करता है, लेकिन हर बार जब आप टाइप करते हैं zshया bashआप एक सब-शेल (वर्तमान शेल के तहत सबप्रोसेस) में जा रहे हैं। शीर्ष-सबसे शेल पर लौटने के लिए आपको कई बार बाहर निकलने की आवश्यकता होगी।
रिचवेल

0

मैक ओएस कैटालिना में डिफॉल्ट इंटरेक्टिव शेल zsh है। बैश से ज़श को शेल में बदलने के लिए:

chsh -s /bin/zsh

फिर आपको अपना मैक पासवर्ड दर्ज करना होगा। टर्मिनल से बाहर निकलें और इसे फिर से खोलें। यह जांचने के लिए कि क्या यह सफलतापूर्वक ssh में बदल गया है, निम्नलिखित कमांड जारी करें।

echo $SHELL

यदि परिणाम / बिन / zsh है, तो आपका कार्य पूरा हो गया है।

इसे वापस बैश में बदलने के लिए, टर्मिनल पर निम्न कमांड जारी करें।

chsh -s /bin/bash

इसे फिर से उपयोग करके सत्यापित करें echo $SHELL। फिर परिणाम / बिन / बैश होना चाहिए।


0

आप बस टाइप कर सकते हैं bashया यदि आप हमेशा बैश का उपयोग करना चाहते हैं:

"iTerm2" पर

  • वरीयताओं पर जाएं> प्रोफाइल> कमांड
  • ड्रॉपडाउन से "कमांड" चुनें
  • प्रकार bash

ITerm को बंद करके परीक्षण करें और इसे फिर से खोलें


-5

आप आसानी से कमांड "अलविदा" का उपयोग करके बैश पर वापस जा सकते हैं


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