जब भी मैं एक .sh फ़ाइल खोलता हूं, तो यह टर्मिनल के बजाय गेडिट में खुल जाती है। मुझे राइट क्लिक → ओपन विथ → अन्य एप्लिकेशन ... → टर्मिनल के समान कोई विकल्प नहीं मिल रहा है ।
मैं इस फ़ाइल को टर्मिनल में कैसे खोलूँ?
ruby foo.rb
जब भी मैं एक .sh फ़ाइल खोलता हूं, तो यह टर्मिनल के बजाय गेडिट में खुल जाती है। मुझे राइट क्लिक → ओपन विथ → अन्य एप्लिकेशन ... → टर्मिनल के समान कोई विकल्प नहीं मिल रहा है ।
मैं इस फ़ाइल को टर्मिनल में कैसे खोलूँ?
ruby foo.rb
जवाबों:
अपनी स्क्रिप्ट को निष्पादित करने की अनुमति दें:
chmod +x /path/to/yourscript.sh
और अपनी स्क्रिप्ट चलाने के लिए:
/path/to/yourscript.sh
चूंकि .वर्तमान निर्देशिका को संदर्भित करता है: यदि yourscript.shवर्तमान निर्देशिका में है, तो आप इसे सरल कर सकते हैं:
./yourscript.sh
bash /path/to/yourscript.shतो आपको ज़रूरत नहीं हैchmod +x
. /path/to/yourscript.shयदि स्क्रिप्ट को कुछ पर्यावरण चर सेट करना है।
./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अगर कोई विकल्प नहीं है तो इसका उपयोग किया जाएगा।
आपको फ़ाइल प्रबंधक से उन्हें चलाने के लिए शेल स्क्रिप्ट को निष्पादन योग्य के रूप में चिह्नित करना होगा:
अपनी .shफ़ाइल पर राइट क्लिक करें और गुण चुनें :

में अनुमतियाँ टैब में, देखें कार्यक्रम के रूप में फ़ाइल को क्रियान्वित करने की अनुमति दें :

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

