लिनक्स पर बैश मानक क्यों है?


19

हाल के लिनक्स वितरण में डिफ़ॉल्ट शेल के रूप में बैश शामिल हैं, हालांकि अन्य (यकीनन) बेहतर शेल उपलब्ध हैं।

मैं यह समझने की कोशिश कर रहा हूं कि क्या यह कुछ ऐतिहासिक बचे हुए हैं जो कोई भी बदलना नहीं चाहता है, या क्या कुछ अच्छे कारण हैं जो पहली पसंद को कोसते हैं?


19
अधिकांश कंप्यूटर MS Windows स्थापित के साथ बेचे जा रहे हैं, हालाँकि अन्य, यकीनन बेहतर OS उपलब्ध हैं।
चेरोबा

बैश सरल है। यह आमतौर पर वह सब कुछ कर सकता है जो उपयोगकर्ता इसे करना चाहता है। आप इसे आसानी से बदल सकते हैं। यह डिफ़ॉल्ट रूप से स्कैश करने के लिए मजेदार नहीं होगा।
cnd

4
बैश UNIX मानक का OSS कार्यान्वयन है /bin/sh, जो 'सामान्य' UNIX-es पर डिफ़ॉल्ट शेल है ...
Jan Marek

मैं इस एक विकी लिंक पता लेकिन यह गहराई में अपने प्रश्न, क्या एक खोल अन्य की तुलना में है उत्तर देता en.wikipedia.org/wiki/Unix_shell
Whoami

6
कृपया (यकीनन) बेहतर तरीके से परिभाषित करें । मुझे लगता bashहै कि यह सबसे अच्छा खोल है क्योंकि मैं इसे अच्छी तरह से जानता हूं और यह हर जगह है, क्या मुझे जो कुछ भी चाहिए उसे आसानी से और अपेक्षाकृत आसानी से किया जा सकता है, आसानी से पढ़ने योग्य है, और लोगों द्वारा कुछ भी समझा जा सकता है बिना बश स्क्रिप्ट बनाने के लिए। आपको शेल से और क्या चाहिए? यदि आप बहुत सारी प्रोग्रामिंग सुविधाएँ चाहते हैं, तो आप गलत तरीके से शेल का उपयोग कर रहे हैं।
nicerobot

जवाबों:


18

संक्षिप्त उत्तर इसलिए है क्योंकि linux वास्तव में GNU / Linux है। केवल कर्नेल ही लिनक्स है लेकिन यूनिक्स जैसे पर्यावरण प्रदान करने वाली उपयोगिताओं का आधार संग्रह GNU द्वारा प्रदान किया गया है और GNU शेल bash है
जैसा कि मैंने कहा, यह संक्षिप्त उत्तर है;)

कुछ अतिरिक्त टिप्पणी जोड़ने के लिए संपादित ...
मुझे यह कहकर उपसर्ग दें कि मैं यूनिक्स इतिहासकार नहीं हूं, इसलिए मैं केवल IMHO उत्तर दे सकता हूं

कुछ बिंदु, सबसे पहले बैश शेल के किचन सिंक होते हैं, जैसा कि संपादकों को ईमैक्स होता है।
जिस समय बैश को छोड़ा गया उस समय कोई मुफ्त ksh कार्यान्वयन नहीं थे, tcsh एक नि: शुल्क csh प्रतिस्थापन था, लेकिन Stallman ने शेल प्रोग्रामिंग के लिए csh के खिलाफ एक शेख़ी की थी।
इंटरएक्टिव शेल बैश के रूप में उत्कृष्ट इतिहास / कमांड रिकॉल था, साथ ही सत्र से सत्र तक इतिहास की बचत के साथ। यह शेल प्रोग्रामिंग के लिए श, बीएचएस, केएचएस के प्रतिस्थापन में एक गिरावट थी और एक सभ्य इंटरैक्टिव शेल के लिए बनाया गया था।
एक स्नोबॉल डाउनहिल रोलिंग की तरह, बैश ने गति और आकार प्राप्त किया है।

हां, दर्जनों अन्य गोले हैं; गोले जो व्यक्तिगत उद्देश्य या स्वाद के लिए बेहतर अनुकूल हैं, लेकिन शेल बैश के चारों ओर एक एकल के लिए एक अच्छा काम करता है और 20 वर्षों से इस पर बहुत सारी आँखें हैं।


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

