Unix / Linux में कस्टम कमांड कैसे बनाएं? [बन्द है]


55

क्या कोई मुझे यूनिक्स / लिनक्स में कस्टम कमांड बनाने के लिए मार्गदर्शन कर सकता है।


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

जवाबों:


68

अपने / usr / बिन फ़ोल्डर में एक बैश स्क्रिप्ट बनाएं, यह कुछ इस तरह दिखना चाहिए

#!/bin/bash
Whatever combination of commands you want to run when you type this thing.

यह वास्तव में आसान है।

बस बैश स्क्रिप्ट को नाम दें जिसे आप टर्मिनल में टाइप करना चाहते हैं, और इसे एक्सेसेबल बना chmod +x filenameसकते हैं : और आप जाने के लिए अच्छे हैं!


1
क्या आप इसे चरण-दर-चरण मार्गदर्शिका बनने के लिए संशोधित कर सकते हैं, जिसमें हर आवश्यक कदम शामिल है? मैं अभी भी अनिश्चित हूं कि कैसे अपनी खुद की कस्टम कमांड बनाई जाए।
योदा

5
@AndersMB, आपको एक पुस्तक पढ़ने की आवश्यकता है । कई अच्छे हैं, यहां तक ​​कि मुफ्त में भी उपलब्ध हैं। "लिनक्स कमांड लाइन" से शुरू करें ।
वाइल्डकार्ड

उम्म .. वो मज़ाक कर रही थी। वह मजाक कर रहा था , है ना !?
सोमनाथ सिन्हा

1
के साथ निष्पादित./filename
स्क्वीरल

46
  1. एक निर्देशिका बनाएँ "बिन" अपने घर निर्देशिका के तहत।
  2. इस बिन निर्देशिका को शामिल करने के लिए अपने पथ चर को अपडेट करें। इसे स्थायी करने के लिए इसे .profileया .bash_profleफ़ाइल में रखें ।

    export PATH=$PATH":$HOME/bin"

  3. एक स्क्रिप्ट बनाएं, "हैलो" कहें और इसे अपनी बिन निर्देशिका में रखें। द्वारा हेलो स्क्रिप्ट को निष्पादित करने की अनुमति दें $ chmod +x hello

    #!/bin/bash    
    echo My first program
  4. पुनः लोड करें .profileया .bash_profle:

    $ . ~/.bash_profile

  5. किसी भी निर्देशिका से, आप बस टाइप करें:

    $ hello
    My first program

मुझे पता है कि यह बहुत पुराना है, लेकिन मैंने binबहुत सारे उत्तरों में एक फ़ोल्डर बनाने के आपके सुझाव को देखा है। क्या .binइसके बजाय कोई समस्या है bin? मैं वास्तव में इस बात को लेकर उत्सुक हूं कि मेरा homeलुक कैसा है और मैं सिर्फ इसलिए अतिरिक्त फ़ोल्डर नहीं चाहता हूं।
एमओ

मैंने इस असफल का उपयोग करने की कोशिश की है और थोड़ी देर के लिए यह सोचकर बहुत निराश हो गया कि मेरे zshइंस्टॉल में कुछ गड़बड़ है या $PATHयह समाप्त हो रहा है कि chmod -x helloयह काम नहीं कर रहा था, न ही एक पूंजी है -X। इसके बजाय मैंने कोशिश की chmod 755 hello, जबकि मैं इस आदेश के संबंध में सुरक्षा जोखिमों के बारे में सुनिश्चित नहीं हूं, यह वास्तव में मुझे चलने देता है hello। क्या किसी के पास इसके लिए स्पष्टीकरण है? मैं यह मान रहा हूं कि यह उम्र के संबंध में एक समस्या है?
कॉन्स्टैंटफुन

1
@ConstantFun chmod +x helloस्क्रिप्ट में 'रन' विशेषाधिकार जोड़ने के लिए उपयोग करें । chmod -x helloइसके ठीक विपरीत है - 'रन' विशेषाधिकार हटाता है। (जवाब में और आपकी टिप्पणी में प्लस / माइनस साइन अंतर पर ध्यान दें।)
फिलिप

