अधिकांश लिनक्स उपयोगकर्ता अक्सर ऑपरेटिंग सिस्टम के आंतरिक कामकाज से अनजान होते हैं। आप लंबे समय से शेल पर लिनक्स कमांड चला रहे होंगे, लेकिन क्या आपने कभी सोचा है कि जब आप हिट करते हैं तो पर्दे के पीछे क्या होता है प्रवेश करना?

अंत तक, आपको इस बात की संक्षिप्त समझ होगी कि शेल लिनक्स में टाइप किए गए कमांड को कैसे प्रोसेस करता है।

कमांड को संसाधित करना

जब आप एक कमांड दर्ज करते हैं, तो शेल सबसे पहले पूरे कमांड को "टोकन" में तोड़ देता है। शेल तब कमांड लाइन में पहले टोकन से संबंधित प्रोग्राम नाम की तलाश करेगा।

यदि यह इसे परिभाषित खोज पथ में किसी भी निर्देशिका में नहीं पाता है $PATH पर्यावरण चर या स्थानीय निर्देशिका में के साथ .\ ऑपरेटर, या यह a. नहीं है खोल उपनाम या खोल समारोह, खोल एक त्रुटि देगा। यदि यह एक वैध कमांड पाता है, तो शेल अन्य टोकन में से प्रत्येक के माध्यम से जाएगा और तय करेगा कि यह एक चर, एक शेल पैरामीटर या कमांड के लिए एक तर्क है।

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

जब शेल ने किसी भी पैरामीटर या चर का विस्तार किया है, तो यह कमांड स्ट्रिंग के साथ कमांड को चलाएगा, प्रोग्राम को इसके तर्कों के साथ चलाएगा। शेल यह निर्धारित नहीं करता है कि कोई तर्क मान्य है या नहीं। यह कमांड का काम है।

कमांड चलाना

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

उदाहरण के लिए, जब आप दौड़ते हैं एलएस कमांड, शेल प्रक्रिया का उपयोग करके खुद को कांटा जाएगा कांटा() विधि और एक और खोल उदाहरण बनाएं। सिस्टम पर चल रही दो शेल प्रक्रियाओं में से, अतिरिक्त शेल ls का उपयोग करके निष्पादित करेगा निष्पादन () फ़ंक्शन, खुद को ls कमांड के उदाहरण में बदलना।

इस बीच, मूल शेल कमांड के पूरा होने की प्रतीक्षा करता है। यही कारण है कि आप जॉब कंट्रोल का उपयोग जॉब को निलंबित करने और शेल में बैकग्राउंड में जॉब चलाने के लिए कर सकते हैं।

सम्बंधित: लिनक्स में एक प्रक्रिया क्या है?

निकास स्थिति की रिपोर्ट करना

Linux कमांड रिपोर्ट करता है कि वे अपनी निकास स्थिति के माध्यम से सफलतापूर्वक चले या नहीं। जैसा कि नाम से पता चलता है, प्रोग्राम चलने के बाद उनकी निकास स्थिति की रिपोर्ट करते हैं। वे इसे के माध्यम से करते हैं $? पर्यावरण चर, जिसमें अंतिम रन कमांड की निकास स्थिति होती है।

परंपरा के अनुसार, 0 की निकास स्थिति एक सफल निष्पादन को इंगित करती है, जबकि 0 के अलावा कुछ भी आमतौर पर एक त्रुटि का मतलब है। आपका शेल कमांड लाइन पर एक गैर-शून्य निकास स्थिति का संकेत भी दे सकता है जो इस बात पर निर्भर करता है कि आपका प्रॉम्प्ट कैसे कॉन्फ़िगर किया गया है।

उपरोक्त स्क्रीनशॉट एक उदाहरण है जो एक अनुकूलित Zsh प्रॉम्प्ट दिखा रहा है जो एक कमांड के कारण 127 की त्रुटि निकास स्थिति दिखाता है जो मौजूद नहीं है।

अब आप जानते हैं कि लिनक्स कमांड कैसे काम करता है

अब जब आप इस बात से अवगत हैं कि लिनक्स शेल एक कमांड को कैसे प्रोसेस करता है, फोर्क करता है और खुद को निष्पादित करता है, और प्रोग्राम कैसे उनकी निकास स्थिति की रिपोर्ट करते हैं, तो आप कमांड लाइन का अधिक प्रभावी ढंग से उपयोग कर सकते हैं।

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

साझा करनाकलरवईमेल
कौन सा लिनक्स शेल सबसे अच्छा है? 5 आम गोले की तुलना

लिनक्स बैश शेल विकल्प की तलाश है? यहाँ एक रैंडडाउन है जिसमें से लिनक्स शेल सबसे अच्छा है: tsch, fish, CornShell, और Z Shell।

आगे पढ़िए

संबंधित विषय
  • लिनक्स
  • लिनक्स कमांड
  • लिनक्स बैश शेल
लेखक के बारे में
डेविड डेलोनी (57 लेख प्रकाशित)

डेविड प्रशांत नॉर्थवेस्ट में स्थित एक स्वतंत्र लेखक हैं, लेकिन मूल रूप से खाड़ी क्षेत्र से हैं। वह बचपन से ही टेक्नोलॉजी के शौकीन रहे हैं। डेविड की रुचियों में पढ़ना, गुणवत्ता वाले टीवी शो और फिल्में देखना, रेट्रो गेमिंग और रिकॉर्ड संग्रह करना शामिल है।

डेविड डेलोनी की ओर से अधिक

हमारे न्यूज़लेटर की सदस्यता लें

तकनीकी युक्तियों, समीक्षाओं, निःशुल्क ई-पुस्तकों और अनन्य सौदों के लिए हमारे न्यूज़लेटर से जुड़ें!

सब्सक्राइब करने के लिए यहां क्लिक करें