लघु और सरल उत्तर के लिए +1 और अच्छा एक @bdowning :-)
निखिल मुल्ले

2
@ मिलनबुआकोव बैश को स्थापित किया जाना चाहिए क्योंकि बहुत सी स्क्रिप्ट हैं जो बैश-विशिष्ट सुविधाओं का उपयोग करती हैं। एक बार जब आप उस धारणा से शुरू करते हैं, तो आपको अतिरिक्त गोले का औचित्य साबित करना होगा। बूट समय को कम करने के लिए डैश को उबंटू जैसे डिस्टोस में शामिल किया गया। यह देखते हुए कि बैश एक इंटरैक्टिव शेल के रूप में "काफी अच्छा" है, किसी अन्य शेल ने अभी तक डिफ़ॉल्ट रूप से लोडआउट का हिस्सा होने के लिए एक मजबूत पर्याप्त तर्क नहीं दिया है।
ssokolow

12

बैश के कुछ संभावित प्रतियोगी हैं:

  • Zsh में अधिक उन्नत इंटरैक्टिव सुविधाएं हैं, लेकिन जब यह स्क्रिप्टिंग की बात आती है, तो कुछ विचित्रता (कम अब के दिनों में वापस आती है)। 1990 के दशक के मध्य में जब लिनक्स अपनी प्रारंभिक अवस्था में था, तब zsh लगभग अज्ञात था।
  • Ksh के बाद से 1980 के मध्य वाणिज्यिक unices पर वास्तविक मानक था, लेकिन यह 2000 तक मालिकाना सॉफ्टवेयर था, इसलिए नहीं लिनक्स पर एक विकल्प। इसके अलावा, ksh में बैश की तुलना में सबपर कमांड लाइन संस्करण क्षमताएं थीं।
  • Pdksh , ksh का एक नि: शुल्क क्लोन है, एक विकल्प होगा, लेकिन यह अच्छी तरह से ज्ञात नहीं था और इसमें कमांड कमांड की कमजोर क्षमता थी। (Pdksh अब एक बहुत सक्रिय परियोजना नहीं है, भले ही यह अभी भी कुछ BSDs में उपयोग किया जाता है, अब यह ATTsh मुक्त है।)
  • कुछ वितरण ऐश संस्करण को स्थापित करते हैं /bin/sh। ऐश (जिसका अर्थ है कि राख के गोले के ढीले परिवार में से कोई भी) छोटे और तेज होने के लिए डिज़ाइन किया गया है, जिसमें कोई इंटरएक्टिव विशेषताएं नहीं हैं (यह केवल संपादन स्क्रिप्ट के लिए है)। राख का पुनरुद्धार अपेक्षाकृत हाल ही में हुआ है; 1990 के दशक में मौजूदा वेरिएंट में बहुत सारी विशेषताओं का अभाव था।
  • Tcsh सबसे उन्नत इंटरैक्टिव खोल जब तक zsh साथ आया था था, लेकिन यह और श के साथ असंगत है तो पटकथा के साथ अच्छा नहीं

इसके अलावा बैश आधिकारिक GNU शेल है, और लिनक्स सिस्टम वास्तव में GNU / लिनक्स हैं : कई कोर प्रोग्राम GNU से आते हैं, भले ही सबसे अच्छा ज्ञात हिस्सा, लिनक्स कर्नेल, न हो। जिस समय यह डी फैक्टो मानक बन गया, उस समय तक बैश अच्छी तरह से जाना जाता था, एक आधिकारिक स्थिति थी, और सुविधाओं का एक सभ्य सेट था।


जैसा कि मैं समझता हूं, पोसिक्स मानक बॉर्न शेल के लिए / बिन / श में आवश्यक सुविधाओं को निर्दिष्ट करता है, और अधिकांश लिनक्स वितरण बॉर्न शेल का उपयोग करने के लिए लिखी गई शेल स्क्रिप्ट पर निर्भर करते हैं। BASH बॉर्न शेल के वर्धित संस्करण के आधार पर है, और / bin / sh वास्तव में / bin / bash का लिंक है, कि जब निष्पादित बॉर्न शेल सुविधाओं के साथ चलता है।
bgvaughan

