सवाल मैं .sh फ़ाइलों को कैसे चला सकता हूं?


जब भी मैं एक .sh फ़ाइल खोलता हूं, यह इसे टर्मिनल के बजाय जीएडिट में खुलता है। मुझे कोई विकल्प नहीं मिल रहा है दाएँ क्लिक करें → के साथ खोलें → अन्य आवेदन ... → टर्मिनल

मैं इस फाइल को टर्मिनल में कैसे खोलूं?


247
2018-05-01 02:39


मूल


क्या उस स्क्रिप्ट का उद्देश्य आगे के उपयोग के लिए एनवी चर सेट अप करना है? - Rob
आपको स्क्रिप्ट पर एक्सटेंशन का उपयोग नहीं करना चाहिए। भविष्य में किसी बिंदु पर, आप पाएंगे कि आपकी वर्तमान स्क्रिप्ट क्या कार्य करने के लिए एक अलग भाषा अधिक उपयुक्त है। और फिर आपको एक समस्या है। क्या आप पुराने नाम को पूरी तरह से भ्रामक विस्तार के साथ रखते हैं, या आप इसका नाम बदलते हैं, संभवतः उन स्थानों के बहुत से संपादन को संपादित करना जहां आपकी स्क्रिप्ट का उपयोग किया जाता है? - geirha
आपको फ़ाइल एक्सटेंशन की आवश्यकता नहीं है। यह अच्छा है लेकिन इसकी आवश्यकता नहीं है। ओएस फ़ाइल एक्सटेंशन को नहीं देखता है। यह डेटा को देखता है - ActionParsnip
महोदय, अगर आप रूबी में foo.sh को फिर से लिखते हैं, तो आप हमेशा लॉन्च करने के लिए .sh फ़ाइल का उपयोग कर सकते हैं ruby foo.rb - glenn jackman
डॉल्फिन में आप एफ 4 दबा सकते हैं और एक कंसोल खुलता है - Motte001


जवाब:


अपनी स्क्रिप्ट को निष्पादित अनुमति दें:

chmod +x /path/to/yourscript.sh

और अपनी स्क्रिप्ट चलाने के लिए:

/path/to/yourscript.sh

जबसे . वर्तमान निर्देशिका को संदर्भित करता है: यदि yourscript.sh वर्तमान निर्देशिका में है, आप इसे सरल बना सकते हैं:

./yourscript.sh

379
2018-05-01 03:18



+1 केवल एक टर्मिनल में निष्पादन अनुमतियों को जोड़ने के लिए उत्तर देने का उत्तर देता है। - Hailwood
यदि तुम करो bash /path/to/yourscript.sh तो आपको जरूरत नहीं है chmod +x - Aleksandr Levchuk
दरअसल, आप इसका उपयोग कर सकते हैं . /path/to/yourscript.sh अगर स्क्रिप्ट को कुछ पर्यावरण चर सेट अप करना है। - Rob
कोई भी परंपरा का उल्लेख नहीं करता है: ./path/to/yourscript.sh(बिना अंतरिक्ष के .)? मुझे लगता है कि उपयोग करने के लिए सबसे आसान और आसान है ... लेकिन वैसे भी, यह मेरा विकल्प है जो लगभग समान ही करना चाहिए ./ हालांकि, मैं नहीं देखता कि आप क्यों उपयोग नहीं करेंगे ./: (FILENAME=~/rem4space.sh;SLL=$(cat $FILENAME|head -1|sed 's:^#!\(.*\):\1:g');[ ! -z $SLL ] && exec $SLL $FILENAME;sh $FILENAME) ... संपादित करें FILENAME आपकी पसंद के हिसाब से। यह भी ध्यान दें sh यदि कोई विकल्प नहीं है तो इसका उपयोग किया जाएगा। - MiJyn


आपको फ़ाइल प्रबंधक से चलाने के लिए निष्पादन योग्य के रूप में खोल स्क्रिप्ट को चिह्नित करने की आवश्यकता है:

  1. राइट क्लिक करें .sh फ़ाइल और चयन करें गुण:

    enter image description here

  2. में अनुमतियां टैब, जांचें फ़ाइल को प्रोग्राम के रूप में निष्पादित करने की अनुमति दें:

    enter image description here

  3. बंद करो गुण विंडो और फ़ाइल को डबल-क्लिक करें। टर्मिनल में स्क्रिप्ट चलाने का विकल्प आपको एक संवाद देगा:

    enter image description here


72
2018-05-01 03:02



