मेरे पास एक है script.sh फ़ाइल और इस फ़ाइल का प्रकार शेलस्क्रिप्ट फ़ाइल है । मैं इस फ़ाइल को एप्लिकेशन/एक्स-निष्पादन योग्य फ़ाइल के रूप में बनाना चाहता हूं । मैं इसे कैसे बना सकता हूं?
आप फ़ाइल को निष्पादन योग्य के रूप में चिह्नित कर सकते हैं:
chmod +x filename.sh
फिर आप इसे इस तरह निष्पादित कर सकते हैं:
./filename.sh
यदि आप इसे प्रारंभ करने के लिए किसी भिन्न कमांड का उपयोग करना चाहते हैं, तो आप एक उपनाम जोड़ सकते हैं:
gedit ~/.bashrc
इसे फ़ाइल के अंत में जोड़ें:
alias <new name>='/home/<full path to script>/filename.sh'
एक नया टर्मिनल सत्र खोलें या टाइप करें source ~/.bashrc
आवेदन करने के लिए अपने टर्मिनल में । फिर स्क्रिप्ट शुरू करने के लिए बस नए नाम का उपयोग करें ।
फ़ाइल निष्पादन योग्य बनाने के दो तरीके हैं:
जीयूआई विधि:
फ़ाइल पर राइट-क्लिक करें और गुण चुनें । अनुमतियां टैब पर जाएं, फिर बॉक्स पर टिक करें Execute: [ ] Allow executing file as program
या नॉटिलस में Program: [ ] Allow this file to run as a program
में Thunar.
टर्मिनल / कमांड विधि:
आप या तो उपयोग कर सकते हैं:
cd /to/my/required/directory
फिर भागो
chmod +x filename.extension
या बस भागो:
chmod +x /path/to/your/filename.extension
chmod
क्या कुछ और उन्नत विकल्प भी हैं:
रिक्त स्थान यह दिखाना है कि यह विभाजित है: - rwx --- ---
का पहला सेट ---
उपयोगकर्ता है। दूसरा समूह है और अंतिम अन्य है (कोई और)
आर पढ़ने के लिए खड़ा है, डब्ल्यू लिखने के लिए और एक्स निष्पादित करने के लिए ।
इसलिए सभी को इसे पढ़ने की अनुमति देने के लिए, लेकिन केवल समूह को निष्पादित करने और उपयोगकर्ता को इसे पढ़ने और लिखने के लिए (लेकिन किसी कारण से निष्पादित नहीं) होगा:
-rw- rx- r--
लेकिन इसे कमांड में जोड़ा जाएगा:
chmod +rw-rx-r-- /path/to/file.extension
chmod
संख्या में भी ऐसा कर सकते हैं । यह बाइनरी पर आधारित है (मुझे लगता है, क्योंकि यह 1,2 और 4 है)
तो ये संख्याएं हैं:
उपयोगकर्ता द्वारा निष्पादित है 100
.समूह द्वारा निष्पादित है 010
.अन्य द्वारा निष्पादित है 001
.
उपयोगकर्ता द्वारा लिखें है 200
.समूह द्वारा लिखें है 020
.अन्य द्वारा लिखना है 002
.
उपयोगकर्ता द्वारा पढ़ा गया है 400
.समूह द्वारा पढ़ा जाता है 040
.अन्य द्वारा पढ़ा है 004
.
फिर आप वांछित संयोजन प्राप्त करने के लिए इन्हें एक साथ जोड़ते हैं ।
इसलिए सभी को इसे पढ़ने की अनुमति देने के लिए, लेकिन केवल समूह को निष्पादित करने के लिए और उपयोगकर्ता को इसे लिखने के लिए (लेकिन किसी कारण से निष्पादित नहीं) होगा:
400 + 040 + 004
और 010
और 200
कि करने के लिए कहते हैं 600 + 050 + 004 = 654.
फिर आप कमांड चला सकते हैं ।
chmod +654 /path/to/file.extension
इसे सेट करने के लिए ।
और सभी अनुमतियों को सेट करने के लिए आप टाइप कर सकते हैं:
chmod +rwxrwxrwx /path/to/file.extension
या (यह लिखना थोड़ा आसान है, लेकिन हर एक को याद रखना कठिन है):
chmod +777 /path/to/file.extension
अंत में, आप कर सकते हैं:
chmod -777 /path/to/file.extension
सभी अनुमतियों को सभी से दूर ले जाने के लिए ।
और:
chmod +300 /path/to/file.extension
उपयोगकर्ता के लिए पढ़ने और लिखने के लिए, किसी भी अन्य अनुमतियों को प्रभावित किए बिना (जैसे अनुमतियां निष्पादित करें) ।
इस वेबसाइट एक बहुत ही उपयोगी छोटी ग्रिड चेकबॉक्स चीज़ है, जिससे आप अपने इच्छित विकल्पों पर टिक कर सकते हैं और यह आपको कमांड देता है:
हालांकि, सभी संभावित संयोजन उपयोग करने के लिए समझदार नहीं हैं; उपयोग किए जाने वाले मुख्य निम्नलिखित हैं:
755 - Owner
सब है, और Group
और Other
पढ़ सकते हैं और निष्पादित कर सकते हैं
700 - Owner
सभी है
644 - Owner
पढ़ और लिख सकते हैं, और Group
और Other
पढ़ सकते हैं
600 - Owner
पढ़ और लिख सकते हैं
और, यदि आप गैर-तुच्छ उपयोगकर्ता समूहों का उपयोग कर रहे हैं:
775 - Owner
पढ़ और लिख सकते हैं, और Group
और Other
पढ़ सकते हैं
770 - Owner
और Group
सब है, और Other
पढ़ सकते हैं और निष्पादित कर सकते हैं
750 - Owner
सब है, और Group
पढ़ सकते हैं और निष्पादित कर सकते हैं
664 - Owner
और Group
पढ़ और लिख सकते हैं, और Other
बस पढ़ सकते हैं
660 - Owner
और Group
पढ़ और लिख सकते हैं
640 - Owner
पढ़ और लिख सकते हैं, और Group
पढ़ सकते हैं
777 और 666 का उपयोग शायद ही कभी /टीएमपी को छोड़कर किया जाता है ।
धन्यवाद Ilmari Karonen के लिए बाहर की ओर इशारा करते हुए आम उपयोग में हैं!
भागो:
chmod +x /path/to/file.sh
इसे गैर-निष्पादन योग्य बनाने के लिए, चलाएं:
chmod -x /path/to/file.sh
उदाहरण के लिए मैंने बनाया .sh
फ़ाइल:
vi tester12.sh
छठी संपादक पर कुछ कोड लिखने के बाद, मैं छठी संपादक से बाहर निकलूंगा:
:wq!chmod +x tester12.sh./tester12.sh
सभी उपयोगकर्ताओं को अपनी स्क्रिप्ट चलाने दें
जैसा कि कहा गया है कि आप इसे निष्पादन योग्य बनाने के लिए फ़ाइल का निष्पादन बिट सेट कर सकते हैं chmod +x
. लेकिन आप भी इस्तेमाल कर सकते हैं chmod a+x
:
$ ll file_command.txt-rw-rw-r-- 1 rick rick 17 Sep 19 08:55 file_command.txt$ chmod a+x file_command.txt$ ll file_command.txt-rwxrwxr-x 1 rick rick 17 Sep 19 08:55 file_command.txt*
नोट्स:
- एक स्क्रिप्ट को समाप्त नहीं करना है
.sh
यह में समाप्त हो सकता है.txt
जैसा कि यहां दिखाया गया है, या कोई विस्तार नहीं है । - बस के बजाय
+x
(केवल आप स्क्रिप्ट निष्पादित कर सकते हैं), उपयोग करेंa+x
तो सभी उपयोगकर्ता स्क्रिप्ट निष्पादित कर सकते हैं । - फ़ाइल नाम में एक है
*
यह इंगित करने के लिए संलग्न है कि यह निष्पादन योग्य है । साथ ही अधिकांश सिस्टम पर फ़ाइल का नाम हरे रंग में बदल जाता है ।
स्क्रिप्ट को निष्पादन योग्य बनाए बिना चलाएं
आप अभी भी इसे निष्पादन योग्य बनाने के बिना बैश स्क्रिप्ट चला सकते हैं । उदाहरण के लिए:
$ echo "echo Hello World" > file_command.txt$ cat file_command.txtecho Hello World$ bash file_command.txtHello World
नोट्स:
- पहले हम एक स्क्रिप्ट बनाते हैं जिसमें
echo Hello World
. - फिर हम नामक स्क्रिप्ट की पुष्टि करते हैं
file_command.txt
सही है । - अंत में हम कॉल करके स्क्रिप्ट चलाते हैं
bash
और इसे स्क्रिप्ट नाम पास करना । दbash
कमांड वास्तव में स्टोर के रूप में है/bin/bash
और यह सभी उबंटू सिस्टम पर एक निष्पादन योग्य है । - आदेशों की एक फ़ाइल बनाना आपको जोड़ने से बचाता है शेबांग
#!/bin/bash
एक स्क्रिप्ट में पहली पंक्ति के रूप में । - आदेशों की एक फ़ाइल बनाना आपको इसे निष्पादन योग्य बनाने से बचाता है
chmod +x
याchmod a+x
.
यह एक डुप्लिकेट नहीं है, क्योंकि मैंने विशेष रूप से इसे एप्लिकेशन/एक्स-निष्पादन योग्य बनाने के बारे में पूछा है । दूसरा सवाल सिर्फ टर्मिनल में एसएच फ़ाइल खोलने के लिए कहता है ।