Computer >> कंप्यूटर >  >> समस्या निवारण >> Linux

लिनक्स पर एलियासेस और शेल फंक्शंस कैसे बनाएं?

यदि आप जीएनयू/लिनक्स सिस्टम का अधिकाधिक लाभ उठाना चाहते हैं और कमांड लाइन पर जितना अधिक काम करते हैं, तो कमांड प्रॉम्प्ट और शेल स्क्रिप्ट को जानना अभी भी आवश्यक है, जितना अधिक उपयोग किया जा रहा है, उतना ही अधिक कमांड का उपयोग किया जा रहा है। उपलब्ध कमांड का छोटा सबसेट। अधिकांश कार्य आदतन हैं और उपयोगकर्ता आप इन्हें हर दिन उसी तरह चला सकते हैं।

लिनक्स पर एलियासेस और शेल फंक्शंस कैसे बनाएं?

जबकि कई सबसे सामान्य कमांड उपयोगिताओं के निर्माताओं ने संक्षिप्त नामों का उपयोग करके बाहरी टाइपिंग को खत्म करने का प्रयास किया है उदा। सूची के बजाय हम “ls . टाइप करते हैं ” और परिवर्तन-निर्देशिका के बजाय हम “cd . टाइप करते हैं " इसके अतिरिक्त, कई लिनक्स उपयोगकर्ताओं को अक्सर एक कमांड का बार-बार उपयोग करने की आवश्यकता होती है। एक ही कमांड को बार-बार टाइप करने/कॉपी करने से उत्पादकता कम हो जाएगी और उपयोगकर्ता को वास्तविक कार्य से विचलित कर देगा।

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

आप अपनी विशिष्ट आवश्यकताओं के अनुकूल और दोहराए जाने वाले कार्यों के बोझ को कम करने के लिए अपने आदेशों को परिभाषित कर सकते हैं।

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

उपनाम और फ़ंक्शन के बीच का अंतर जटिलता और पैमाने में से एक है। कोड के लंबे और अधिक विस्तृत खंड रखने में स्क्रिप्ट बेहतर होती है। उपनाम छोटे, अधिक संक्षिप्त, आदेशों के सेट रखने के लिए एकदम सही हैं।

शैल उपनाम

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

संभावना है कि आपने पहले ही उपनाम . का उपयोग कर लिया होगा Linux सिस्टम पर क्योंकि अधिकांश Linux वितरण डिफ़ॉल्ट रूप से “.bashrc” में कम से कम कुछ लोकप्रिय उपनाम जोड़ते हैं उपयोगकर्ता खाते की फ़ाइल।

उपनामों से परे:शेल कार्य करता है

समान लेकिन समान कोड वाले ब्लॉक को उपनाम द्वारा प्रतिस्थापित नहीं किया जा सकता है। वे त्रुटियों को संभाल नहीं सकते हैं और न ही कस्टम निकास कोड वापस कर सकते हैं, प्रवाह नियंत्रण नहीं कर सकते हैं, या चर का उपयोग नहीं कर सकते हैं। यदि आपको इनमें से कोई भी करने की आवश्यकता है, तो शेल फ़ंक्शंस का उपयोग करने का समय आ गया है।

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

उपनामों का सिंटैक्स:

बैश में उपनाम बनाना बहुत सीधा है। वाक्य रचना इस प्रकार है:

उर्फ उर्फ_नाम=“कमांड_टू_रन”

मौजूदा सत्र में एक नया बैश उपनाम बनाने के लिए

  1. उपनाम . टाइप करें "
  2. फिर उपनाम का नाम घोषित करें
  3. एक समान चिह्न के बाद
  4. और वह कमांड जो उपनाम कहे जाने पर चलेगी।

कमांड को उद्धरणों में संलग्न किया जाना चाहिए और समान चिह्न के आसपास कोई रिक्ति नहीं होनी चाहिए। यहां स्पेस कमांड को तोड़ देगा। प्रत्येक उपनाम को एक नई लाइन पर घोषित किया जाना चाहिए।