25

आसान है, एक उपनाम बनाएं।

कहते हैं कि आप अपने डाउनलोड निर्देशिका में सीडी के लिए एक कमांड लिखना चाहते हैं। और आप इसे cdd कहना चाहते हैं।

alias cdd='cd ~/Downloads' 

आप अपनी इच्छानुसार कोई भी कमांड बना सकते हैं।

यहां और जानकारी दी गई है:
http://www.mediacollege.com/linux/command/alias.html


6
यह सत्र भर में बनी नहीं रहती है, हालांकि। यह आदेश काम करता है, लेकिन स्थायी नहीं है। एक और स्थायी तरीका यह होगा कि आप अपनी ~ / .bash_aliases फ़ाइल को संशोधित करें और वहां आपके द्वारा सुझाई गई लाइन को जोड़ें।
जेफ ग्रिम्स

2
इसे आपकी ~ / .bashrc फ़ाइल में जोड़कर काम करता है
Delicia Brummitt

11

अधिकांश, यदि सभी अब तक नहीं हैं, तो लिनक्स वितरण में ~ / .bashrc में थोड़ी स्क्रिप्ट है जो लगभग इसके समान दिखता है:

if [ -e ~/.bash_aliases ]
then
. ~/.bash_aliases
fi

इसका मतलब यह है कि आप अपनी खुद की कमांड बना सकते हैं (जिसे ' aliases' के रूप में भी जाना जाता है) आमतौर पर एक मौजूदा कमांड को कुछ तर्कों के साथ संदर्भित किया जाता है जिनका आपको हमेशा उपयोग करना होता है, या कमांड की एक सूची जिसे क्रम में निष्पादित किया जाना है)।

जब तक आप पहले से ही ऐसा नहीं करते हैं, तब तक आपके लिनक्स वितरण में आपके घर में निर्मित .bash_aliases फ़ाइल की संभावना नहीं होगी। तो फ़ाइल बनाने के लिए, निम्न कमांड टाइप करें:
touch ~/.bash_aliases

अब उस फ़ाइल को स्वचालित रूप से हर बार निष्पादित किया जाएगा जब आप एक नया टर्मिनल बंद करते हैं।

अब आप क्या कर सकते हैं उपनाम की एक सूची बनाएं और बाद में उपयोग के लिए उन्हें उस फ़ाइल में जोड़ें। उदाहरण के लिए, rmडिफ़ॉल्ट रूप से (निकालें) कमांड आपको किसी फ़ाइल / निर्देशिका को हटाने के लिए कहने पर आपके अनुरोध की पुष्टि करने के लिए नहीं कहता है। हालांकि, वहाँ एक तर्क कहता है कि है rm, अपने अनुरोध की पुष्टि करने के लिए आप से पूछना चाहता -i। इसलिए, rm -i filePathआपको एक संदेश प्रदर्शित करेगा , यदि आप सुनिश्चित करें कि आप निर्दिष्ट फ़ाइल को हटाना चाहते हैं। अब, यदि आप गलती से किसी फ़ाइल को हटा देते हैं, तो आप -iविकल्प को शामिल करना भूल जाएंगे , और यही वह जगह है जो aliasबहुत फायदेमंद हो जाती है। निम्न कमांड टाइप करना

echo "alias rm='\rm -i'" >> ~/.bash_aliases

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

आप कैसे कुछ बुनियादी आदेशों का उपयोग करने (यानी जानना चाहते हैं cd, touch, rm, mkdir, pushd, popd, आदि) और / या अधिक परिष्कृत लोगों, मैं एक बहुत अच्छी किताब आप हो सकता है आपकी बुकशेल्फ़ पर एक संदर्भ के रूप में कहा जाता है की सलाह देते हैं

मार्क जी। सोबेल द्वारा संपादकों और शेल प्रोग्रामिंग को लाइनक्स के लिए एक व्यावहारिक गाइड । आईएसबीएन: 978-0133085044


1
बैकलैश क्यों?
दर्शन 294
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.