अच्छा डब्ल्यू / स्क्रीनशॉट - gd1
यह उबंटू 13.04 में काम नहीं कर रहा है। वैसे भी जीएडिट में खुलता रहता है, मुझे कभी निष्पादित करने के लिए नहीं कहता है। संपादित करें: एनवीएम, imjustmatthew इसका जवाब। - mpen
इसका उपयोग करने से पहले हमें chmod का उपयोग करके निष्पादित करने के लिए फ़ाइल अनुमति बनाने की आवश्यकता है। chmod + x filename.sh या chmod 755 filename.sh - Arvind Rawat
मेरे पास पॉपअप नहीं है! आईडीई सीधे पॉप अप नहीं किया जाता है, पॉपअप नहीं - Green
@ डैनियलमोलर, यहां आपके प्रश्न का उत्तर है। askubuntu.com/questions/38661/how-do-i-run-sh-files/... - Akhilesh Dhar Dubey


शर्त

.Sh फ़ाइल चलाने से पहले, आपको इसे निष्पादन योग्य बनाना होगा:

  1. फ़ाइल पर राइट-क्लिक करें
  2. चुनते हैं गुण
  3. चुनते हैं अनुमतियां
  4. चुनते हैं एक प्रोग्राम के रूप में फ़ाइल निष्पादित करने की अनुमति दें

चेतावनी

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

बहुत आसान तरीका

  1. फ़ाइल पर डबल-क्लिक करें
  2. टर्मिनल में चलाएं क्लिक करें

इसमें समस्या है। टर्मिनल तुरंत बंद हो जाएगा और आप आउटपुट देखने में सक्षम नहीं होंगे।

सरल तरीका

  1. खुले अनुप्रयोग -> सहायक उपकरण -> टर्मिनल
  2. .Sh फ़ाइल को टर्मिनल में खींचें और छोड़ें और एंटर दबाएं

जिस तरह से पेशेवर इसे करते हैं

  1. खुले अनुप्रयोग -> सहायक उपकरण -> टर्मिनल
  2. .Sh फ़ाइल कहां खोजें

    • उपयोग ls तथा cd आदेशों
    • ls फाइलों और फ़ोल्डरों को सूचीबद्ध करेगा मौजूदा फोल्डर। इसे आज़माएं: "ls" टाइप करें और एंटर दबाएं।
    • एक बार जब आप उस फ़ोल्डर को देखते हैं जिसे आप अंदर जाना चाहते हैं, तो चलाएं cd, एक स्थान के बाद, एक फ़ोल्डर नाम के बाद
    • यदि आप किसी फ़ोल्डर में जब आप नहीं चाहते थे, तो चलाएं cd .. एक स्तर पर जाने के लिए ऊपर
  3. .Sh फ़ाइल चलाएं

    • एक बार जब आप उदाहरण के लिए देख सकते हैं script1.sh साथ में ls इसे चलाओ:

      ./script.sh

यह जटिल तरीका क्यों है?

टर्मिनल में शक्तिशाली उपकरण का एक समृद्ध सेट है जो कमांड टाइप करके सुलभ है। पेशेवर टाइपिंग द्वारा .sh फ़ाइल का पता लगाते हैं ls तथा cd। एक बार जब आप सही हो जाते हैं मौजूदा फोल्डर आप इस तरह की स्क्रिप्ट चला सकते हैं:

./script1.sh

या आप आउटपुट को फ़ाइल में चला सकते हैं और रीडायरेक्ट कर सकते हैं:

./script1.sh > out.txt

या आप कीवर्ड के लिए आउटपुट फ़िल्टर कर सकते हैं (उदा। "सेब") फिर फ़ाइल पर रीडायरेक्ट करें:

./script1.sh | grep apples > ./only-apples

कुछ कमांड टाइप करके आप उस फ़ाइल में हजारों चीजें कर सकते हैं।

एक और, आप इंटरनेट से एक साधारण कमांड के साथ एक फ़ाइल डाउनलोड कर सकते हैं:

wget www.google.com/images/logos/ps_logo2.png

और फिर इस तरह की फ़ाइल खोलें:

shotwell ps_logo2.png

22
2018-05-01 02:52



मुझे यकीन नहीं है कि जिस तरह से पेशेवर इसे करते हैं सही है, यह एक और मामला है सरल तरीका  उन्नत (आउटपुट के नियंत्रण के लिए) मार्ग - Hailwood


एक टर्मिनल खोलें और उस फ़ोल्डर में नेविगेट करें जहां .sh फ़ाइल स्थित है। फिर टाइप करें:

sh <name of file>.sh

18
2017-12-20 07:43





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

नॉटिलस → मेनू संपादित करें → प्राथमिकताएं → व्यवहार टैब → प्रत्येक बार पूछे जाने वाले रेडियो बटन पर क्लिक करें।


15
2018-06-10 21:41



जिस व्यक्ति ने सवाल पूछा वह उबंटू 10.10 के बारे में बात कर रहा है - edwin
धन्यवाद!!! मुझे नहीं पता कि वे इसे क्यों बदल देंगे, कुछ भी निष्पादित करने का तरीका नहीं पता था। - mpen
नवीनतम यूबंटस के लिए यह सही जवाब है। - gaRex
15.10 में आप नॉटिलस कैसे पहुंचे? - Yaakov Ainspan