आइए इसे उदाहरण से स्पष्ट करते हैं। Linux कमांड लाइन पर, सबसे अधिक उपयोग की जाने वाली कमांड में से एक है “ls " अधिकतर “ls” कमांड का प्रयोग “la . के साथ किया जाता है ” स्विच जो लंबी सूची के प्रारूप में छिपी हुई फाइलों वाली सभी फाइलों और निर्देशिकाओं को सूचीबद्ध करेगा। अब हम एक साधारण बैश उपनाम बनाएंगे “ll ” जो ls -la . का शॉर्टकट होगा   आदेश।

  1. एक टर्मिनल विंडो खोलें
  2. प्रकार:
    alias ll="ls -la"

    &दबाएं दर्ज करें

    लिनक्स पर एलियासेस और शेल फंक्शंस कैसे बनाएं?
  3. अब कंसोल में टाइप करें “ll ” और दर्ज करें . दबाएं लिनक्स पर एलियासेस और शेल फंक्शंस कैसे बनाएं?
  4. आउटपुट वही होगा जो ls -la टाइप करने पर होगा।

उपरोक्त परिभाषित उपनाम "ll' केवल वर्तमान शेल सत्र में उपलब्ध होगा। यदि आप सत्र बंद करते हैं या किसी अन्य टर्मिनल से शुरू की गई एक नई सत्र विंडो बंद करते हैं तो ऊपर परिभाषित उपनाम "ll" उपलब्ध नहीं होगा।

लिनक्स पर एलियासेस और शेल फंक्शंस कैसे बनाएं?

हम बाद में इस बारे में चर्चा करेंगे कि उपनाम को लगातार कैसे बनाया जाए। यहाँ उदाहरण बैश शेल के लिए हैं, लेकिन सभी अवधारणाएँ और अधिकांश कोड अन्य शेल के लिए भी मान्य हैं।

पूर्वनिर्धारित उपनाम

कुछ उपनाम आपके लिए पूर्वनिर्धारित हैं। सिस्टम में परिभाषित सभी उपनामों की सूची जानने के लिए, हम बिना किसी पैरामीटर के "उपनाम" कमांड का उपयोग करेंगे:

alias

उबंटू परीक्षण मशीन पर ये उपनाम हैं जिस पर इस लेख पर शोध किया गया था। साथ ही, कोई भी कस्टम-परिभाषित उपनाम, इस सूची में भी दिखाई देगा।

एलएस कमांड के लिए अलग-अलग उपनामों का एक समूह है, और उपनामों का एक समूह है जो कमांड के ग्रेप परिवार को रंग आउटपुट प्रदान करता है उदा। ऊपर बताए गए उपनामों के साथ, जब भी आप टाइप करें:

grep

इसकी व्याख्या इस प्रकार की जाएगी:

grep --color=auto

यह उपनामों के साथ एक महत्वपूर्ण बिंदु दिखाता है। उनका मौजूदा कमांड के समान नाम हो सकता है। वे मूल आदेश को अपने भीतर भी समाहित कर सकते हैं।

यहां grep उपनाम की परिभाषा दी गई है।

alias grep='grep --color=auto'
  1. उपनाम कमांड का उपयोग उपनाम को परिभाषित करने के लिए किया जाता है।
  2. उपनाम का नाम आगे दिया गया है। इस उदाहरण में, यह “grep” है।
  3. बराबर का चिह्न उपनाम के नाम को शरीर . से जोड़ता है उपनाम का। बहुत ही साधारण उपनामों को छोड़कर सभी के लिए, उपनाम का मुख्य भाग एकल उद्धरण चिह्नों के भीतर संलग्न होता है '।
  4. उपनाम का मुख्य भाग वह खंड है जिसे कमांड लाइन पर उपनाम का उपयोग करने पर निष्पादित किया जाता है।
  5. इस उपनाम का मुख्य भाग केवल –color=auto विकल्प के साथ grep कमांड को कॉल करता है।

चेतावनी उपनाम

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

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

