لدي 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
في ثونار.
محطة / طريقة القيادة:
يمكنك إما استخدام:
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 نادرا ما تستخدم ، إلا في / تمب.
شكرا إلماري كارونين ل مشيرا إلى تلك في الاستخدام الشائع!
اركض:
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
.
المتعلقة [كيف يمكنني تشغيل الملفات ش في محطة؟] (command line - How do I run .sh scripts? - Ask Ubuntu)
انها ليست مكررة ، لأنني سألت على وجه التحديد حول جعله تطبيق/س-قابل للتنفيذ. السؤال الآخر يسأل فقط لفتح ملف ش في المحطة.