निर्देशिका में जाओ जहां .sh फ़ाइल का उपयोग कर है cd। इस उदाहरण में मैंने अपना संग्रह किया है sh फ़ाइल के रूप में ~/Desktop/shell_practice/test.sh

पहले करो pwd यह पता लगाने के लिए कि आप कहां हैं, और यदि यह वापस आता है /home/username (कहा पे username आपका असली उपयोगकर्ता नाम है), आप चला सकते हैं

cd Desktop/shell/practice

यदि आप कहीं और लगते हैं, तो आप पूर्ण पथ का उपयोग कर सकते हैं

cd ~/Desktop/shell/practice

या

cd $HOME/Desktop/shell/practice

या और भी

cd /home/$USER/Desktop/shell/practice

ये एक ही स्थान का वर्णन करने के सभी तरीके हैं। एक बार जब आप इसे अपनी स्क्रिप्ट के स्थान पर बना लेते हैं, तो टाइप करें

ls

यदि आप देख सकते हैं sh आउटपुट में फ़ाइल, आप उपयोग कर सकते हैं chmod इसे निष्पादन योग्य बनाने के लिए। मेरे मामले में, याद रखें, फ़ाइल नाम है test.sh, तो मैं दौड़ूँगा

chmod u+x test.sh

अब जब हम स्क्रिप्ट के समान निर्देशिका में हैं, तो हमें उस शेल को निर्दिष्ट करना होगा जिसे हम फ़ाइल देकर फ़ाइल निष्पादित करना चाहते हैं ./ (मौजूदा निर्देशिका को पथ विभाजक द्वारा पीछा किया गया है, इसे फ़ाइल नाम से अलग करने के लिए)। मेरी फाइल चलाने के लिए मैं टाइप करूंगा:

./test.sh

यदि आपकी स्क्रिप्ट सही ढंग से लिखी गई है तो यह त्रुटियों के बिना चलेगी ...

यहां एक लाइव उदाहरण दिया गया है: Here is live example


5
2017-12-03 11:14



यह मेरे लिए उबंटू पर नेटबीन्स स्थापित करने के लिए काम किया - RuD3B0y
Wb, @ RuD3B0y, मैंने नोब के लिए सबसे अच्छा जवाब रखने की कोशिश की, कोई उच्च तकनीक सामग्री नहीं है, अगर आपके पास कुछ संपादन हैं तो आपका स्वागत है। - TheExorcist


2 मुख्य कदम।

  1. टर्मिनल में, डेस्कटॉप पर ".sh" एक्सटेंशन के साथ स्क्रिप्ट लिखने और सहेजने के लिए जीएडिट का उपयोग करें। (लेकिन किसी भी पाठ संपादक का उपयोग किया जा सकता है)

  2. नॉटिलस खोलें और script.sh फ़ाइल पर राइट क्लिक करें।

    • गुणों के तहत, चेक बॉक्स "फ़ाइल निष्पादित करने की अनुमति दें .."

    • नॉटिलस मेनू में, फ़ाइल, फिर प्राथमिकताएं, फिर व्यवहार पर क्लिक करें

    • जब वे खोले जाते हैं तो "निष्पादन योग्य टेक्स्ट फ़ाइलों को चलाएं" की जांच करें।

अब, जब आप डेस्कटॉप पर फ़ाइल को डबल क्लिक करते हैं, तो इसे निष्पादित करना चाहिए। की कोई ज़रूरत नहीं . या ./


3
2017-10-24 14:24





उबंटू 16.04 में टर्मिनल में इसे खोलने का तरीका है:

जाओ File Manager > Edit > Preferences > Behavior के लिये Executable Text Files और चयन करें Ask each time

समस्या यह है कि यह डिफ़ॉल्ट रूप से सेट है View Executable Files when they are opened


2
2017-12-11 19:58





  1. राइट-क्लिक करें .sh फ़ाइल करें और इसे निष्पादन योग्य बनाएं।

  2. एक टर्मिनल खोलें (Ctrl+ऑल्ट+टी)।

  3. इसे खींचें .sh टर्मिनल विंडो में फ़ाइल करें और भय में देखें।


2
2018-06-10 14:09



उबंटू से पूछने के लिए आपका स्वागत है! मैं सिफारिश करता हूँ संपादित करें पहला कदम कैसे करें, इस बारे में विशिष्ट विवरण के साथ विस्तार करने के लिए यह उत्तर। (यह भी देखें मैं एक अच्छा जवाब कैसे लिखूं? AskUbuntu पर किस प्रकार के उत्तरों को सबसे मूल्यवान माना जाता है, इस बारे में सामान्य सलाह के लिए।) - David Foerster