मैं टर्मिनल कमांड के लिए स्क्रिप्ट फ़ाइल कैसे बनाऊं?

विंडोज़ में मैं सीएमडी (आमतौर पर) के लिए कमांड वाली फाइल लिख सकता हूं .cmd या .bat फ़ाइलें) । जब मैं उन फाइलों पर क्लिक करूंगा तो यह खुल जाएगी cmd.exe और उन्हें चलाएं कमांड फ़ाइल में शामिल है ।

मैं उबंटू में यह कैसे करूंगा?

मुझे यकीन है कि यह एक डुप्लिकेट है, लेकिन मुझे अपना जवाब नहीं मिल रहा है ।
यह इन सवालों के समान है, लेकिन वे सवाल का जवाब नहीं देते हैं:

फ़ाइल में अक्सर उपयोग किए जाने वाले टर्मिनल कमांड को स्टोर करें

सीएमडी.उबंटू में एक्सई एमुलेटर चलाने के लिए । सीएमडी / ।बैट फ़ाइल

दो विधियाँ हैं ।

सबसे पहले, फ़ाइल लिखना सबसे आम है, सुनिश्चित करें कि पहली पंक्ति है

#!/bin/bash

फिर फाइल को सेव करें । अगला इसे निष्पादन योग्य का उपयोग करके चिह्नित करें chmod +x file

फिर जब आप क्लिक करते हैं (या टर्मिनल से फ़ाइल चलाते हैं) तो कमांड निष्पादित किए जाएंगे । सम्मेलन द्वारा इन फ़ाइलों में आमतौर पर कोई एक्सटेंशन नहीं होता है, हालांकि आप उन्हें समाप्त कर सकते हैं .sh या किसी अन्य तरीके से ।

कुछ नोट्स:

  • किसी भी (और मेरा मतलब है कि कोई भी) फ़ाइल को लिनक्स में निष्पादित किया जा सकता है बशर्ते पहली पंक्ति उस प्रोग्राम का एक पथ है जिसे फ़ाइल की व्याख्या करनी चाहिए । सामान्य उदाहरणों में शामिल हैं /bin/python, /bin/sh, /bin/dash, लेकिन विषम गेंद की चीजें भी काम करती हैं /bin/mysql
  • बैश एक पूर्ण भाषा है । यह सीएमडी की तुलना में काफी जटिल है । विंडोज में एक्सई । इसकी एक मजबूत प्रोग्रामिंग भाषा है जो फ़ंक्शन, लूप, सशर्त, स्ट्रिंग ऑपरेशन आदि का समर्थन करती है ।
  • ये दस्तावेज यदि आप समस्याओं में भाग लेते हैं तो मदद कर सकते हैं ।
  • यदि आप फ़ाइल को निष्पादन योग्य नहीं बनाना चाहते हैं तो आप इसे बैश के तर्क के रूप में पास करके चला सकते हैं: bash file/to/run.sh

एक साधारण बैश उदाहरण

#!/bin/bash  echo "This is a shell script"  ls -lah  echo "I am done running ls"  SOMEVAR='text stuff'  echo "$SOMEVAR"

दूसरी विधि कमांड का उपयोग करके रिकॉर्ड करना है script. भागो script फिर बस सामान करो। जब आप सामान प्रकार कर रहे हैं exit और स्क्रिप्ट आपके द्वारा किए गए सभी "सामान" के साथ आपके लिए एक फ़ाइल उत्पन्न करेगी । यह कम उपयोग किया जाता है लेकिन मैक्रोज़ जैसी चीजों को बनाने के लिए काफी अच्छा काम करता है । man script अधिक जानकारी के लिए.

आपका मतलब शेल स्क्रिप्ट का उपयोग करके फ़ाइल में लिखना है? यहाँ कुछ तरीके हैं:

touch file

यह विधि केवल एक फ़ाइल बनाएगी, लेकिन यदि फ़ाइल पहले से मौजूद है, तो यह संशोधन तिथि को उस समय में बदल देती है जब आपने उस कमांड का उपयोग किया था ।

echo "text" > file

वह विधि सामग्री को अधिलेखित कर देती है file को text. यदि आप कोई फ़ाइल साफ़ करना चाहते हैं, तो आप बस यह कर सकते हैं:

echo "" > file

कहते हैं कि आप इसे एक से अधिक पंक्ति लिखना चाहते हैं, और आप हजारों का उपयोग नहीं करना चाहते echo कमांड, आप इस कमांड का उपयोग करेंगे:

cat << EOF > filetesttest1foobarEOF

यह आपको एक कमांड में कई लाइनें लिखने में सक्षम बनाता है । की सामग्री file तो यह होगा:

testtest1foobar

यदि आप किसी फ़ाइल में जोड़ना चाहते हैं, तो बदलें > को >>.

आशा है कि यह मदद करता है!


संपादित करें: ओह, मैं देख रहा हूँ, तो आप जीएडिट में फ़ाइल लिखना होगा, का उपयोग कर .sh> एक्सटेंशन (वैकल्पिक, लेकिन यह एक अच्छा विचार है), और फिर एक फ़ाइल प्रबंधक पर, फ़ाइल पर राइट क्लिक करें, गुण-अनुमतियां चुनें,और जांचें Allow executing file as program. फिर आप उस पर डबल-क्लिक कर सकते हैं और यह चलेगा:) । साथ ही, यदि आप टर्मिनल में ऐसा करना चाहते हैं, तो आप इसे निष्पादन योग्य बनाने के लिए इस कमांड को चला सकते हैं (आप प्रीपेंड करना चाह सकते हैं sudo यदि यह आपका नहीं है):

chmod +x file

और चलाने के लिए:

./file

विंडोज बैच फ़ाइलों के बराबर शेल स्क्रिप्ट है, और एक उत्कृष्ट आरंभ गाइड है बैश स्क्रिप्टिंग.

अधिकांश भाग के लिए, कमांड लाइन पर आप जो कमांड दर्ज कर सकते हैं, उन्हें शेल स्क्रिप्ट में रखा जा सकता है ।

कुछ चीजें जो विंडोज बैच फाइलों से अलग हैं:

  • विभिन्न कमांड दुभाषिए हैं, जिन्हें गोले कहा जाता है । डिफ़ॉल्ट बैश है, लेकिन यदि आप रुचि रखते हैं, तो अन्य हैं, जैसे कि जेडएसएच, केएसएच, डैश, पर्ल, पायथन, आदि ।

  • शेल स्क्रिप्ट चलाने के लिए, आपको फ़ाइल को निष्पादन योग्य बनाना होगा, जिसके साथ आप कर सकते हैं chmod +x <filename>

  • उबंटू में, वर्तमान निर्देशिका प्रोग्राम खोज पथ नहीं है, इसलिए आपको चलाने की आवश्यकता है ./<filename>, नहीं <filename>

  • चर नाम हैं $<varname>, नहीं %<varname>%

  • शेल स्क्रिप्ट में कमांड डिफ़ॉल्ट रूप से मुद्रित नहीं होते हैं, जैसा कि बैच फ़ाइल में होता है ।

  • फ़ाइल नाम का विस्तार हो सकता है .sh या (अधिक प्रथागत) आपको एक्सटेंशन का उपयोग करने की आवश्यकता नहीं है । डाल दिया #!/bin/bash फ़ाइल की पहली पंक्ति पर, जो उबंटू को बताता है कि फ़ाइल को चलाने के लिए किस प्रोग्राम का उपयोग करना है ।

  • टिप्पणियाँ के साथ शुरू #, नहीं rem.

आशा है कि यह मदद करता है और मजेदार स्क्रिप्टिंग है!