यदि आदेश अपेक्षित रूप से पूरा हुआ है, तो सिस्टम अलर्ट में आइकन एक छोटी टर्मिनल विंडो है। यदि कमांड ने एक त्रुटि कोड लौटाया है, तो सिस्टम अलर्ट में आइकन एक लाल त्रुटि आइकन है।

sleep 5; alert
लिनक्स पर एलियासेस और शेल फंक्शंस कैसे बनाएं?

पांच सेकंड के बाद, हमें यह सिस्टम अलर्ट दिखाई देता है:

लिनक्स पर एलियासेस और शेल फंक्शंस कैसे बनाएं?

आइकन एक छोटी टर्मिनल विंडो है, जिसका अर्थ है कि सब कुछ ठीक हो गया। आइए इसे फिर से एक कमांड के साथ आजमाएं जो हम जानते हैं कि विफल हो जाएगा:

DoomedToFail; alert
लिनक्स पर एलियासेस और शेल फंक्शंस कैसे बनाएं?

हमारे सिस्टम अलर्ट में अब एक त्रुटि आइकन है।

लिनक्स पर एलियासेस और शेल फंक्शंस कैसे बनाएं?

एक मामूली उपनाम को परिभाषित करना

जैसा कि हमने देखा, उपनाम को परिभाषित करने के लिए, हम उपनाम कमांड का उपयोग करते हैं।

हम स्पष्ट आदेश के लिए एक छद्म नाम बनाने जा रहे हैं। हमारे उपनाम को cls कहा जाएगा और यह स्पष्ट आदेश को कॉल करेगा।

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

alias cls=clear

ls -l

cls
लिनक्स पर एलियासेस और शेल फंक्शंस कैसे बनाएं?

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

“.bashrc” फ़ाइल के उपयोग द्वारा उपनामों को स्थायी बनाने के लिए

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

सिंटैक्स हाइलाइटिंग के साथ ".bashrc" फ़ाइल की सामग्री देखने के लिए अपने होम फोल्डर में निम्न कमांड टाइप करें।

gedit .bashrc
लिनक्स पर एलियासेस और शेल फंक्शंस कैसे बनाएं?

यह gedit  . लॉन्च करेगा संपादक जिसमें ".bashrc" फ़ाइल लोड हो।

लिनक्स पर एलियासेस और शेल फंक्शंस कैसे बनाएं?

हाइलाइट किए गए क्षेत्र दो ऐसे क्षेत्र दिखाते हैं जहां उपनाम परिभाषित किए गए हैं।

दस्तावेज़ के माध्यम से स्क्रॉल करने से उपनाम से संबंधित दो अन्य अनुभाग प्रकट होंगे:

लिनक्स पर एलियासेस और शेल फंक्शंस कैसे बनाएं?

इनमें से पहला अलर्ट उपनाम की परिभाषा है। दूसरा एक अगर कथन है। इसका अनुवाद है, “यदि फ़ाइल “.bash_aliases " मौजूद है, इसमें पढ़ें।"

यदि आपके पास केवल कुछ उपनाम हैं जिन्हें आप परिभाषित करना चाहते हैं, तो आप उन्हें अपनी ".bashrc" फ़ाइल में डाल सकते हैं। उन्हें ls उपनाम वाले अनुभाग के नीचे रखें।

यदि आप बहुत सारे उपनाम बनाने जा रहे हैं, या आप अपने उपनामों को अपनी फ़ाइल में इनकैप्सुलेट करने का विचार पसंद करते हैं, तो आप उन्हें अपनी ".bash_aliases" फ़ाइल में परिभाषित कर सकते हैं। उन्हें अपनी ".bash_aliases" फ़ाइल में बनाने का एक फायदा यह है कि आप गलती से ".bashrc" फ़ाइल में किसी भी सेटिंग को नहीं बदल सकते हैं। एक और फायदा यह है कि आपके उपनाम आसानी से नए सिस्टम में कॉपी हो जाते हैं क्योंकि वे ".bashrc" फ़ाइल से अलग हो जाते हैं।

