बैश या ज़श, क्या अंतर है, एक या दूसरे का उपयोग क्यों करें? [डुप्लिकेट]


23

तो, सवाल बहुत ज्यादा यह सब कहते हैं। मैं हिम तेंदुए पर हूं, और मैं बहुत सारे वेब विकास करता हूं, विशेष रूप से रेल 3 में जो कंसोल का भारी उपयोग करता है।

मैंने कुछ उल्लेखनीय ब्लॉगर्स आदि को बश पर अपनी पसंद के रूप में ज़श का उल्लेख किया है, लेकिन मुझे नहीं पता कि इससे क्या फर्क पड़ेगा।

क्या कोई मुझे इस बात की तुलना कर सकता है कि क्या अंतर है और क्या कोई एक विकल्प या दूसरे को पसंद कर सकता है?



1
कि मदद करता है, 2016 लेख हैं: stackabuse.com/zsh-vs-bash
कोयूर

यह प्रश्न फिर से प्रासंगिक हो गया है क्योंकि सेब का स्विच zsh
amar

जवाबों:


16

यह Zsh से है :

2.5: बैश के साथ समानताएं

बॉर्न-अगेन शेल, बैश, एक और बढ़ाया बॉर्न-जैसा शेल है; सर्वाधिक स्पष्ट
zsh से अंतर यह है कि यह कोर्न शेल का अनुकरण करने का प्रयास नहीं करता है। चूंकि दोनों
गोले सक्रिय विकास के अधीन हैं यह संभवतः बहुत विशिष्ट होने के लिए समझदार नहीं है 
यहाँ। मोटे तौर पर, बैश ने मानकों के अनुपालन (यानी POSIX) के लिए अधिक ध्यान दिया है
लंबे समय तक, और अब तक अधिक एब्सट्रैक्ट इंटरैक्टिव सुविधाओं (प्रोग्राम करने योग्य) से बचा है 
पूरा होने, आदि) कि zsh है।

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

Zsh में स्वतः पूर्णता क्षमता अच्छी है, लेकिन मैं ऐसे मामलों को खोजता रहा, जहां यह नहीं पता था कि मुझे क्या चाहिए। यह कई साल पहले था, इसलिए तब से इसमें सुधार हो सकता है।

मैंने पाया है कि set -o viबैश में "vi-mode" ( ) को सक्षम करना सामान्य रूप से यह एक बहुत अच्छा कमांड-लाइन वातावरण बनाता है, इसलिए मैं अपनी .bashrcफ़ाइल में तुरंत ऐसा करता हूं ।

शेल स्क्रिप्ट लिखते समय मैं कभी भी बाश या zsh में प्रोग्राम नहीं करता हूं - मैं श ( /bin/sh) का उपयोग करके प्रोग्राम करता हूं , क्योंकि यह सबसे कम सामान्य भाजक है और कम से कम संगतता मुद्दों की संभावना है। यह सिर्फ एक पुरानी आदत है जिसने मुझे अच्छी तरह से खड़ा किया है।


2
एक अंतर यह है कि वाइल्डकार्ड वर्ण अलग व्यवहार करते हैं। उदाहरण के लिए "vi" नामक फाइलों के सभी उदाहरणों को खोजने के लिए कमांड के साथ बैश का उपयोग कर सकते हैं locate */vi। उसी कमांड के लिए zsh का उपयोग करना है zsh: no matches found: */vi। खोज कार्य को zsh में करने के लिए, खोज क्वेरी को जैसे उद्धरणों से घेरना पड़ता है locate "*/vi"
प्रो बैकअप

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