एक टर्मिनल खोलें और उस फ़ोल्डर में नेविगेट करें जहां .shफ़ाइल स्थित है। फिर टाइप करें:
sh <name of file>.sh
.Sh फ़ाइल को चलाने से पहले, आपको इसे निष्पादन योग्य बनाने की आवश्यकता है:
सुनिश्चित करें कि आप उस स्रोत पर भरोसा करते हैं जहां से आपको फ़ाइल मिली थी। यह एक वायरस हो सकता है ।
इससे समस्या है। टर्मिनल तुरंत बंद हो जाएगा और आप आउटपुट नहीं देख पाएंगे।
जहां .sh फ़ाइल खोजें
lsऔर cdआदेशोंlsवर्तमान फ़ोल्डर में फ़ाइलों और फ़ोल्डरों को सूचीबद्ध करेगा । इसे आज़माएँ: "ls" टाइप करें और Enter दबाएँ।cd, उसके बाद एक स्थान, उसके बाद एक फ़ोल्डर नामcd ..एक स्तर ऊपर जाने के लिए चलाएं.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
Ubuntu 13.04 पर Nautilus में खोली गई निष्पादन योग्य फाइलें अब उपयोगकर्ता द्वारा निष्पादित करने के लिए संकेत देने के बजाय डिफ़ॉल्ट रूप से gedit में खोली गई हैं। वरीयताओं को समायोजित करने के लिए आवश्यक क्लासिक व्यवहार को सक्षम करने के लिए:
Nautilus → संपादन मेनू → प्राथमिकताएँ → व्यवहार टैब → हर बार पूछें के पास रेडियो बटन पर क्लिक करें।
उस निर्देशिका पर जाएं जहां .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
यदि आपकी स्क्रिप्ट सही ढंग से लिखी गई है, तो यह त्रुटियों के बिना चलेगी ...
2 मुख्य चरण।
टर्मिनल में, डेस्कटॉप पर ".sh" एक्सटेंशन के साथ स्क्रिप्ट लिखने और सहेजने के लिए gedit का उपयोग करें। (लेकिन किसी भी टेक्स्ट एडिटर का इस्तेमाल किया जा सकता है)
Nautilus खोलें और script.sh फ़ाइल पर राइट क्लिक करें।
गुणों के तहत, चेक बॉक्स "फ़ाइल निष्पादित करने की अनुमति दें .."
Nautilus मेनू में, फ़ाइल, फिर प्राथमिकताएं, फिर व्यवहार पर क्लिक करें
जब वे खोले जाते हैं तो "निष्पादन योग्य पाठ फ़ाइलों को चलाएँ"।
अब, जब आप डेस्कटॉप पर फ़ाइल को डबल क्लिक करते हैं, तो इसे निष्पादित करना चाहिए। .या के लिए कोई ज़रूरत नहीं./
.shफ़ाइल को राइट-क्लिक करें और इसे निष्पादन योग्य बनाएं।
एक टर्मिनल ( Ctrl+ Alt+ T) खोलें ।
.shफ़ाइल को टर्मिनल विंडो में खींचें और विस्मय में देखें।
ऐसा करने के कुछ तरीके हैं।
टर्मिनल में, निर्देशिका बैश फ़ाइल का उपयोग cd(परिवर्तन निर्देशिका) में है।
पूर्व। cd Downloads
Daud bash <filename>.sh
यह .run फ़ाइलों के साथ भी काम करता है। रिदमबॉक्स को अपडेट करने पर इस वेबपेज पर इस उपयोग का एक उदाहरण है ।
टर्मिनल में, bash फ़ाइल निर्देशिका में नेविगेट करें।
Daud chmod +x <filename>.sh
Nautilus में, फ़ाइल खोलें।
के लिए उबंटू 18.04 , वहाँ एक छोटे संशोधन, जैसा कि आप एक पॉप-अप डायलॉग नहीं मिलता है।
तो आपको क्या करने की आवश्यकता है:
फ़ाइलों पर राइट क्लिक करें, प्राथमिकताएँ चुनें> व्यवहार टैब चुनें> मार्क 'पूछें कि निष्पादन योग्य पाठ फ़ाइल के तहत क्या करना है' विकल्प।
अब, जब आप किसी भी .sh फ़ाइल पर डबल-क्लिक करते हैं, तो आपको एक पॉपअप मिलेगा, वहाँ आप अपनी .sh फ़ाइल को चलाने के लिए "टर्मिनल में रन" विकल्प का चयन कर सकते हैं।
Ubuntu 16.04 में इसे टर्मिनल में कैसे खोला जाता है:
पर जाएं File Manager > Edit > Preferences > Behaviorके लिए Executable Text Filesऔर चुनें Ask each time।
समस्या यह है कि यह डिफ़ॉल्ट रूप से सेट है View Executable Files when they are opened।
यदि आप अपनी शेल स्क्रिप्ट या अन्य निष्पादन योग्य बनाते हैं, जो आप / usr / लोकल / बिन में बनाते हैं, तो यह पाया जाएगा और कमांड लाइन में एक फ़ोल्डर पथ प्रदान करने या जोड़ने के बिना निष्पादित किया जाएगा। / नाम के लिए। उदाहरण के लिए मैंने डिस्क यूयूआईडी प्रदर्शित करने के लिए निम्नलिखित सरल 3 लाइन बैश स्क्रिप्ट बनाई:
#!/bin/bash
echo "* UUIDs must match in /etc/fstab and /boot/grub/menu.lst"
sudo blkid
मैंने फाइल को uuid कहा और इसे / usr / लोकल / बिन में रखा। मुझे कमांड लाइन पर प्रवेश करने की आवश्यकता है:
uuid
खैर, मुझे भी उसी समस्या का सामना करना पड़ा। मैं .sh फ़ाइल को निष्पादित करना चाहता था और यह CentOS 7 पर Gedit के साथ खोला गया। तो यहां मैंने वही किया है:
.shफ़ाइल के पथ पर नेविगेट किया जिसे मैं निष्पादित करना चाहता था।कुछ वितरणों पर मुझे जो समस्या मिली है, वह यह है कि उन्होंने Nautilus में वरीयताएँ विकल्प छिपाया है, लेकिन इसे Ubuntu और Gnome3 का उपयोग करने वाले अन्य वितरणों में ठीक करने के लिए एक ही है (शाब्दिक रूप से सिर्फ फेडोरा संस्करण किया है और मुझे याद दिलाने के लिए वास्तविक निर्धारण पोस्ट करना है। भविष्य में कैसे)।
इंस्टॉल करें I dconf-editor
sudo apt-get install dconf-editordconf-editorउस उपयोगकर्ता खाते का उपयोग करके चलाएं जिसे आप चाहते हैं, अर्थात रूट नहीं
dconf-editorनिम्न स्कीमा पर नेविगेट करें:
org.gnome.nautilus.preferences
डिफ़ॉल्ट विकल्प को डिफ़ॉल्ट रूप से न खोलने के लिए बदलें:
खोजें executable-text-activationक्लिक शब्द displayऔर करने के लिए बदलask
यह आपको आगे बढ़ने वाली फ़ाइल को संपादित करने, देखने या चलाने का विकल्प देगा
मैं लिनक्स में एक noob हूँ और मुझे बस यही समस्या थी। यदि सभी अन्य विफल होते हैं:
आप .अन्य उत्तरों के सुझाव के साथ भी ट्रिक्स का उपयोग कर सकते हैं ।
उदाहरण के लिए:
chmod +x filename.shयह मानते हुए कि आप पहले ही फाइल करने के लिए रास्ते पर जा चुके हैं, फिर इनमें से किसी एक कमांड से फाइल को चलाएं:
sh filename.sh
./filename.sh
. filename.sh