बैश (यूनिक्स शेल)

From Vigyanwiki
Revision as of 20:43, 5 January 2023 by alpha>Artiverma
बैश
Original author(s)ब्रायन फॉक्स
Developer(s)Chet Ramey[1][2]
Stable release
Script error: The module returned a nil value. It is supposed to return an export table. / Script error: The module returned a nil value. It is supposed to return an export table.
Preview release
Script error: The module returned a nil value. It is supposed to return an export table. / Script error: The module returned a nil value. It is supposed to return an export table.
Written inसी
Operating system
Platformजीएनयू
Available inबहुभाषी (गेटटेक्स्ट)
Typeयूनिक्स शेल, कमांड भाषा
LicenseSince 4.0: GPL-3.0-or-later[6]
1.11? to 3.2: GPL-2.0-or-later[7]
0.99? to 1.05?: GPL-1.0-or-later[8][9][10]
Websitegnu.org/software/bash

बैश यूनिक्स आवरण और कमांड भाषा है जिसे ब्रायन फॉक्स (कंप्यूटर प्रोग्रामर) द्वारा जीएनयू परियोजना के लिए बॉर्न आवरण के लिए मुफ्त सॉफ्टवेयर प्रतिस्थापन के रूप में लिखा गया है।[11][12] यह 1989 में पहली बार प्रस्तावित हुआ,[13] इसे अधिकांश लिनक्स वितरणों के लिए डिफ़ॉल्ट लॉगिन आवरण के रूप में उपयोग किया गया है।[14]बैश उन पहले कार्यक्रमों में से था जिसे लिनक्स टोरवाल्ड्स ने जीसीसी के साथ लिनक्स में परिवर्तन किया था।[15] लिनक्स के लिए विंडोज उप-प्रणाली के माध्यम से विंडोज 10 और विंडोज़ 11 के लिए संस्करण भी उपलब्ध है।[16][17] यह सोलारिस (ऑपरेटिंग सिस्टम) 11 में डिफ़ॉल्ट उपयोगकर्ता आवरण भी है।[18] बैश एप्पल MacOS के संस्करणों में 10.3 (मूल रूप से, डिफ़ॉल्ट आवरण tcsh था) macOS कैटालिना के 2019 प्रस्तावित के लिए, डिफ़ॉल्ट आवरण को zsh में बदल दिया, चूँकि बैश वैकल्पिक आवरण के रूप में उपलब्ध है।[19]

बैश कमांड प्रोसेसर है जो सामान्यतः मूलपाठ विंडो में चलता है जहां उपयोगकर्ता कमांड लिखता है जो कार्रवाई का कारण बनता है। बैश फ़ाइल कमांड को पढ़ और निष्पादित भी कर सकता है, जिसे आवरण स्क्रिप्ट कहा जाता है। अधिकांश यूनिक्स, फ़ाइल नाम ग्लोबिंग, (वाइल्डकार्ड मिलान), पाइपलाइन, दस्तावेज़, कमांड प्रतिस्थापन, चर, स्थिति-परीक्षण और पुनरावृत्ति के लिए नियंत्रण संरचनाओं का समर्थन करता है। कीवर्ड, वाक्य - विन्यास, गतिशील घेरा, चर और भाषा की अन्य बुनियादी विशेषताएं सभी बॉर्न आवरण से कॉपी की गई हैं। अन्य विशेषताएं, उदाहरण के लिए, इतिहास csh और ksh आवरण से कॉपी की जाती हैं। बैश POSIX- संगत आवरण है, लेकिन कई वृद्धि के साथ।

आवरण का नाम बॉर्न अगेन आवरण के लिए परिवर्णी शब्द है, बॉर्न आवरण के नाम पर वाक्य को यह प्रतिस्थापित करता हैi[20] तत्पश्चात जन्म लेने की धारणा उत्पन्न करता है।[21][22]

संस्करण 1.03 (अगस्त 1989) से बैश में सुरक्षा बग,[23] अनुबंध शेलशॉक (सॉफ्टवेयर बग), सितंबर 2014 की प्रारम्भ में शोध किया गया था और जल्दी से इंटरनेट पर परिवर्तन की श्रृंखला का नेतृत्व किया।[24][25][26] बग की पहचान होने के तुरंत बाद बग को ठीक करने के लिए पैच उपलब्ध करा दिए गए थे।

इतिहास

ब्रायन फॉक्स ने 10 जनवरी 1988 को कंप्यूटर प्रोग्रामिंग में बैश को कोड करना शुरू किया, जब रिचर्ड स्टालमैन पूर्व डेवलपर द्वारा की जा रही प्रगति की कमी से असंतुष्ट हो गए।[11][27] स्टॉलमैन और नि: शुल्क सॉफ्टवेयर बुनियाद ने नि: शुल्क आवरण पर विचार किया जो सम्मलित आवरण स्क्रिप्ट को बीएसडी और जीएनयू कोड से निर्मित पूर्णतया मुक्त प्रणाली के लिए रणनीतिक रूप से चला सकता है कि यह उन कुछ परियोजनाओं में से था जिसमें फॉक्स ने काम किया था और उन्होंने स्वयं वित्त पोषित किया था। फॉक्स के साथ एफएसएफ के कर्मचारी के रूप में काम करना।[11][28] फ़ॉक्स ने 8 जून 1989 को बैश संस्करण .99 को बीटा के रूप में प्रस्तावित किया,[13]और 1992 से [29] 1994 के मध्य,[30] जब उन्हें एफएसएफ से हटा दिया गया, तब तक वे प्राथमिक अनुरक्षक बने रहे।[31] तब उनका उत्तरदायित्व दूसरे शुरुआती योगदानकर्ता चेत रमी को दी गई।[32][33][34]

