बॉर्न शेल
![]() Bourne shell interaction on Version 7 Unix | |
Original author(s) | Stephen Bourne |
---|---|
Developer(s) | Bell Telephone Laboratories |
Initial release | 1979 |
Operating system | Unix |
Type | Unix shell |
License | [under discussion] |
बॉर्न शेल (sh
) कंप्यूटर ऑपरेटिंग सिस्टम के लिए एक शेल कमांड-लाइन दुभाषिया है।
बॉर्न शेल संस्करण 7 यूनिक्स के लिए डिफ़ॉल्ट शेल था। यूनिक्स जैसी प्रणालियों में /bin/sh
प्रसारित रहता है - जो बॉर्न शेल होगा, या एक संगत शेल के लिए एक प्रतीकात्मक लिंक या हार्ड लिंक होगा - तब भी जब अधिकांश उपयोगकर्ताओं द्वारा अन्य शेल का उपयोग किया जाता है।
बेल लैब्स में स्टीफन आर. बॉर्न द्वारा विकसित, यह थॉम्पसन शैल का प्रतिस्थापन था, जिसकी निष्पादन योग्य फ़ाइल का नाम समान था-sh
. इसे 1979 में कॉलेजों और विश्वविद्यालयों को वितरित संस्करण 7 यूनिक्स रिलीज़ में प्रसारित किया गया था। चूँकि इसका उपयोग एक इंटरैक्टिव कमांड दुभाषिया के रूप में किया जाता है, इसका उद्देश्य एक स्क्रिप्टिंग भाषा के रूप में भी था और इसमें अधिकांश विशेषताएं सम्मिलित हैं जिन्हें सामान्यतः संरचित प्रोग्राम बनाने के लिए माना जाता है।
इसे ब्रायन कर्निघन और रोब पाइक द्वारा यूनिक्स प्रोग्रामिंग एनवायरनमेंट के प्रकाशन के साथ लोकप्रियता मिली - पहली व्यावसायिक रूप से प्रकाशित पुस्तक जिसने शेल को एक प्रोग्रामिंग भाषा के रूप में ट्यूटोरियल के रूप में प्रस्तुत किया गया था।
इतिहास
उत्पत्ति
बॉर्न शेल पर काम प्रारंभ में 1976 में प्रारंभ हुआ था।[1] पहली बार संस्करण 7 यूनिक्स में प्रदर्शित हो रहा है,[2] बॉर्न शेल ने पीडब्लूबी शेल का स्थान ले लिया था।
शेल के कुछ प्राथमिक लक्ष्य थे:[3]
- ओपन स्क्रिप्ट को फ़िल्टर (सॉफ़्टवेयर) के रूप में उपयोग करने की अनुमति देना।
- नियंत्रण प्रवाह और वेरिएबल (कंप्यूटर विज्ञान) सहित प्रोग्रामयोग्यता प्रदान करना।
- सभी इनपुट/आउटपुट फ़ाइल डिस्क्रिप्टर पर नियंत्रण।
- स्क्रिप्ट के अंदर यूनिक्स सिग्नल पर नियंत्रण।
- शेल स्क्रिप्ट की व्याख्या करते समय स्ट्रिंग की लंबाई पर कोई सीमा नहीं।
- स्ट्रिंग उद्धरण तंत्र को तर्कसंगत और सामान्यीकृत करें।
- एनवायरनमेंट चर. इसने संदर्भ को स्टार्टअप पर स्थापित करने की अनुमति दी और शेल स्क्रिप्ट को स्पष्ट पैरामीटर (कंप्यूटर विज्ञान) का उपयोग किए बिना संदर्भ को उप स्क्रिप्ट (प्रक्रिया (कंप्यूटिंग)) में पारित करने का एक विधि प्रदान किया गया था।
मूल संस्करण की विशेषताएं
संस्करण 7 यूनिक्स बॉर्न शेल की विशेषताओं में सम्मिलित हैं:
- स्क्रिप्ट को उनके फ़ाइल नाम का उपयोग करके कमांड के रूप में प्रयुक्त किया जा सकता है
- इंटरैक्टिव या गैर-इंटरैक्टिव रूप से उपयोग किया जा सकता है
- कमांड के सिंक्रोनस और एसिंक्रोनस दोनों निष्पादन की अनुमति देता है
- इनपुट और आउटपुट पुनर्निर्देशन और पाइपलाइनों का समर्थन करता है
- अंतर्निहित कमांड का एक सेट प्रदान करता है
- प्रवाह नियंत्रण निर्माण और उद्धरण सुविधाएं प्रदान करता है।
- प्रकारहीन चर
- स्थानीय और वैश्विक परिवर्तनीय सीमा प्रदान करता है
- स्क्रिप्ट को निष्पादन से पहले संकलन की आवश्यकता नहीं होती है
- इसमें गोटो सुविधा नहीं है, इसलिए कोड पुनर्गठन आवश्यक हो सकता है
- बैककोट्स का उपयोग करके कमांड प्रतिस्थापन:
`command`
. - यहां दस्तावेज़ों का उपयोग किया जा रहा है
<<
किसी स्क्रिप्ट के अंदर इनपुट टेक्स्ट के एक ब्लॉक को एम्बेड करना। - यहां एक स्क्रिप्ट के अंदर इनपुट टेक्स्ट के ब्लॉक को एम्बेड करने के लिए << का उपयोग करने वाले दस्तावेज़ हैं।
for ~ do ~ done
लूप्स, विशेष रूप से का उपयोग$*
तर्कों पर लूप करना, साथ हीfor ~ in ~ do ~ done
सूचियों पर पुनरावृत्ति के लिए लूप का उपयोग किय आजाता है ।case ~ in ~ esac
चयन तंत्र, जिसका मुख्य उद्देश्य तर्क विश्लेषण में सहायता करना है।sh
कीवर्ड पैरामीटर और निर्यात योग्य चर का उपयोग करके एनवायरनमेंट चर के लिए समर्थन प्रदान किया गया।- इसमें इनपुट और आउटपुट को नियंत्रित करने और इसकी नियमित अभिव्यक्ति सुविधाओं के लिए शसक्त प्रावधान सम्मिलित हैं।
बॉर्न शेल त्रुटि संदेशों के लिए फ़ाइल डिस्क्रिप्टर2>
का उपयोग करने की परंपरा को प्रदर्शित करने वाला पहला शेल था, जो त्रुटि संदेशों को डेटा से अलग रखकर स्क्रिप्टिंग के समय अधिक प्रोग्रामेटिक नियंत्रण की अनुमति देता था।
स्टीफन बॉर्न की कोडिंग शेल एल्गोल 68C कंपाइलर के साथ उनके अनुभव से प्रभावित थी[2] जिस पर वह कैम्ब्रिज विश्वविद्यालय में काम कर रहे थे। जिस शेल में कार्यक्रम लिखा गया था उसके अतिरिक्त , बॉर्न ने एल्गोल 68 के कुछ हिस्सों का पुन: उपयोग किया if ~ then ~ elif ~ then ~ else ~ fi
, case ~ in ~ esac
और for/while ~ do ~ od
(का उपयोग करते हुए done
के अतिरिक्त od
) सामान्य यूनिक्स बॉर्न शेल सिंटैक्स में खंड। इसके अतिरिक्त , - चूँकि v7 शेल C (प्रोग्रामिंग भाषा) में लिखा गया है - बॉर्न ने कुछ मैक्रो (कंप्यूटर विज्ञान) का लाभ उठाया[4] C स्रोत कोड को एल्गोल 68 फ्लेवर देने के लिए इन मैक्रोज़ (यूनिक्स संस्करण बर्कले सॉफ्टवेयर डिस्ट्रीब्यूशन या 4.2बीएसडी 4.2बीएसडी में वितरित फिंगर प्रोटोकॉल कमांड के साथ) ने इंटरनेशनल ऑबफुसेटेड सी कोड प्रतियोगिता (आईओसीसीसी) को प्रेरित किया जाता है।[5]
1979 के बाद प्रारंभ की गई सुविधाएँ
इन वर्षों में, एटी एंड टी में बॉर्न शेल को बढ़ाया गया था। विभिन्न वेरिएंट को संबंधित एटी एंड टी यूनिक्स संस्करण की तरह कहा जाता है, जिसके साथ इसे प्रसारित किया गया था (कुछ महत्वपूर्ण वेरिएंट संस्करण 7, सिस्टम III, एसवीआर 2, एसवीआर 3, एसवीआर 4 हैं)। चूंकि शेल का कभी भी संस्करणीकरण नहीं किया गया था, इसलिए इसकी पहचान करने का एकमात्र विधि इसकी विशेषताओं का परीक्षण करना था।[6]
1979 से बॉर्न शेल संस्करणों की विशेषताओं में सम्मिलित हैं:[7]
- अंतर्निर्मित
test
कमांड - सिस्टम III शेल (1981) - # टिप्पणी चरित्र के रूप में - सिस्टम III शेल (1981)
- पैरामीटर प्रतिस्थापन में कोलन ${पैरामीटर:=शब्द} - सिस्टम III शेल (1981)
continue
तर्क के साथ - सिस्टम III शेल (1981)cat <<-EOF
यहां इंडेंट किए गए दस्तावेज़ों के लिए - सिस्टम III शेल (1981)- कार्य और
return
बिल्टिन - एसवीआर2 शेल (1984) - बिल्ट-इन
unset
,echo
,type
- एसवीआर2 शेल (1984) - स्रोत कोड डी-एल्गोल68-ized - SVR2 शेल (1984)
- आधुनिक
$@
- एसवीआर3 शेल (1986) - अंतर्निर्मित
getopts
- एसवीआर3 शेल (1986) - साफ़ किए गए पैरामीटर हैंडलिंग से पुनरावर्ती कॉल करने योग्य फ़ंक्शंस की अनुमति मिलती है - SVR3 शेल (1986)
- 8-बिट क्लीन - SVR3 शेल (1986)
- कार्य नियंत्रण - एसवीआर4 शेल (1989)
- मल्टी-बाइट समर्थन - SVR4 शेल (1989)
वेरिएंट
डीएमईआरटी शेल
डुप्लेक्स मल्टी-एनवायरमेंट रियल-टाइम (डीएमईआरटी) एक हाइब्रिड टाइम-शेयरिंग/रीयल-टाइम ऑपरेटिंग सिस्टम है जिसे 1970 के दशक में नेपरविले, इलिनोइस में बेल लैब्स इंडियन हिल स्थान पर विकसित किया गया था, जो बॉर्न शेल संस्करण sys137 दिनांक 1978 अक्टूबर 12 22 के 1978 स्नैपशॉट का उपयोग करता है। :39:57 . डीएमईआरटी शेल दूरसंचार उद्योग में अभी भी उपयोग में आने वाले 3बी21डी कंप्यूटर पर चलता है।
कोर्न शैल
मूल बॉर्न शैल स्रोत कोड के आधार पर डेविड कोर्न (कंप्यूटर वैज्ञानिक) द्वारा लिखित कोर्न शेल (केएसएच),[8] बॉर्न शेल और सी शैल के बीच एक मध्य मार्ग था। इसका सिंटैक्स मुख्य रूप से बॉर्न शेल से लिया गया था, जबकि इसकी कार्य नियंत्रण (यूनिक्स) विशेषताएं सी शेल से मिलती जुलती थीं। मूल कॉर्न शेल की कार्यक्षमता (इसके परिचय के वर्ष से केएसएच88 के रूप में जाना जाता है) का उपयोग पॉज़िक्स शेल मानक के आधार के रूप में किया गया था। एक नया संस्करण, केएसएच93, 2000 से खुला स्रोत है और कुछ लिनक्स वितरण पर इसका उपयोग किया जाता है। केएसएच88 का एक क्लोन जिसे कोर्न शेल के नाम से जाना जाता है, ओपनबीएसडी में डिफ़ॉल्ट शेल है।
शिली बॉर्न शैल
जोर्ग शिलिंग के शिली-टूल्स में तीन बॉर्न शैल डेरिवेटिव सम्मिलित हैं।[9]
अन्य कोशों से संबंध
सी शैल
सी शेल के लेखक बिल जॉय ने इंटरएक्टिव उपयोग के लिए बॉर्न शेल की आलोचना की जाती है[10] एक ऐसा कार्य जिसके लिए स्टीफन बॉर्न ने स्वयं सी शेल की श्रेष्ठता को स्वीकार किया। चूँकि बॉर्न ने कहा कि उसका शेल स्क्रिप्टिंग के लिए उत्तम था और किसी भी यूनिक्स प्रणाली पर उपलब्ध था,[11] और टॉम क्रिस्टियनसेन ने भी सी शेल की स्क्रिप्टिंग और प्रोग्रामिंग के लिए अनुपयुक्त होने की आलोचना की गई थी।[12]
अल्मक्विस्ट गोले
बॉर्न शेल से जुड़े कॉपीराइट उद्देश्यों के कारण, क्योंकि इसका उपयोग ऐतिहासिक कंप्यूटर सिस्टम अनुसंधान समूह बीएसडी रिलीज में किया गया था, केनेथ अल्मक्विस्ट ने बॉर्न शेल का एक क्लोन विकसित किया था जिसे कुछ लोग अल्मक्विस्ट ओपन के रूप में जानते हैं और बीएसडी लाइसेंस के तहत उपलब्ध है, जो आज उपयोग में है। कुछ बीएसडी वंशजों पर और कम-याददाश्त स्थितियों में अल्मक्विस्ट शेल को लिनक्स में पोर्ट किया गया था, और पोर्ट का नाम बदलकर अल्मक्विस्ट शेल या डैश कर दिया गया। यह शेल मानक का तीव्र निष्पादन प्रदान करता है sh
(और पॉज़िक्स-मानक sh
, आधुनिक वंशजों में) अपने समकक्ष, बैश की तुलना में छोटी मेमोरी फ़ुटप्रिंट वाली स्क्रिप्ट। इसका उपयोग बैश (यूनिक्स शेल) या पोर्टेबिलिटी - श पर चलने वाली स्क्रिप्ट में बनाई गई बैश-केंद्रित धारणाओं को उजागर करता है।
अन्य गोले
- बैश (यूनिक्स शेल) (बॉर्न-अगेन शेल) को 1989 में जीएनयू के लिए विकसित किया गया था और इसमें बॉर्न शेल, सीएसएच और केएसएच की विशेषताएं सम्मिलित हैं। इसका मतलब पॉज़िक्स-अनुरूप होना है।
- आर सी को बेल लैब्स में टॉम डफ द्वारा संस्करण 10 यूनिक्स के लिए sh के प्रतिस्थापन के रूप में बनाया गया था। यह बेल लैब्स के प्लान 9 के लिए डिफ़ॉल्ट शेल है। इसे यूजर स्पेस से प्लान 9 के भाग के रूप में यूनिक्स में पोर्ट किया गया है।
- Z शेल, 1990 में पॉल फालस्टेड द्वारा विकसित एक विस्तारित बॉर्न शेल है जिसमें बड़ी संख्या में सुधार हुए हैं, जिसमें बैश (यूनिक्स शेल), के शेल और टीसीएसएच की कुछ विशेषताएं सम्मिलित हैं।
उपयोग
बॉर्न शेल एक समय सभी ब्रांडेड यूनिक्स सिस्टम पर मानक था, चूँकि ऐतिहासिक रूप से बीएसडी-आधारित सिस्टम में सी शेल में कई स्क्रिप्ट लिखी गई थीं। पॉज़िक्स के आधार के रूप में sh
सिंटैक्स, बॉर्न शेल स्क्रिप्ट को सामान्यतः लिनक्स या अन्य यूनिक्स जैसी प्रणालियों पर बैश (यूनिक्स शेल) या डेबियन अल्मक्विस्ट शेल के साथ चलाया जा सकता है।
यह भी देखें
- कमांड शेल की तुलना
- यूनिक्स शैल
संदर्भ
- ↑ https://www.bsdcan.org/2015/schedule/events/612.en.html Stephen Bourne Keynote for BSDCan 2015
- ↑ Jump up to: 2.0 2.1 McIlroy, M. D. (1987). A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 (PDF) (Technical report). CSTR. Bell Labs. 139. Archived (PDF) from the original on 2014-05-04.
- ↑ "The A-Z of Programming Languages: Bourne shell, or sh". computerworld.com.au. Archived from the original on 11 January 2010. Retrieved 6 March 2009.
- ↑ Bourne, Steve (12 January 1979). "mac.h – Macros used by Bourne to structure C like Algol68C". AT&T Corporation. Retrieved 9 September 2006.
- ↑ Landon Curt Noll; Simon Cooper; Peter Seebach & Leonid A. Broukhis (2004). "The IOCCC FAQ – Q/A: How did the IOCCC get started?". ioccc.org. Retrieved 9 September 2006.
- ↑ "यह कौन सा खोल है". www.in-ulm.de.
- ↑ "traditional Bourne shell family / history and development". www.in-ulm.de.
- ↑
Korn, David G. (26 October 1994), "ksh - An Extensible High Level Language", Proceedings of the USENIX 1994 Very High Level Languages Symposium, USENIX Association, retrieved 5 February 2015,
Instead of inventing a new script language, we built a form entry system by modifying the Bourne shell, adding built-in commands as necessary.
- ↑ "Schily Bourne Shell - A modern enhanced and POSIX compliant Bourne Shell source maintained by Jörg Schilling". Schily-Tools.
- ↑ An Introduction to the C shell Archived 13 July 2018 at the Wayback Machine by Bill Joy.[page needed]
- ↑ Bourne, Stephen R. (October 1983). "यूनिक्स शैल". BYTE. p. 187. Retrieved 30 January 2015.
- ↑ Tom Christiansen (28 September 1995). "सीएसएच प्रोग्रामिंग को हानिकारक माना जाता है". Retrieved 17 February 2014.
बाहरी संबंध
- The individual members of "The Traditional Bourne Shell Family"
- "Characteristical common properties of the traditional Bourne shells"
- Historical C source code for the Bourne shell using mac.h macros from 1979
- Original Bourne Shell documentation from 1978
- A port of the "heirloom" SVR4 Bourne shell from OpenSolaris to some other Unix-like systems
- Migrating from the System V (SVR4) Shell to the पॉज़िक्स Shell
- Bourne Shell Tutorial (syntax)
- Faqs shell differences
- Howard Dahdah, The A–Z of Programming Languages: Bourne shell, or sh – An in-depth interview with Steve Bourne, creator of the Bourne shell, or sh, Computerworld, 5 March 2009.