उपनाम का नाम इस तरह से रखा जाना चाहिए जो याद रखने में आसान हो। भविष्य के संदर्भ के लिए एक टिप्पणी जोड़ने की भी सिफारिश की जाती है।

.bash_aliases फ़ाइल में उपनाम संग्रहीत करना

".bash_aliases" फ़ाइल डिफ़ॉल्ट रूप से मौजूद नहीं है, आपको इसे बनाना होगा। आप इस कमांड से फाइल बना सकते हैं:

touch .bash_aliases
लिनक्स पर एलियासेस और शेल फंक्शंस कैसे बनाएं?

आइए फ़ाइल को संपादित करें और इसमें कुछ उपनाम जोड़ें। यह आदेश ".bash_aliases" फ़ाइल को जीएडिट संपादक में खोलेगा।

gedit .bash_aliases
लिनक्स पर एलियासेस और शेल फंक्शंस कैसे बनाएं?

हमने तीन उपनाम जोड़े हैं। पहला है हमारा cls  उपनाम जो हमने पहले इस्तेमाल किया था। अगले को h. . कहा जाता है और इतिहास कमांड को कॉल करने का एक संक्षिप्त तरीका है।

तीसरे उपनाम को ftc . कहा जाता है . यह "फ़ाइल प्रकार की गिनती" के लिए है।

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

जब हमने ".bash_aliases" फ़ाइल सहेज ली है, तो हम उम्मीद कर सकते हैं कि हमारे उपनाम लाइव और सुलभ होंगे। ऐसा नहीं है। उपनाम परिभाषाएं लाइव होने से पहले फ़ाइल को बैश खोल द्वारा पढ़ा जाना चाहिए। यह तब किया जाता है जब कोई इंटरैक्टिव शेल खोला जाता है।

हम बिल्ट-इन बैश शेल का भी उपयोग कर सकते हैं। फ़ाइल में कमांड को पढ़ने और निष्पादित करने के लिए। चूंकि हमारी ".bash_alias" फ़ाइल ".bashrc" संसाधित होने पर पढ़ी जाती है, इसलिए हमें ".bashrc" पर कॉल करके अपना परीक्षण करना चाहिए। इस तरह हम जांच सकते हैं कि ".bash_alias" फ़ाइल को ".bashrc" से कॉल किया गया है और हमारे उपनाम जीवित हैं और ठीक हैं।

हमने जिन आदेशों का उपयोग किया है वे हैं:

gedit .bash_aliases

".bash_aliases" फ़ाइल को संपादित करने के लिए।

. .bashrc

यह ".bashrc" के भीतर कमांड को पढ़ेगा और निष्पादित करेगा, जो ".bash_aliases" कहेगा।

ftc

इसे ftc उपनाम कहा जाएगा।

लिनक्स पर एलियासेस और शेल फंक्शंस कैसे बनाएं?

हमारा उपनाम प्रतिक्रिया करता है जिसका अर्थ है कि बैश ने ".bashrc" और ".bash_aliases" दोनों में पढ़ा है, और हमारे नए उपनाम अब लाइव हैं।

अब आप आगे बढ़ सकते हैं और ".bash_aliases" फ़ाइल में नए उपनाम जोड़ सकते हैं क्योंकि वे आपके सामने आते हैं। यदि आप स्वयं को एक या दो बार से अधिक कार्य करते हुए पाते हैं, तो इसके लिए एक उपनाम बनाने पर विचार करें।

उपनाम हटाना

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

इसका उपयोग करने के लिए, उस उपनाम का नाम दें जिसे आप चाहते हैं कि बैश भूल जाए। बैश को हमारे एफटीसी उपनाम को भूलने के लिए, यूनियास का उपयोग करें उदा। पहले इस्तेमाल किया गया "ll "कमांड:

unalias ll
लिनक्स पर एलियासेस और शेल फंक्शंस कैसे बनाएं?

आप अपने द्वारा परिभाषित उपनामों और पूर्वनिर्धारित उपनामों में से किसी को भी हटाने के लिए यूनियास का उपयोग कर सकते हैं।