उस समय से, बैश लिनक्स के उपयोगकर्ताओं के बीच अब तक का सबसे लोकप्रिय आवरण बन गया है, जो ऑपरेटिंग प्रणाली के विभिन्न वितरणों पर डिफ़ॉल्ट अंतर सक्रिय आवरण बन गया है।[35][36] (चूँकि अल्मक्विस्ट आवरण डिफ़ॉल्ट स्क्रिप्टिंग आवरण हो सकता है) और एप्पल के मैकओएस पर अक्टूबर 2019 में मैकओएस कैटालिना से पहले प्रस्तावित हुआ।[37][38][14] बैश को माइक्रोसॉफ़्ट विंडोज़ में भी परिवर्तन किया गया है और साइगविन और मिनजीडब्ल्यू के साथ वितरित किया गया है, डीजेजीपीपी परियोजना द्वारा डीओएस को, नोवेल नेटवेयर को, जीएनवी परियोजना द्वारा खुला वीएमएस को,[39] आर्काओएस को,[40] और एंड्रॉइड को विभिन्न टर्मिनल अनुकरण अनुप्रयोगों के माध्यम से वितरित किया गया है।

सितंबर 2014 में, यूनिक्स/लिनक्स विशेषज्ञ स्टीफ़न चेज़लस ने,[41] कार्यक्रम में सुरक्षा बग का शोध किया। बग, जिसे पहली बार 24 सितंबर को प्रकट किया गया था, जिसका नाम आवरणशॉक दिया गया था और CVE-2014-6271, CVE-2014-6277 और CVE-2014-7169 संख्याओं को निर्दिष्ट किया गया था I बग को गंभीर माना गया था, क्योंकि बैश का उपयोग करने वाली कॉमन गेटवे इंटरफ़ेस स्क्रिप्ट्स असुरक्षित हो सकती हैं, जिससे मनमाने कोड निष्पादन को सक्षम किया जा सकता है। बग इस बात से संबंधित था कि कैसे बैश पर्यावरण चर के माध्यम से उप-आवरणों में परिभाषाओं को पास कार्य करता है।[42]


विशेषताएं

