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

From Vigyanwiki
Revision as of 19:59, 7 January 2023 by alpha>Artiverma
बैश
Original author(s)ब्रायन फॉक्स
Developer(s)चेत रमी[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यूनिक्स शेल, कमांड भाषा
Licenseतब से4.0: GPL-3.0-or-later[6]
1.11? to 3.2: [[जीएनयू जनरल पब्लिक लाइसेंस
  1. Version 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] स्टॉलमैन और फ्री सॉफ्टवेयर फाउंडेशन ने फ्री शैल पर विचार किया जो सम्मलित शैल स्क्रिप्ट को BSD और GNU कोड से निर्मित पूर्णतया मुक्त प्रणाली के लिए रणनीतिक रूप से चला सकता है यह उन कुछ परियोजनाओं में से था जिसमें फॉक्स ने काम किया था और उन्होंने स्वयं वित्त पोषित किया था। फॉक्स के साथ एफएसएफ के कर्मचारी के रूप में काम करना।[11][28] फ़ॉक्स ने 8 जून 1989 को बैश संस्करण .99 को बीटा के रूप में प्रस्तावित किया,[13]और 1992 से [29] 1994 के मध्य,[30] जब उन्हें एफएसएफ से हटा दिया गया, तब तक वे प्राथमिक अनुरक्षक बने रहे।[31] तब उनका उत्तरदायित्व दूसरे शुरुआती योगदानकर्ता चेत रमी को दी गई।[32][33][34]

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

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


विशेषताएं

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

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

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

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

बैश दस्तावेजों का समर्थन करता है। चूंकि संस्करण 2.05b बैश <<< ऑपरेटर का उपयोग करके यहां स्ट्रिंग से मानक इनपुट को पुनर्निर्देशित कर सकता है ।

बैश 3.0 पर्ल के स्मरण प्रारूप का उपयोग करके इस प्रक्रिया में नियमित अभिव्यक्ति संघ का समर्थन करता है।[49]

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



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

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


$ echo a{p,c,d,b}e

ape ace ade abe

$ इको {a,b,c}{d,e,f}

विज्ञापन ad ae af bd be bf cd ce cf

उपयोगकर्ताओं को पोर्टेबल शैल आलेख में ब्रेस विस्तार का उपयोग नहीं करना चाहिए, क्योंकि बॉर्न शैल समान आउटपुट नहीं देता है।

$ पारंपरिक शैल आउटपुट का उत्पादन नहीं करता हैI

$ /bin/sh -c 'echo a{p,c,d,b}e'

a{p,c,d,b}e

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

{जेपीजी, जेपीईजी, पीएनजी} तक विस्तृत होता है*.जेपीजी*.जेपीजी*.जेपीजी जिसके बाद,

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

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

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


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

$ echo {1..10}

1 2 3 4 5 6 7 8 9 10

$ echo {01..10}

01 02 03 04 05 06 07 08 09 10

$ echo file {1..4}.txt

file1.txt file2.txt file3.txt file4.txt

$ echo {a..e}

a b c d e

$ echo {1..10..3}

1 4 7 10

$ echo {a..j..3}

a d g ja d g j

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

$ प्रारंभ = 1; अंत = 10

$ echo {$शुरू..$अंत} मूल्यांकन क्रम के कारण विस्तार करने में विफल रहता है

{1..10}

$ eval echo {$शुरू..$अंत} चर विस्तार तब होता है जिसके परिणामस्वरूप स्ट्रिंग का मूल्यांकन किया जाता है

1 2 3 4 5 6 7 8 9 10

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

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

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

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

[-r ~/.profile] &&। ~/.रूपरेखा स्थापित पर्यावरण, एक बार, केवल बॉर्न-sh प्रारूप

यदि [ -n "$PS1" ] ; तब क्या हम अंतर सक्रिय हैं?

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

fi "यदि" ब्लॉक का अंत

बैश स्थापित ऑपरेटिंग प्रणाली की समस्या

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

सुवाह्यता

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

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

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


कुंजीपटल अल्प मार्ग

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



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

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

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

कमांड1; कमांड2

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

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

command1 &

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

कमांड1 और कमांड2

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

इस प्रक्रिया को रोका जा सकता है और जब प्रक्रिया अग्रभूमि में चल रही हो तो Ctrl+z लिख करके बैश पर नियंत्रण लौटाया जा सकता है। ।[60]

सभी प्रक्रियाओं की सूची, दोनों पृष्ठभूमि में रुकी हुई, नौकरियोंचलकर प्राप्त की जा सकती है :

$ नौकरियां

[1] - रनिंग कमांड1

[2] + रुका हुआ कमांड2

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

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

kill %1

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

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

cd "$SOMEWHERE" && ./do_something || echo "An error occurred" >&2

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

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

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

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


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

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

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

रिलीज इतिहास

संस्करण विमोचन तिथि जारी नोट्‍स
बैश-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. Template:समाचार उद्धृत करें
  2. रमी, Chet (2021-04-20). "जीएनयू बॉर्न-अगेन शेल". प्रौद्योगिकी अवसंरचना सेवाएँ. 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] जीएनयू जनरल पब्लिक लाइसेंस जैसा कि फ्री सॉफ्टवेयर फाउंडेशन द्वारा प्रकाशित किया गया है,version 3 लाइसेंस का (या बाद का संस्करण).
  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. "प्रोग्राम करने योग्य पूर्णता का परिचय". 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.


बाहरी संबंध