अपने सिस्टम से सभी उपनामों को हटाने के लिए, -a (सभी) विकल्प का उपयोग करें:

unalias -a

हालाँकि, बैश की याददाश्त का नुकसान स्थायी नहीं होगा। अगली बार जब आप एक टर्मिनल विंडो खोलेंगे, तो "भूल गए" उपनाम वापस आ जाएंगे। उन्हें वास्तव में मिटा देने के लिए आपको उन्हें अपनी ".bashrc" और ".bash_alias" फ़ाइलों से निकालना होगा।

अगर आपको लगता है कि आप उन्हें कभी भी वापस पाना चाहेंगे, तो उन्हें अपनी ".bashrc" फ़ाइल से न हटाएं। इसके बजाय, प्रत्येक उपनाम पंक्ति की शुरुआत में हैश # जोड़कर उन पर टिप्पणी करें। अपनी “.bash_alias” फ़ाइल को अप्रभावी बनाने के लिए, उसका नाम बदलें। अगर आपकी ".bashrc" फ़ाइल इसे नहीं देख सकती है, तो वह इसे नहीं पढ़ पाएगी। अपने उपनामों को बहाल करने के लिए इन चरणों को उलटना एक मामूली मामला है।

किसी उपनाम को अस्थायी रूप से बायपास करने के लिए (जैसे कि हमने ls से ls -a को उपनाम दिया है), हम टाइप कर सकते हैं:

\ls

परिणामस्वरूप सामान्य कमांड को उपनामित संस्करण नहीं कहा जाएगा।

लिनक्स पर एलियासेस और शेल फंक्शंस कैसे बनाएं?

उपनाम आदेश के लिए सहायता:

  • –सहायता विकल्प :यह सहायता जानकारी प्रदर्शित करता है।

वाक्यविन्यास:

alias --help
लिनक्स पर एलियासेस और शेल फंक्शंस कैसे बनाएं?

शैल फ़ंक्शन

कभी-कभी एक उपनाम जो एक या अधिक तर्कों को स्वीकार कर सकता है, की आवश्यकता होती है, वह तब होता है जब बैश फ़ंक्शन का उपयोग किया जाता है।

वाक्यविन्यास

बैश फ़ंक्शन बनाना बहुत मुश्किल नहीं है। उन्हें निम्नलिखित दो भिन्न प्रारूपों में से किसी एक में घोषित किया जा सकता है:

function_name () {

  [commands]

}

या

function function_name {

  [commands]

}

हम इस दूसरे फॉर्म को एक लाइन में कंप्रेस कर सकते हैं और कमांड्स को सेमीकोलन से अलग कर सकते हैं। एक अर्धविराम होना चाहिए आखिरी कमांड के बाद भी आएं:

function_name () { command1; command2; }

लिका उपनाम, बैश शेल फ़ंक्शंस को ".bashrc" फ़ाइल के भीतर परिभाषित किया जा सकता है, लेकिन अक्सर उन्हें अपनी परिभाषा फ़ाइल में रखना अधिक आसान होता है। ".bash_aliases" फ़ाइल के लिए उपयोग किए गए सम्मेलन के बाद हम इसे ".bash_functions" कहेंगे।

इसका मतलब है कि हमें अपनी परिभाषाओं में पढ़ने के लिए ".bashrc" फ़ाइल को बताना होगा। हम ".bash_aliases" फ़ाइल में पढ़ने वाले कोड के स्निपेट को कॉपी और संशोधित कर सकते हैं। Gedit लॉन्च करें और ".bashrc" फ़ाइल को इस कमांड से लोड करें:

gedit .bashrc
लिनक्स पर एलियासेस और शेल फंक्शंस कैसे बनाएं?

आपको नीचे दिखाए गए हाइलाइट किए गए अनुभाग को जोड़ना होगा।

आप उपनाम अनुभाग को हाइलाइट कर सकते हैं और Ctrl + C दबा सकते हैं और फिर उस स्थान पर जा सकते हैं जहां आप नया अनुभाग चाहते हैं और टेक्स्ट की एक प्रति पेस्ट करने के लिए Ctrl + V दबाएं। फिर आपको केवल उन दो स्थानों को बदलना है जहां यह ".bash_aliases" को ".bash_functions" कहता है।