बैश कमांड (कंप्यूटिंग) वाक्य - विन्यास बॉर्न आवरण कमांड वाक्य - विन्यास का सुपरसेट है। बैश ब्रेस विस्तार, कमांड लाइन पूर्णता (प्रोग्रामयोग्य पूर्णता) का समर्थन करता है,[43] बैश 2.05a के बाद से[44] अन्य सुविधाओं के बीच बुनियादी डिबगिंग[45] और सिग्नल (आईपीसी) (जालका उपयोग करके का समर्थन करता है। । बैश, बॉर्न आवरण स्क्रिप्ट के विशाल बहुमत को बिना संशोधन के निष्पादित कर सकता है, बॉर्न आवरण स्क्रिप्ट के अपवाद के साथ फ्रिंज वाक्य - विन्यास व्यवहार में ठोकर खाई जाती है, जिसे बैश में अलग तरीके से व्याख्या की जाती है या एक नए बैश बिल्टिन से मेल खाते सिस्टम कमांड को चलाने का प्रयास किया जाता है, आदि। बैश कमांड वाक्य - विन्यास में तैयार किए गए विचार सम्मलित हैं। k आवरण (ksh) और C आवरण (csh) से जैसे कि कमांड लाइन एडिटिंग, कमांड इतिहास (इतिहासआज्ञा),[46] निर्देशिका ढेर, $RANDOM तथा $PPID चर, और POSIX कमांड प्रतिस्थापन वाक्य - विन्यास $(…).

जब कोई उपयोगकर्ता इंटरएक्टिव कमांड-आवरण के भीतर टैब कुंजी दबाता है, तो बैश स्वचालित रूप से कमांड लाइन पूर्णता का उपयोग करता है, बीटा संस्करण 2.04,[47] आंशिक रूप से टाइप किए गए प्रोग्राम नाम, फ़ाइल नाम और चर नाम से मिलान करने के लिए। बैश कमांड-लाइन पूर्णता प्रणाली बहुत लचीली और अनुकूलन योग्य है, और प्रायः ऐसे कार्यों के साथ पैक की जाती है जो विशिष्ट कार्यक्रमों और कार्यों के लिए तर्कों और फ़ाइलनाम को पूरा करते हैं।

बैश के वाक्य - विन्यास में बॉर्न आवरण में कई एक्सटेंशन की कमी है। बैश बाहरी प्रक्रियाओं को पैदा किए बिना पूर्णांक गणना (अंकगणितीय मूल्यांकन) कर सकता है। इस उद्देश्य के लिए यह ((…)) कमांड और $((…)) चर वाक्य - विन्यास उपयोग करता है I इसका वाक्य-विन्यास I/O पुनर्निर्देशन (कंप्यूटिंग) पुनर्निर्देशन को सरल करता है। उदाहरण के लिए, यह &> ऑपरेटर का उपयोग करके एक ही समय में मानक आउटपुट (stdout) और मानक त्रुटि स्ट्रीम (stderr) को पुनर्निर्देशित कर सकता है । यह बॉर्न आवरण समकक्ष कमांड > फ़ाइल 2>&1 'की तुलना में टाइप करना आसान है''। बैश <(कमांड) तथा >(कमांड) वाक्य - विन्यास का उपयोग करके प्रक्रिया प्रतिस्थापन का समर्थन करता है I जो एक कमांड के आउटपुट (या इनपुट) को प्रतिस्थापित करता है जहां सामान्यतः फ़ाइल नाम का उपयोग किया जाता है। (यह उन प्रणालियों पर / proc / fd / अनाम पाइपों के माध्यम से कार्यान्वित किया जाता है जो इसका समर्थन करते हैं, या जहां आवश्यक हो अस्थायी नामित पाइपों के माध्यम से)।

'फ़ंक्शन' कीवर्ड का उपयोग करते समय, बैश फ़ंक्शन घोषणाएँ बॉर्न/कोर्न/पॉज़िक्स आलेख के साथ संगत नहीं होती हैं ('फ़ंक्शन' का उपयोग करते समय कोर्नआवरण में वही समस्या होती है), लेकिन बैश उसी फ़ंक्शन घोषणा वाक्य - विन्यास को बॉर्न और कोर्न आवरण के रूप में स्वीकार करता है, और पॉज़िक्स-अनुरूप है। इन और अन्य अंतरों के कारण, बॉर्न या कोर्न आवरण दुभाषियों के तहत बैश आवरण आलेख शायद ही कभी चलाने योग्य होते हैं, जब तक कि जानबूझकर उस अनुकूलता को ध्यान में रखकर नहीं लिखा जाता है, जो लिनक्स के अधिक व्यापक होने के कारण कम आम होता जा रहा है। लेकिन पॉज़िक्स मोड में, बैश पॉज़िक्स के साथ अधिक बारीकी से अनुरूप है।[48] बैश यहां पत्रों का समर्थन करता है। चूंकि संस्करण 2.05b बैश <<< ऑपरेटर का उपयोग करके यहां स्ट्रिंग से स्टडिन (stdin) को पुनर्निर्देशित कर सकता है ।

बैश 3.0 पर्ल की याद दिलाने वाले वाक्य - विन्यास का उपयोग करके इन-प्रोसेस नियमित अभिव्यक्ति का समर्थन करता है।[49] फरवरी 2009 में,[50] बैश 4.0 ने साहचर्य सरणियों के लिए समर्थन प्रस्तुत किया।[9]AWK या Tcl के समान एक तरह से साहचर्य सरणी सूचकांक तार हैं।[51] उनका उपयोग बहुआयामी सरणियों का अनुकरण करने के लिए किया जा सकता है। बैश 4 भी अपने लाइसेंस को GNU जनरल पब्लिक लाइसेंस संस्करण 3|GPL-3.0-या-बाद में बदल देता है; कुछ उपयोगकर्ताओं को इस लाइसेंस परिवर्तन पर संदेह है क्योकि MacOS पुराने संस्करणों का उपयोग करना जारी रखता है।[52] Apple ने अंततः 2019 में MacOS कैटालिना की रिलीज़ के साथ डिफ़ॉल्ट आवरण के रूप में अपने ऑपरेटिंग प्रणाली में बैश का उपयोग करना बंद कर दिया।[19]


ब्रेस विस्तार

ब्रेस एक्सपेंशन, जिसे अल्टरनेशन भी कहा जाता है, C आवरण से कॉपी किया गया फीचर है। यह वैकल्पिक संयोजनों का एक सेट उत्पन्न करता है। जेनरेट किए गए परिणामों को फाइलों के रूप में उपस्तिथ नहीं होना चाहिए। प्रत्येक विस्तारित स्ट्रिंग के परिणाम क्रमबद्ध नहीं होते हैं और बाएं से दाएं क्रम को संरक्षित किया जाता है:

<वाक्यविन्यास लैंग = कंसोल> $ इको ए {पी, सी, डी, बी} ई एप इक्का अडे अबे $ इको {ए, बी, सी} {डी, ई, एफ} विज्ञापन एई एएफ बीडी बीएफ सीडी सीई सीएफ </वाक्यविन्यास हाइलाइट> उपयोगकर्ताओं को पोर्टेबल आवरण आलेख में ब्रेस एक्सपेंशन का उपयोग नहीं करना चाहिए, क्योंकि बॉर्न आवरण समान आउटपुट नहीं देता है।

<वाक्यविन्यास लैंग = कंसोल> $ पारंपरिक खोल एक ही आउटपुट का उत्पादन नहीं करता है $ /bin/sh -c 'echo a{p,c,d,b}e' ए {पी, सी, डी, बी} ई</वाक्यविन्यास हाइलाइट>

जब ब्रेस विस्तार को वाइल्डकार्ड के साथ जोड़ दिया जाता है, तो पहले ब्रेसिज़ का विस्तार किया जाता है, और फिर परिणामी वाइल्डकार्ड को सामान्य रूप से प्रतिस्थापित किया जाता है। इसलिए, वर्तमान निर्देशिका में जेपीईजी और पीएनजी छवियों की एक सूची निम्नलिखित का उपयोग करके प्राप्त की जा सकती है:

<वाक्यविन्यास लैंग = बैश> एलएस *। {जेपीजी, जेपीईजी, पीएनजी} तक विस्तृत होता है*.jpg *.jpeg *.png जिसके बाद,

                      वाइल्डकार्ड संसाधित किए जाते हैं

इको *। {पीएनजी, जेपी {ई,} जी} इको ​​केवल विस्तार दिखाएं -

                      और ब्रेसिज़ में ब्रेसिज़ संभव हैं।

</वाक्यविन्यास हाइलाइट>

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

<वाक्यविन्यास लैंग = कंसोल>$ प्रतिध्वनि {1..10}1 2 3 4 5 6 7 8 9 10$ इको {01..10} 01 02 03 04 05 06 07 08 09 10$ गूंज फ़ाइल {1..4}.txt फ़ाइल 1.txt फ़ाइल 2.txt फ़ाइल 3.txt फ़ाइल 4.txt $ इको {ए..ई}ए बी सी डी ई $ प्रतिध्वनि {1..10..3}1 4 7 10 $ प्रतिध्वनि {a..j..3} ए डी जी जे</वाक्यविन्यास हाइलाइट>

जब ब्रेस विस्तार को चर विस्तार (ए.के.ए. पैरामीटर विस्तार और पैरामीटर प्रतिस्थापन) के साथ जोड़ा जाता है, तो ब्रेस विस्तार के बाद चर विस्तार किया जाता है, जो कुछ विषयो में उपयोग की आवश्यकता हो सकती है eval अंतर्निहित, इस प्रकार:

<वाक्यविन्यास लैंग = कंसोल> $ प्रारंभ = 1; अंत = 10 $ गूंज {$शुरू..$अंत} मूल्यांकन आदेश के कारण विस्तार करने में विफल रहता है {1..10} $ eval प्रतिध्वनि {$शुरू..$अंत} चर विस्तार तब होता है जिसके परिणामस्वरूप स्ट्रिंग का मूल्यांकन किया जाता है 1 2 3 4 5 6 7 8 9 10 </वाक्यविन्यास हाइलाइट>

स्टार्टअप स्क्रिप्ट

Template:Section howto जब बैश शुरू होता है, तो यह विभिन्न प्रकार की हिडन फाइल और हिडन डायरेक्टरी यूनिक्स और यूनिक्स जैसे वातावरण में कमांड निष्पादित करता है। बैश आवरण आलेख के विपरीत, डॉट फ़ाइलों में सामान्यतः निष्पादन अनुमति सक्षम नहीं होती है और न ही दुभाषिया निर्देश !/bin/bash.

विरासत-संगत बैश स्टार्टअप उदाहरण

कंकाल ~/.बैश_रूपरेखा नीचे बॉर्न आवरण के साथ संगत है और इसके लिए csh के समान शब्दार्थ देता है ~/.bashrc तथा ~/.bash_login. [ -r filename ] && cmd e> एक शॉर्ट सर्किट मूल्यांकन है जो परीक्षण करता है कि क्या फ़ाइल नाम मौजूद है और पढ़ने योग्य है, अगर यह नही तो इसके बाद के भाग को छोड़ दें &&

<वाक्यविन्यास लैंग = बैश> [-r ~/.रूपरेखा] &&। ~/.रूपरेखा सेट अप पर्यावरण, एक बार, केवल बॉर्न-श वाक्यविन्यास अगर [-एन $ पीएस 1]; तो क्या हम इंटरएक्टिव हैं?

  [-r ~/.bashrc] &&। इंटरएक्टिव आवरण के लिए ~/.bashrc # tty/prompt/function सेटअप
  [-r ~/.bash_login] &&। ~/.bash_login  केवल लॉगिन आवरण के लिए कोई भी लॉगिन कार्य

अगर ब्लॉक का अंत </वाक्यविन्यास हाइलाइट>

बैश चालू होने में ऑपरेटिंग प्रणाली की समस्या

यूनिक्स और लिनक्स के कुछ संस्करणों में बैश सिस्टम स्टार्टअप आलेख होती है सामान्यतः /etc निर्देशिका के अंतर्गत। बैश इन्हें अपने मानक आरंभीकरण के भाग के रूप में कहता है, लेकिन अन्य स्टार्टअप फ़ाइलें उन्हें प्रलेखित बैश स्टार्टअप अनुक्रम की तुलना में एक अलग क्रम में पढ़ सकती हैं। रूट उपयोक्ता की फ़ाइलों की डिफ़ॉल्ट सामग्री में भी समस्याएँ हो सकती हैं, साथ ही कंकाल फ़ाइलें जो सिस्टम सेटअप पर नए उपयोगकर्ता खातों को प्रदान करता है। एक्स विंडो सिस्टम को लॉन्च करने वाली स्टार्टअप आलेख विंडो प्रबंधक को लॉन्च करने से पहले उपयोगकर्ता-पर्यावरण चर सेट करने के प्रयास में उपयोगकर्ता की बैश स्टार्टअप आलेख के साथ आश्चर्यजनक चीजें भी कर सकती हैं। इन मुद्दों को प्रायः उपयोग करके संबोधित किया जा सकता है ~/.xsession या ~/.xprofile पढ़ने के लिए फ़ाइल ~/.profile - जो पर्यावरण चर प्रदान करता है जो बैश शेल विंडो को विंडो मैनेजर की जरूरत से पैदा करता है, जैसे कि xterm या गनोम टर्मिनल I

पोर्टेबिलिटी

--posix के साथ बैश का आह्वान करना विकल्प या कथन set -o posix एक स्क्रिप्ट में बैश को Posix POSIX.2|POSIX 1003.2 मानक के बहुत करीब से अनुरूप बनाने का कारण बनता है।[53] पोर्टेबिलिटी (कंप्यूटर साइंस) के लिए बनाई गई बैश आवरण स्क्रिप्ट को कम से कम POSIX आवरण मानक को ध्यान में रखना चाहिए। POSIX में नहीं मिली कुछ बैश विशेषताएँ हैं:[53][54]

  • कुछ विस्तारित मंगलाचरण विकल्प
  • ब्रेस विस्तार
  • सरणियाँ और साहचर्य सरणियाँ
  • डबल ब्रैकेट [[ ... ]] विस्तारित परीक्षण निर्माण और इसका रेगेक्स मिलान
  • दोहरे कोष्ठक अंकगणित-मूल्यांकन निर्माण (केवल (( ... )); $(( ... )) पॉज़िक्स है)
  • पैरामीटर विस्तार में कुछ स्ट्रिंग-हेरफेर ऑपरेशन
  • local दायरे वाले चर के लिए
  • प्रक्रिया प्रतिस्थापन
  • बैश-विशिष्ट बिल्टिन
  • कोप्रोसेसेस
  • $युगसेकंड और $एपोक्रिअलटाइम चर [55]

यदि कोड का एक टुकड़ा ऐसी सुविधा का उपयोग करता है, तो इसे बैशिज़्म कहा जाता है - पोर्टेबल उपयोग के लिए एक समस्या। डेबियन का checkbashisms और विदर होलेन के shellcheck इसका उपयोग यह सुनिश्चित करने के लिए किया जा सकता है कि किसी स्क्रिप्ट में ये भाग नहीं हैं।[56][57] सूची वास्तविक लक्ष्य आवरण के आधार पर भिन्न होती है: डेबियन की नीति उनकी लिपियों में कुछ विस्तार की अनुमति देती है (जैसा कि वे अल्मक्विस्ट आवरण डैश आवरण में हैं),[54]जबकि एक स्क्रिप्ट पूर्व POSIX बॉर्न शेल का समर्थन करने का इरादा रखती है, जैसे कि autoconfconfigure, उन सुविधाओं में और भी अधिक सीमित हैं जिनका वे उपयोग कर सकते हैं।[58]


कीबोर्ड शॉर्टकट

बैश डिफ़ॉल्ट (Emacs) कुंजी बाइंडिंग का उपयोग करके कमांड लाइन संपादन के लिए कीबोर्ड शॉर्टकट प्रदान करने के लिए रीडलाइन का उपयोग करता है। हम बांधते हैं को चलाकर सक्षम किया जा सकता है set -o vi.[59]


प्रक्रिया प्रबंधन

बैश आवरण में कमांड के निष्पादन के दो तरीके हैं: बैच (यूनिक्स), और समवर्ती मोड।

बैच में कमांड निष्पादित करने के लिए (अर्थात, क्रम में) उन्हें वर्ण द्वारा अलग किया जाना चाहिए; , या अलग लाइनों पर:

<वाक्यविन्यास लैंग = बैश> कमांड 1; कमांड2 </वाक्यविन्यास हाइलाइट>

इस उदाहरण में, जब कमांड 1 समाप्त हो जाता है, तो कमांड 2 निष्पादित हो जाता है।

कमांड 1 की एक पृष्ठभूमि प्रक्रिया निष्पादन कमांड के अंत में (प्रतीक और) का उपयोग करके हो सकती है, और प्रक्रिया को पृष्ठभूमि में निष्पादित किया जाएगा जो आवरण पर तुरंत नियंत्रण लौटाएगा और कमांड के निरंतर निष्पादन की अनुमति देगा।

command1 &

या दो कमांड 1 और कमांड 2 का समवर्ती निष्पादन करने के लिए, उन्हें निम्नलिखित तरीके से बैश आवरण में निष्पादित किया जाना चाहिए:

<वाक्यविन्यास लैंग = बैश> कमांड 1 और कमांड 2 </वाक्यविन्यास हाइलाइट>

इस विषय में कमांड 1 को पृष्ठभूमि और प्रतीक में निष्पादित किया जाता है, तुरंत उस आवरण पर नियंत्रण लौटाता है जो अग्रभूमि में कमांड 2 को निष्पादित करता है।

एक प्रक्रिया को रोका जा सकता है और टाइप करके बैश पर नियंत्रण लौटाया जा सकता है Ctrl+z जबकि प्रक्रिया अग्रभूमि में चल रही है।[60] सभी प्रक्रियाओं की एक सूची, दोनों पृष्ठभूमि में और रुकी हुई, चलकर प्राप्त की जा सकती है jobs: <वाक्यविन्यास लैंग = कंसोल> $ नौकरियां [1] - रनिंग कमांड 1 और [2] + रुका हुआ कमांड 2 </वाक्यविन्यास हाइलाइट>

आउटपुट में, कोष्ठक में संख्या जॉब आईडी को संदर्भित करती है। धन चिह्न के लिए डिफ़ॉल्ट प्रक्रिया को दर्शाता है bg तथा fg. टेक्स्ट रनिंग और स्टॉप्ड प्रक्रिया अवस्था को संदर्भित करता है। अंतिम स्ट्रिंग वह कमांड है जिसने प्रक्रिया शुरू की।

विभिन्न आदेशों का उपयोग करके एक प्रक्रिया की स्थिति को बदला जा सकता है। fg e> कमांड एक प्रक्रिया को अग्रभूमि में लाता है, जबकि bg पृष्ठभूमि में चल रही एक रुकी हुई प्रक्रिया को सेट करता है। bg तथा fg कार्य करने की प्रक्रिया को निर्दिष्ट करने के लिए अपने पहले तर्क के रूप में कार्य आईडी ले सकते हैं। एक के बिना, वे डिफ़ॉल्ट प्रक्रिया का उपयोग करते हैं, जिसे आउटपुट में प्लस चिह्न द्वारा पहचाना जाता है jobs. kill ई> कमांड का उपयोग समय से पहले एक प्रक्रिया को सिग्नल (आईपीसी) भेजकर समाप्त करने के लिए किया जा सकता है। जॉब आईडी को प्रतिशत चिह्न के बाद निर्दिष्ट किया जाना चाहिए:

<वाक्यविन्यास लैंग = बैश> मार % 1 </वाक्यविन्यास हाइलाइट>

सशर्त निष्पादन

बैश सशर्त निष्पादन कमांड विभाजक की आपूर्ति करता है जो पूर्ववर्ती कमांड द्वारा निर्धारित निकास स्थिति पर आकस्मिक कमांड का निष्पादन करता है। उदाहरण के लिए:

<वाक्यविन्यास लैंग = बैश> सीडी $ कहीं और && ./do_something || प्रतिध्वनि एक त्रुटि हुई >&2 </वाक्यविन्यास हाइलाइट>

जहां ./do_something केवल तभी निष्पादित होता है जब सीडी (निर्देशिका बदलें) कमांड सफल होता है (शून्य की निकास स्थिति लौटाता है) और इको कमांड केवल तभी निष्पादित किया जाएगा जब सीडी या ./do_something कमांड एक त्रुटि लौटाता है (गैर-शून्य) बाहर निकलने की स्थिति)।

