كيفية جعل ملف (على سبيل المثال برنامج نصي ش) قابل للتنفيذ ، بحيث يمكن تشغيله من محطة

لدي 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

لإضافة القراءة والكتابة للمستخدم ، دون التأثير على أي أذونات أخرى (مثل تنفيذ الأذونات).

هذا الموقع لديه شيء مربع شبكة صغيرة مفيدة جدا ، حيث يمكنك وضع علامة على الخيارات التي تريدها وأنها تعطيك الأمر:

enter image description here

ومع ذلك ، ليست كل التركيبات الممكنة معقولة الاستخدام ؛ أهمها المستخدمة هي التالية:

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 لذلك يمكن لجميع المستخدمين تنفيذ البرنامج النصي.
  • يحتوي اسم الملف على * إلحاق به للإشارة إلى أنه قابل للتنفيذ. كما يتغير لون اسم الملف إلى اللون الأخضر في معظم الأنظمة.

make script executable


قم بتشغيل برنامج نصي دون جعله قابلا للتنفيذ

لا يزال بإمكانك تشغيل البرنامج النصي باش دون جعلها قابلة للتنفيذ. على سبيل المثال:

$ 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)

تكرار ممكن من [كيف يمكنني تشغيل الملفات؟] (command line - How do I run .sh scripts? - Ask Ubuntu)

انها ليست مكررة ، لأنني سألت على وجه التحديد حول جعله تطبيق/س-قابل للتنفيذ. السؤال الآخر يسأل فقط لفتح ملف ش في المحطة.