लिनक्स पर एलियासेस और शेल फंक्शंस कैसे बनाएं?

हम उन परिवर्तनों को सहेज सकते हैं और जीएडिट को बंद कर सकते हैं।

अब हम ".bash_functions" फ़ाइल बनाने और संपादित करने जा रहे हैं, और उसमें एक फ़ंक्शन परिभाषा डालेंगे।

touch .bash_functions

gedit .bash_functions
लिनक्स पर एलियासेस और शेल फंक्शंस कैसे बनाएं?

यह gedit में खाली “.bash_functions” फ़ाइल को खोलेगा।

हम ऊपर नामक एक साधारण फ़ंक्शन जोड़ने जा रहे हैं। up एक एकल कमांड लाइन पैरामीटर लेगा, जो एक अंक है। up फिर सीडी को कॉल करेगा .. इतनी बार। इसलिए, अगर आपने कमांड का इस्तेमाल किया है

up 2

up सीडी को दो बार कॉल करेगा .. दो बार और डायरेक्टरी ट्री में दो स्तरों को ऊपर ले जाएगा।

किसी फ़ंक्शन को परिभाषित करने के विभिन्न तरीके हैं। यहाँ एक है:

function up() {

फ़ंक्शन शब्द वैकल्पिक है। यदि आप एक परंपरावादी हैं, तो इसका उपयोग करें, यदि आप इसे टाइप करने से परेशान नहीं हो सकते हैं, तो इसे छोड़ दें।

जीएडिट में हमारा पूरा कार्य यहां दिया गया है:

लिनक्स पर एलियासेस और शेल फंक्शंस कैसे बनाएं?
function up() {

यह हमारे फ़ंक्शन परिभाषा की शुरुआत का प्रतीक है, और यह फ़ंक्शन को ऊपर नाम देता है।

levels=$1

यह एक वैरिएबल बनाता है जिसे स्तर . कहा जाता है और इसे पहले पैरामीटर के मान पर सेट करता है। जब वे फ़ंक्शन को कॉल करते हैं तो यह पैरामीटर उपयोगकर्ता द्वारा प्रदान किया जाने वाला अंक होगा। $1 का अर्थ है "पहला कमांड लाइन पैरामीटर।"

while [ "$levels" -gt "0" ]; do

फिर हम एक लूप दर्ज करते हैं जो तब "जब "मान . के रूप में अनुवादित होगा) "स्तरों . का " " सकारात्मक है या शून्य से बड़ा है, वही करें जो लूप के मुख्य भाग में है।"

लूप के शरीर के अंदर, हमारे पास दो आदेश हैं। वे हैं:

cd ..

डायरेक्टरी ट्री में एक स्तर ऊपर ले जाएँ।

levels=$(($levels - 1))

स्तरों को एक नए मान पर सेट करें, जो इसके वर्तमान मान से एक कम है।

फिर हम लूप के शीर्ष पर वापस जाते हैं, स्तरों के मान और शून्य के बीच की तुलना एक बार फिर की जाती है। यदि "स्तर" शून्य से अधिक है, तो लूप के शरीर को फिर से निष्पादित किया जाता है। यदि यह सकारात्मक नहीं है या शून्य से अधिक है, तो लूप समाप्त हो गया है, और हम किए गए कथन पर चले जाते हैं, और फ़ंक्शन समाप्त हो जाता है।

सहेजें ये परिवर्तन और बंद करें gedit

हम ".bashrc" में कमांड को पढ़ेंगे और निष्पादित करेंगे जो हमारी ".bash_functions" फ़ाइल में कमांड को पढ़ना और निष्पादित करना चाहिए।

. .bashrc
लिनक्स पर एलियासेस और शेल फंक्शंस कैसे बनाएं?

हम डायरेक्टरी ट्री में किसी स्थान पर जाकर और डाइरेक्टरी ट्री में "उच्च" बिंदु पर वापस जाने के लिए ऊपर का उपयोग करके फ़ंक्शन का परीक्षण कर सकते हैं।

cd ./work/backup/

up 2
लिनक्स पर एलियासेस और शेल फंक्शंस कैसे बनाएं?

समारोह काम करता है। हम ट्री में दो निर्देशिका स्तरों को ऊपर ले गए हैं।

ट्रैक को प्रकार के साथ रखना

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

आइए हमारे ftc  . पर टाइप का उपयोग करें उपनाम और हमारा अप फ़ंक्शन।

type ftc

type up
लिनक्स पर एलियासेस और शेल फंक्शंस कैसे बनाएं?

हमें उनकी परिभाषाओं के साथ एक बहुत उपयोगी अनुस्मारक मिलता है कि हर एक किस प्रकार का आदेश है।

संग्रह करना प्रारंभ करें

उपनाम और कार्य कमांड लाइन के आपके उपयोग को बहुत तेज कर सकते हैं। वे कमांड अनुक्रमों को छोटा कर सकते हैं, और वे आपको उन विकल्पों में सेंकने देते हैं जिनका आप हमेशा मानक आदेशों के साथ उपयोग करते हैं। हर बार जब आप निफ्टी वन-लाइनर या उपयोगी फ़ंक्शन देखते हैं, तो आप इसे अनुकूलित और वैयक्तिकृत कर सकते हैं, और फिर इसे अपनी ".bash_aliases" या ".bash_functions" फ़ाइलों में जोड़ सकते हैं। इनका व्यापक उपयोग शेल में आपके समय को अधिक मनोरंजक और कम जटिल बनाने में मदद कर सकता है।

संभावित विनाशकारी व्यवहार के साथ मौजूदा आदेशों को फिर से परिभाषित करने से सावधान रहना याद रखें। यहां तक ​​​​कि विपरीत करना और एक सुरक्षित संस्करण के लिए एक कमांड को अलियासिंग करना (उदाहरण के लिए, पुनरावर्ती रूप से हटाने से पहले हमेशा पुष्टि के लिए पूछना) एक बार जब आप इस पर भरोसा करने के लिए आते हैं, तो आप पहली बार इसके बिना सिस्टम पर वापस आ सकते हैं। . ऐसे उम्मीदवारों को खोजने के लिए जिनके लिए उपनाम बनाना अच्छा हो सकता है, अपने इतिहास को अपने सबसे अधिक उपयोग किए जाने वाले आदेशों के लिए खोजना एक अच्छा विचार हो सकता है।


  1. Bashrc अनुकूलन गाइड - उपनाम कैसे जोड़ें, कार्यों का उपयोग करें, और अधिक

    अपनी .bashrc फ़ाइल को अनुकूलित करने से आपके वर्कफ़्लो में बहुत सुधार हो सकता है और आपकी उत्पादकता बढ़ सकती है। .bashrc आपके Linux होम निर्देशिका में स्थित एक मानक फ़ाइल है। इस लेख में मैं आपको उपयोगी .bashrc विकल्प, उपनाम, फ़ंक्शन और बहुत कुछ दिखाऊंगा। .bashrc फ़ाइल को कॉन्फ़िगर करने के मुख्य लाभ

  1. लिनक्स में सरल शैल स्क्रिप्ट कैसे बनाएं

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

  1. कस्टम शैल फ़ंक्शंस और पुस्तकालयों को कैसे लिखें और उपयोग करें

    Linux में, शेल स्क्रिप्ट कई अलग-अलग तरीकों से हमारी मदद करती हैं, जिसमें कुछ सिस्टम व्यवस्थापन कार्यों को निष्पादित करना या स्वचालित करना, सरल कमांड लाइन टूल बनाना और बहुत कुछ शामिल हैं। इस गाइड में, हम नए लिनक्स उपयोगकर्ताओं को दिखाएंगे कि कस्टम शेल स्क्रिप्ट को मज़बूती से कहाँ संग्रहीत किया जाए,