सभी आदेशों के लिए निकास स्थिति को विशेष चर में संग्रहीत किया जाता है $?. बैश भी समर्थन करता है if ...;then ...;else ...;fi तथा case $VARIABLE in $pattern)...;;$other_pattern)...;; esac सशर्त कमांड मूल्यांकन के रूप।

बग रिपोर्टिंग

बैशबग नामक एक बाहरी कमांड बैश आवरण बग की रिपोर्ट करता है। जब कमांड का आह्वान किया जाता है, तो यह उपयोगकर्ता के डिफ़ॉल्ट संपादक को भरने के लिए एक फॉर्म के साथ लाता है। फॉर्म को बैश अनुरक्षकों (या वैकल्पिक रूप से अन्य ईमेल पतों ) पर भेज दिया जाता है।[61][62]


प्रोग्राम करने योग्य पूर्णता

बैश बिल्ट-इन के माध्यम से प्रोग्रामेबल कमांड-लाइन पूर्णता का समर्थन करता है पूर्ण, कंपोज़, तथा आदेश निर्दिष्ट ।[63] यह सुविधा 2000 में जारी 2.04 के बीटा संस्करण के बाद से उपलब्ध है।[64][65] ये कमांड कमांड्स (अर्थात इंस्टॉल किए गए प्रोग्राम), फ़ंक्शंस, चरों और फाइलनामों के लिए जटिल और बुद्धिमान पूर्णता विनिर्देश को सक्षम करते हैं।[66]