@bgugughan कुछ डिस्ट्रीब्यूशन शिप बाश करते हैं /bin/sh, अन्य शिप एश। उदाहरण के लिए Ubuntu के /bin/shकिया गया है dash(राख के कांटा डेबियन द्वारा बनाए रखा) थोड़ी देर के लिए। बैश में अधिक विशेषताएं हैं, राख छोटी और तेज है। दोनों POSIX आज्ञाकारी हैं (या व्यवहार में कम से कम पर्याप्त आज्ञाकारी)।
गिल्स एसओ-

4

सरलतम उत्तर? क्योंकि कुछ "डिफ़ॉल्ट" होना है। सबसे समझदार डिफ़ॉल्ट वह है जो अधिकांश उपयोगकर्ता पहले से ही सहज हैं। उस बिंदु पर बैश एक अच्छा विकल्प है। प्रत्येक व्यक्ति को यह चुनने की स्वतंत्रता है कि उनकी दुनिया में कौन सबसे अच्छा है। अधिकांश डिफ़ॉल्ट का उपयोग करने का चयन करेगा यदि उसने हमेशा वही किया है जिसकी उन्हें आवश्यकता है।


3

डॉस से आ रहा है (डॉसकी स्थापित के साथ) मैं वास्तव में केवल कर्सर को ऊपर / नीचे ले जाकर अंतिम कमांड को याद करने की सुविधा से चूक गया। BASH IMO पहला शेल था जिसने इसे * निक्स पर लागू किया।

तो शायद उस पीढ़ी के अधिकांश लोग बैश को पसंद करते थे।


1990 के दशक तक एक कंप्यूटर का उपयोग नहीं करने के दौरान, मैं इस धारणा के तहत था कि tcshशेल इतिहास के माध्यम से आगे और पीछे नेविगेट करने के लिए तीर कुंजियों का उपयोग करने वाला पहला * निक्स खोल था।
एंथनी जी -

1

अन्य सभी उत्तर महान हैं, लेकिन एक व्यावहारिक दृष्टिकोण से: यदि मैं एक अपरिचित प्रणाली के सामने बैठ जाता हूं (या इसे दूरस्थ रूप से एक्सेस करता हूं) और मुझे कुछ करने की आवश्यकता है, तो मैं सभी लेकिन सबसे पुरानी प्रणालियों पर उपलब्ध होने वाले बैश पर भरोसा कर सकता हूं। मैं सिर्फ आगे बढ़ सकता हूं और चीजें हासिल कर सकता हूं।

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

इसके अलावा, जब मैं एक शेल स्क्रिप्ट लिखता हूं जो आम तौर पर उपयोगी हो सकती है, तो मैं इसे बैश के लिए लिखता हूं और मुझे पता है कि अगर मैं सिस्टम पर निर्भर चीजों को नहीं करने के लिए बहुत सावधान हूं, तो यह लगभग कहीं भी चलेगा।


1

जड़ता।

जब लिनक्स (GNU / Linux, यदि आप चाहें तो) सिस्टम दिखाई देना शुरू होने पर बैश सबसे आसानी से उपलब्ध मुफ्त शेल हुआ। तथ्य यह है कि यह GNU परियोजना से चोट नहीं पहुंचाई है।

क्यों कि यह अभी भी डिफ़ॉल्ट शेल है, इसे बदलने के लिए एक अच्छा पर्याप्त कारण कभी नहीं रहा। यहां तक ​​कि अगर कुछ अन्य शेल बेहतर हैं, तो अलग-अलग वितरणों में एक ही डिफ़ॉल्ट लॉगिन शेल होने के फायदे हैं, और हर किसी को (Debian, Red Hat, Suse, इत्यादि) को किसी अन्य चीज़ पर स्विच करने के लिए सहमत होना मुश्किल होगा।

और आखिरकार, यह केवल एक डिफ़ॉल्ट है। कोई भी उपयोगकर्ता chshअपने लॉगिन शेल को बदलने के लिए उपयोग कर सकता है । सभी के लिए डिफ़ॉल्ट बदलने की कोई आवश्यकता नहीं है।

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