सवाल Zsh की तुलना में बैश की अनूठी विशेषताओं


मैं काफी समय के लिए एक zsh उपयोगकर्ता रहा हूँ (उस tcsh से पहले और उस सीएसएच से पहले)। मैं इसके साथ काफी खुश हूं, लेकिन सोच रहा था कि क्या झटके की कोई आकर्षक विशेषताएं हैं जो zsh में मौजूद नहीं हैं। और इसके विपरीत, वहाँ zsh विशेषताएं हैं जो बाश में मौजूद नहीं हैं। मेरा वर्तमान अनुभव यह है कि बैश बेहतर है:

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

यहां एक धार्मिक लड़ाई शुरू करने की कोशिश नहीं कर रहा है, यही कारण है कि मैं सिर्फ उन सुविधाओं की तलाश कर रहा हूं जो केवल गोले में मौजूद हैं।


63
2018-05-05 20:38


मूल


एक या अन्य व्यक्तिपरक के लिए अद्वितीय विशेषताएं कैसे हैं? मैं ईमानदारी से एक ज्वालामुखी की तलाश नहीं कर रहा हूं और एक या दूसरे की परिचितता को उस खोल को पसंद करने का एक अच्छा कारण है। - Tim


जवाब:


zsh vulcans के लिए है। ;-)

गंभीरता से: बैश 4.0 में पहले कुछ विशेषताएं हैं जो पहले केवल zsh में मिलीं, जैसे ** ग्लोबिंग:

% ls /usr/src/**/Makefile

के बराबर है:

% find /usr/src -name "Makefile"

लेकिन जाहिर है और अधिक शक्तिशाली।

मेरे अनुभव में बैश के प्रोग्राम करने योग्य पूर्णता कम से कम कुछ मामलों के लिए zsh की तुलना में थोड़ा बेहतर प्रदर्शन करती है (उदाहरण के लिए योग्यता के लिए डेबियन पैकेज को पूरा करना)।

बाश है Alt + . अन्दर डालना !$

zsh में सभी चर का विस्तार है, इसलिए आप उदाहरण का उपयोग कर सकते हैं

% rm !$<Tab>

इसके लिए। zsh बैकटिक्स में एक कमांड का विस्तार भी कर सकता है, इसलिए

% cat `echo blubb | sed 's/u/a/'`<Tab>

पैदावार

% cat blabb

मुझे विस्तार करने के लिए यह बहुत उपयोगी लगता है rm *, जैसा कि आप देख सकते हैं कि क्या हटाया जाएगा और हटाए जाने से रोकने के लिए कमांड से एक या दो फ़ाइलों को हटा सकते हैं।

यह भी अच्छा: अन्य आदेशों के लिए आदेशों से आउटपुट का उपयोग करना जो stdin से नहीं पढ़ते हैं लेकिन फ़ाइल नाम की अपेक्षा करते हैं:

% diff <(sort foo) <(sort bar)

यदि मैंने एसएसएच-एजेंट का उपयोग किया है, तो एसएचएच पर रिमोट फाइलनामों को पूरा करने के लिए बैश-पूर्णता पढ़ने से भी समर्थन मिलता है, जो कि zsh पर स्विच करने का एक अच्छा कारण होता है।

Zsh में उपनामों को केवल शुरुआत में ही पूरी लाइन पर काम करने के लिए परिभाषित किया जा सकता है:

% उपनाम- जी ... = "../ .."
% सीडी ...


40
2017-08-09 20:13



बाश में, C-M-e "खोल-विस्तार-रेखा" तक, जो विस्तारित होगा cat `echo blubb | sed 's/u/a/'`  सेवा मेरे cat blabb तथा echo $SHELL सेवा मेरे echo /bin/bash मेरे मामले में। इसके अलावा, C-x * "ग्लोब-विस्तार-शब्द" तक, जो विस्तारित होगा rm *। - Victor


मैं यह इंगित करना चाहता हूं कि बैश डिफ़ॉल्ट रूप से फ्रीबीएसडी, ओपनबीएसडी, या नेटबीएसडी पर स्थापित नहीं है, और यह सोलारिस 10 पर डिफ़ॉल्ट रूप से स्थापित नहीं है (ओपन सोलालिसिस इसे डिफ़ॉल्ट के रूप में है), पिछली बार जब मैंने AIX का उपयोग किया था, और एचपी-यूएक्स सर्वर इसे डिफ़ॉल्ट रूप से स्थापित नहीं किया गया था।

इसके अलावा, OpenSolaris / bin / sh पर बैश नहीं है। यह क्ष। सॉफ़्टवेयर पोर्टर के रूप में मेरे पास सबसे बड़ी समस्याएं हैं जो मानते हैं कि / bin / sh bash है और यह बैश विस्तारित वाक्यविन्यास स्वीकार करेगा। हालांकि यह अधिकांश लिनक्स वितरणों पर मामला प्रतीत होता है, यह कहीं और मामला नहीं है और यह वास्तव में कष्टप्रद है।


16
2018-05-24 00:40