पूर्ण ई> और कंपोज़ दो आदेश निर्दिष्ट करते हैं कि कैसे कुछ उपलब्ध आदेशों या विकल्पों के तर्क पढ़ने के लिए लाइन इनपुट में सूचीबद्ध होने जा रहे हैं। संस्करण 5.1 के रूप में कमांड या विकल्प को पूरा करना सामान्यतः इसके द्वारा सक्रिय किया जाता है Tab ↹ इसका नाम टाइप करने के बाद कीस्ट्रोक।[66]


रिलीज इतिहास

संस्करण विमोचन तिथि जारी नोट्‍स
बैश-5.2 2022-09-26 समाचार
बैश-5.1 2020-12-07 जीथब संस्करण इतिहास समाचार [9]
बैश-5.0 2019-01-07 [67][68][69]
बैश-5.0-rc1 2018-12-20
बैश-5.0-बीटा2 2018-11-28
बैश-5.0-बीटा 2018-09-17
बैश-5.0-अल्फा 2018-05-22
बैश-4.4 2016-09-15 जीथब संस्करण इतिहास समाचार v4.4
बैश-4.4-rc2 2016-08-22
बैश-4.4-rc1 2016-02-24
बैश-4.4-बीटा2 2016-07-11
बैश-4.4-बीटा 2015-10-12
बैश-4.3 2014-02-26
बैश-4.2 2011-02-13
बैश-4.1 2009-12-31
बैश-4.0 2009-02-20
बैश-4.0-rc1 2009-01-12
बैश-3.2 2006-10-11
बैश-3.1 2005-12-08
बैश-3.0 2004-08-03
बैश-2.05b 2002-07-17
बैश-2.05a 2001-11-16
बैश-2.05 2001-04-09
बैश-2.04 2000-03-21
बैश-2.03 1999-02-19
बैश-2.02 1998-04-18
बैश-2.01 1997-06-05
बैश-2.0 1996-12-31