हाँ आप सही है। हां, ये सभी विक्रेता निश्चित रूप से एक अतिरिक्त पैकेज के रूप में बैश स्थापित करना बहुत आसान बनाते हैं। स्क्रिप्ट में / bin / sh purism की आवश्यकता को इंगित करने के लिए +1। - kubanczyk
@kubanczyk: यदि आप मशीनों पर काम कर रहे हैं, तो आपके पास रूट पहुंच नहीं है, तो यह इंस्टॉल करना इतना आसान नहीं हो सकता है, इसलिए मुझे लगता है कि एक्स-इस्टेंस का बिंदु खड़ा है। (मैं सोलारिस बक्से के गुच्छा पर काम करता हूं, और sysadmins सभी ksh junkies हैं। पिछली बार मैंने अपने स्वयं के सॉफ़्टवेयर को संकलित करने की कोशिश की थी कि मैं बिना जीवित रह सकता था (इस मामले में गिट) स्थापित कंपाइलर के साथ कमियां थीं, इसलिए यहां तक ​​कि वह मार्ग मुझे काटा गया था।) - iconoclast


हालांकि मैं एक बैश उपयोगकर्ता हूं, मुझे zsh की विशेषताओं में से एक बहुत अच्छा लगता है: आरपीएस 1।

याद है:

  • पीएस 1: बाएं संरेखित संकेत
  • आरपीएस 1: सही संरेखित संकेत

नमूना:

कुछ उपयोग करते समय

PS1=’%B(%h) %m%#%b ‘
RPS1=’(%20<…<%~)'

आपको बाईं ओर अपना संकेत मिलता है और वर्तमान निर्देशिका दाईं ओर धकेलती है। यह भी गायब हो जाता है जब वर्तमान लाइन बहुत लंबी हो रही है! ऐसा इसलिए है क्योंकि आरपीएस 1 को कम प्राथमिकता देने के लिए zsh पर्याप्त स्मार्ट है।

आप इस उदाहरण का एक स्क्रीनशॉट देख सकते हैं http://imgur.com/OAZhC


12
2017-11-25 13:31





जेएसएच में वर्तनी सुधार है। यदि आप एक पत्र (या अधिक) हैं, तो यह पता लगाएगा कि आपका क्या मतलब है।

इसमें अधिक मजबूत टैब पूर्णता भी है, जो मुझे पसंद है।

Zsh की एक इंटरैक्टिव कॉन्फ़िगरेशन उपयोगिता है जो इसे सेट करने के लिए सेट करती है।

कुछ गति परीक्षणों का कहना है कि zsh तेज है, लेकिन मैंने कोई अंतर नहीं देखा है।


9
2018-05-06 20:05



डैश का एक अलग संस्करण जो केवल इसकी विशेषताओं का एक सबसेट का समर्थन करता है, और स्क्रिप्ट में उपयोग करने के लिए डिज़ाइन किया गया है जो तेजी से चलना चाहिए (उदाहरण के लिए स्टार्टअप वाले) डैश है। - Chucky
zsh यहां तक ​​कि ड्वोरैक कीबोर्ड उपयोग के लिए 'एक अक्षर बंद' त्रुटियों की अनुमति देने के लिए एक सेटिंग भी है। - vgoff


मुझे किसी भी बैश फीचर्स के बारे में पता नहीं है जो zsh का समर्थन नहीं करता है। ज़श के डिज़ाइन लक्ष्य में बैश जोड़ने वाली किसी भी सुविधा का समर्थन करना शामिल है।

मैं अभी भी zsh के बजाय बैश का उपयोग करता हूं। मैं शायद ही कभी आकर्षक सुविधाओं में आ जाता हूं जो zsh समर्थन करता है कि बैश नहीं करता है। वर्षों में zsh के साथ कभी-कभी समस्याएं, या यह कुछ sysetms पर मौजूद नहीं है, इसे संक्रमण करने के लायक नहीं है।

मैं आखिरकार प्रत्येक यूनिक्स सिस्टम पर एक ही खोल का उपयोग कर सकता हूं, यह उन सुविधाओं के लिए तोड़ने लायक नहीं है जिनका मैं कभी भी उपयोग नहीं करूंगा।

ज़श में मौजूद विशेषताएं जो बैश में मौजूद नहीं हैं, वे अधिकतर प्यारे लगती हैं, लेकिन ऐसा नहीं है जो दिन-दर-दिन आधार पर महत्वपूर्ण हों।


6
2018-05-24 00:14





बैश में कई विशेषताएं हैं जो केवल zsh में उपयोग की जाती हैं। आपके पास अभी भी बैश के साथ 'स्मार्ट टैब पूर्णता' हो सकती है, क्योंकि हाल ही में यूबंटू उपयोगकर्ता ने खोज की है।


3
2018-06-11 11:58





प्रक्रिया प्रतिस्थापन और विस्तारित ग्लोबिंग दो विशेषताएं हैं जिन्हें मैं सबसे ज्यादा याद करता हूं। प्रॉम्प्ट सेटिंग्स बहुत अच्छी हैं - जब आप कमांड लाइनों पर जटिल कथन टाइप कर रहे हों तो घोंसले के स्तर को देखकर। Autoloading हर शैल व्यवहार्य में बहुत से कार्यों सहित बनाता है।


1
2018-05-16 12:24



मुझे लगता है कि आप का मतलब है कि आप zsh से उनको याद करेंगे, क्योंकि आपके द्वारा उल्लिखित AFAIK सब कुछ zsh में शामिल है? (लेकिन क्या आप वाकई बैश से अनुपस्थित हैं? इससे मुझे आश्चर्य होगा।) किसी भी दर पर, जो आपके जवाब को स्पष्ट कर देगा, क्योंकि लोग बैश / जेएसएच बाड़ के दोनों किनारों पर जवाब दे रहे हैं। साथ ही, यह उपयोगी होगा यदि आप उदाहरण देंगे कि इनमें से प्रत्येक सुविधा आपके शैल जीवन को कैसे आसान बनाती है। - iconoclast