यह भी देखें


संदर्भ

  1. Hamilton, Naomi (2008-05-30). "The A-Z of Programming Languages: BASH/Bourne-Again Shell". Computerworld. Archived from the original on 8 November 2016. Retrieved 1 March 2022.
  2. Ramey, Chet (2021-04-20). "The GNU Bourne-Again Shell". Technology Infrastructure Services. Case Western Reserve University. Retrieved 1 March 2022.
  3. "Bash FAQ, version 4.14". Archived from the original on September 1, 2018. Retrieved April 9, 2016.
  4. "Missing source code - GPL compliance? · Issue #107 · Microsoft/WSL". GitHub. Archived from the original on September 24, 2019. Retrieved July 8, 2016.
  5. "GNU Bash". Softpedia. SoftNews. January 23, 2010. Archived from the original on October 21, 2017. Retrieved 9 April 2016.
  6. GNU Project. "README file". Archived from the original on April 26, 2019. Retrieved April 16, 2014. Bash is free software, distributed under the terms of the [GNU] General Public License as published by the Free Software Foundation, version 3 of the License (or any later version).
  7. "bash-1.11". oldlinux.org. See test.c for GPL-2.0-or-later
  8. "bash-1.05.tar". oldlinux.org.
  9. 9.0 9.1 9.2 "BashFAQ/061 - Greg's Wiki". mywiki.wooledge.org. Archived from the original on March 2, 2021. Retrieved 2021-03-01.
  10. "Is there a way to download the presumably initial bash source bash-0.99?". unix.stackexchange.com.
  11. 11.0 11.1 11.2 Richard Stallman (forwarded with comments by Chet Ramey) (February 10, 1988). "जीएनयू + बीएसडी = ?". Newsgroupcomp.unix.questions. Usenet: 2362@mandrill.CWRU.Edu. Archived from the original on December 28, 2021. Retrieved December 28, 2021. डेढ़ साल के लिए, जीएनयू खोल "बस पूरा हो गया" था। लेखक ने जो किया था उसे पूरा करने के लिए बार-बार वादे किए, और उन्हें कभी नहीं रखा। अंत में मुझे विश्वास नहीं हो रहा था कि वह कभी भी कुछ भी प्रदान करेगा। इसलिए फाउंडेशन के स्टाफ सदस्य ब्रायन फॉक्स अब बॉर्न शेल की नकल लागू कर रहे हैं।
  12. Hamilton, Naomi (May 30, 2008), "The A-Z of Programming Languages: BASH/Bourne-Again Shell", Computerworld: 2, archived from the original on July 6, 2011, retrieved March 21, 2011, When Richard Stallman decided to create a full replacement for the then-encumbered Unix systems, he knew that he would eventually have to have replacements for all of the common utilities, especially the standard shell, and those replacements would have to have acceptable licensing.
  13. 13.0 13.1 Brian Fox (forwarded by Leonard H. Tower Jr.) (June 8, 1989). "बैश बीटा रिलीज़ में है!". Newsgroupgnu.announce. Archived from the original on May 4, 2013. Retrieved October 28, 2010.
  14. 14.0 14.1 Warren, Tom (June 4, 2019). "Apple macOS Catalina में डिफ़ॉल्ट शेल के रूप में बैश को zsh से बदल देता है". The Verge. Archived from the original on June 10, 2019. Retrieved June 13, 2019.
  15. Torvalds, Linus Benedict (August 1991). "like.the.minis". Retrieved 2009-09-06. मैंने वर्तमान में बैश (1.08) और जीसीसी (1.40) को पोर्ट किया है, और चीजें काम करने लगती हैं।
  16. "विंडोज 10 पर बैश शेल कमांड-लाइन टूल कैसे इंस्टॉल करें". September 28, 2016. Archived from the original on November 20, 2016. Retrieved November 20, 2016.
  17. Hoffman, Chris. "विंडोज 11 पर लिनक्स के लिए विंडोज सबसिस्टम कैसे स्थापित करें". How-To Geek (in English). Retrieved 2022-10-12.
  18. "उपयोगकर्ता पर्यावरण सुविधा परिवर्तन". Oracle. Archived from the original on June 12, 2018. Retrieved June 8, 2018.
  19. 19.0 19.1 Hughes, Matthew (2019-06-04). "MacOS कैटालिना बैश के बजाय Zsh का उपयोग क्यों करती है? लाइसेंसिंग". The Next Web (in English). Archived from the original on December 31, 2020. Retrieved 2021-01-12.
  20. "मुझे लगभग एक Linux संपादक और कंपाइलर मिल गया है". Dr. Dobb's. Archived from the original on March 2, 2021. Retrieved 2020-09-12.
  21. Richard Stallman (November 12, 2010). "About the GNU Project". Free Software Foundation. Archived from the original on April 24, 2011. Retrieved March 13, 2011. "Bourne Again Shell" is a play on the name Bourne Shell, which was the usual shell on Unix.
  22. Gattol, Markus (March 13, 2011), Bourne-again Shell, archived from the original on March 9, 2011, retrieved March 13, 2011, The name is a pun on the name of the Bourne shell (sh), an early and important Unix shell written by Stephen Bourne and distributed with Version 7 Unix circa 1978, and the concept of being "born again".
  23. Chazelas, Stephane (4 October 2014). "oss-sec मेलिंग सूची संग्रह". Seclists.org. Archived from the original on October 6, 2014. Retrieved 4 October 2014.
  24. Leyden, John (September 24, 2014). "पैच बैश नाउ: 'शेलशॉक' बग ब्लास्ट OS X, Linux सिस्टम वाइड ओपन". The Register. Archived from the original on October 16, 2014. Retrieved September 25, 2014.
  25. Perlroth, Nicole (September 25, 2014). "सुरक्षा विशेषज्ञ बैश में 'शेलशॉक' सॉफ्टवेयर बग के महत्वपूर्ण होने की अपेक्षा करते हैं". The New York Times. Archived from the original on April 5, 2019. Retrieved September 25, 2014.
  26. Seltzer, Larry (29 September 2014). "शेलशॉक हार्टब्लीड को महत्वहीन बना देता है". ZDNet. Archived from the original on May 14, 2016.
  27. Brian Fox (August 29, 1996), shell.c, Free Software Foundation, archived from the original on September 28, 2018, retrieved November 1, 2010, Birthdate: Sunday, January 10th, 1988. Initial author: Brian Fox
  28. Richard Stallman (October 3, 2010). "About the GNU Project". Free Software Foundation. Archived from the original on April 24, 2011. Retrieved March 21, 2011. Free Software Foundation employees have written and maintained a number of GNU software packages. Two notable ones are the C library and the shell. … We funded development of these programs because the GNU Project was not just about tools or a development environment. Our goal was a complete operating system, and these programs were needed for that goal.
  29. len (g...@prep.ai.mit.edu) (April 20, 1993). "जनवरी 1993 जीएनयू का बुलेटिन". Newsgroupgnu.announce. Usenet: gnusenet930421bulletin@prep.ai.mit.edu. Archived from the original on March 2, 2021. Retrieved October 28, 2010.
  30. Ramey, Chet (August 1, 1994). "बैश - GNU शेल (प्रतिबिंब और सीखे गए सबक)". Linux Journal. Archived from the original on December 5, 2008. Retrieved November 13, 2008.
  31. Chet Ramey (October 31, 2010), Dates in your Computerworld interview, archived from the original on July 20, 2012, retrieved October 31, 2010
  32. Chet Ramey (June 12, 1989). "बैश 0.99 फिक्स और सुधार". Newsgroupgnu.bash.bug. Archived from the original on November 10, 2012. Retrieved November 1, 2010.
  33. Chet Ramey (July 24, 1989). "कुछ बैश-1.02 फिक्स". Newsgroupgnu.bash.bug. Archived from the original on November 10, 2012. Retrieved October 30, 2010.
  34. Brian Fox (March 2, 1990). "बैश 1.05 की उपलब्धता". Newsgroupgnu.bash.bug. Archived from the original on November 10, 2012. Retrieved October 30, 2010.
  35. Bresnahan, Christine; Blum, Richard (April 2015). CompTIA Linux+ Linux प्रोफेशनल इंस्टीट्यूट स्टडी गाइड द्वारा संचालित: परीक्षा LX0-103 और परीक्षा LX0-104 (3rd ed.). John Wiley & Sons, Inc. p. 5. ISBN 978-1-119-02122-3. Archived from the original on March 2, 2021. Retrieved June 6, 2016. लिनक्स में, अधिकांश उपयोगकर्ता बैश चलाते हैं क्योंकि यह सबसे लोकप्रिय शेल है।
  36. Danesh, Arman; Jang, Michael (February 2006). मास्टरिंग लिनक्स. John Wiley & Sons, Inc. p. 363. ISBN 978-0-7821-5277-7. Archived from the original on March 2, 2021. Retrieved June 6, 2016. बॉर्न अगेन शेल (बैश) लिनक्स वितरण के साथ स्थापित सबसे आम शेल है।
  37. Foster-Johnson, Eric; Welch, John C.; Anderson, Micah (April 2005). शेल स्क्रिप्टिंग की शुरुआत. John Wiley & Sons, Inc. p. 6. ISBN 978-0-7645-9791-6. Archived from the original on March 2, 2021. Retrieved June 6, 2016. बैश अब तक का सबसे लोकप्रिय शेल है और Linux और Mac OSX सिस्टम पर डिफ़ॉल्ट शेल बनाता है।
  38. "अपने Mac पर zsh को डिफ़ॉल्ट शेल के रूप में उपयोग करें - Apple सहायता". Archived from the original on December 2, 2019. Retrieved 1 July 2019.
  39. "नए जीएनवी पैकेजों को स्थापित करना". Archived from the original on October 3, 2020. Retrieved 2020-09-04.
  40. "संगतता सबसिस्टम". Archived from the original on September 23, 2020. Retrieved 2020-09-04.
  41. Juliana, Cino (10 June 2017). "Linux बैश निकास स्थिति और बैश में निकास स्थिति कैसे सेट करें - Techolac". Archived from the original on June 21, 2019. Retrieved 21 June 2019.
  42. Huzaifa Sidhpurwala (2014-09-24). "बैश विशेष रूप से तैयार किए गए पर्यावरण चर कोड इंजेक्शन हमले". Red Hat. Archived from the original on September 25, 2014. Retrieved September 25, 2014.
  43. "बैश संदर्भ मैनुअल". www.gnu.org. Archived from the original on March 15, 2018. Retrieved March 27, 2018.
  44. "बैश परिवर्तन [बैश हैकर्स विकी (DEV 20200708T2203)]". wiki-dev.bash-hackers.org. Archived from the original on September 23, 2019. Retrieved September 23, 2019.
  45. "डिबगिंग बैश स्क्रिप्ट". tldp.org. Archived from the original on November 4, 2018. Retrieved November 20, 2018.
  46. "बैश संदर्भ मैनुअल". www.gnu.org. Archived from the original on September 15, 2019. Retrieved September 15, 2019.
  47. "बैश 2.x/3.x के साथ अधिक उत्पादक रूप से कार्य करना". www.caliban.org. Archived from the original on June 29, 2018. Retrieved June 21, 2018.
  48. "6.11 Bash POSIX Mode", The GNU Bash Reference Manual, for Bash, Version 4.1, December 23, 2009, archived from the original on December 3, 2010, retrieved October 26, 2010
  49. "उन्नत बैश-स्क्रिप्टिंग गाइड". www.tldp.org. Section 37.2 (Bash, version 3). Archived from the original on May 5, 2017. Retrieved 2017-03-05.
  50. "बैश, संस्करण 4". tldp.org. Archived from the original on July 1, 2018. Retrieved June 25, 2018.
  51. "Arrays (बैश संदर्भ मैनुअल)". www.gnu.org. Archived from the original on July 11, 2018. Retrieved July 4, 2018.
  52. "macos - OSX पर बैश को संस्करण 4.0 में अपडेट करें". Ask Different. Archived from the original on June 25, 2018. Retrieved June 25, 2018.
  53. 53.0 53.1 Mendel Cooper. "पोर्टेबिलिटी मुद्दे". The Linux Documentation Project. ibiblio.org. Archived from the original on January 27, 2012. Retrieved January 26, 2012.
  54. 54.0 54.1 "10. फाइलें". Debian Policy Manual v4.5.0.2. Archived from the original on May 12, 2020. Retrieved May 11, 2020.
  55. "लिनक्स, मैकओएस और बैश में दिनांक और समय को कैसे प्रारूपित करें?". Shell Tips!. Archived from the original on June 3, 2020. Retrieved June 3, 2020.
  56. checkbashisms(1) – Linux General Commands Manual
  57. shellcheck(1) – Linux General Commands Manual
  58. "पोर्टेबल खोल". Autoconf. Archived from the original on March 2, 2021. Retrieved 20 January 2020.
  59. "बैश सहायता - एक बैश ट्यूटोरियल". Hypexr.org. October 5, 2012. Archived from the original on March 2, 2021. Retrieved July 21, 2013.
  60. "बैश संदर्भ मैनुअल". www.gnu.org. Archived from the original on March 15, 2018. Retrieved March 27, 2018.
  61. bashbug(1) Archived October 2, 2018, at the Wayback Machine, die.net
  62. "Linux / Unix Command: bashbug" Archived October 6, 2014, at the Wayback Machine, apple.com
  63. "बैश संदर्भ मैनुअल". tiswww.case.edu.
  64. "बैश 2.x/3.x के साथ अधिक उत्पादक रूप से कार्य करना". www.caliban.org. Archived from the original on June 29, 2018. Retrieved June 21, 2018.
  65. "/gnu/bash का अनुक्रमणिका". ftp.swin.edu.au. Archived from the original on March 8, 2020. Retrieved September 15, 2019.
  66. 66.0 66.1 "प्रोग्राम करने योग्य पूर्णता का परिचय". tldp.org. Retrieved 2022-01-21.
  67. "github version history NEWS v5.0". GitHub (in English). Archived from the original on May 4, 2022. Retrieved 2021-03-01.
  68. "Bash changes [Bash Hackers Wiki]". Archived from the original on March 18, 2020. Retrieved November 25, 2019.
  69. "Bash-5.0 release available". lists.gnu.org. Archived from the original on November 8, 2020. Retrieved 2021-03-01.


इस पेज में लापता आंतरिक लिंक की सूची

  • सोलारिस (ऑपरेटिंग सिस्टम)
  • यात्रा
  • भाषा (कंप्यूटर विज्ञान)
  • सी खोल
  • बहाव को काबू करें
  • पुनर्जन्म
  • हमला (कंप्यूटिंग)
  • अल्मक्विस्ट खोल
  • से
  • cygwin
  • मनमाना कोड निष्पादन
  • पर्यावरणपरिवर्ती तारक
  • चाबी दबाएं
  • मानक त्रुटि धारा
  • मानक बाहर
  • साहचर्य सरणियाँ
  • खिड़की प्रबंधक
  • पोर्टेबिलिटी (कंप्यूटर विज्ञान)

बाहरी संबंध