دليل المبتدئين لبرمجة Shell في Linux
هل أردت يومًا أن تتعلم “البرمجة النصية” في Linux؟ جعلها أسهل مما تعتقد. في بعض الأحيان ، تكون البرامج النصية (غالبًا ما يشار إليها باسم البرامج النصية shell أو bash) برامج حقيقية بها تعليمات برمجية معقدة بداخلها. في أحيان أخرى تكون مجرد قائمة طويلة من المهام التي جمعها المستخدمون معًا لجعل إنجاز المهام على نظام Linux أسرع وأسهل. فيما يلي أفضل دليل للمبتدئين لبرمجة Shell في Linux
لماذا تقوم بعمل برنامج نصي؟
يعد إنشاء البرامج النصية في Linux مهارة مفيدة للغاية. يمكنك أتمتة بعض المهام المتكررة باستخدام البرامج النصية bash. إذا قمت بذلك بشكل جيد ، يمكن أن يجعلك منتجًا للغاية ويتيح لك تحقيق المزيد في وقت أقل.
على سبيل المثال: ربما تكون قد أنشأت للتو نظام Arch Linux من البداية. تم تثبيت نظام التشغيل ، إلى جانب جميع الحزم الأساسية ، ويمكنه التمهيد إلى الجهاز عند بدء تشغيل نظام التشغيل. يستغرق إعداد Arch Linux وقتًا ، لذلك لا تكتمل العملية.
في هذه المرحلة ، يمكن للمستخدم كتابة نص Bash وإنجاز كل شيء في وقت واحد. لا شيء من هذا يعد برمجة – أو متقدمًا في هذا الشأن. ومع ذلك ، نظرًا لحقيقة أن المستخدم يفهم بشكل كافٍ طريقة عمل Arch Linux ، فسيكون قادرًا على أتمتة عملية ما بعد الإعداد بالكامل تقريبًا (بيئة سطح المكتب ، وبرامج التشغيل ، وإعداد المستخدم ، وما إلى ذلك).
الحد الوحيد لبرنامج bash الخاص بك هو معرفتك بنظام Linux و Bash! إنشائها أسهل مما تعتقد.
ابدء
يجب تحديد الأشياء وتحميل الموارد عند كتابة التعليمات البرمجية. يجب تحديد بعض الأشياء أيضًا عند البرمجة باستخدام الصدفة. في برمجة Bash ، يُعرف هذا باسم “shebang”. تخبر حروف shebangs المستخدمة في النصوص البرنامج النصي ما هو المترجم الذي يجب أن يتم تنفيذه بموجبه. قد يكون هذا هو Bash أو أي نصوص أخرى متوفرة في نظامك. لاحظ أن اللغات المختلفة لها لغاتها الخاصة.
على سبيل المثال: عند كتابة نص بلغة Python ، فإن كلمة shebang ستكون
#!/usr/bin/python
لدى Bash العديد من أنواع shebang المختلفة التي يمكن استخدامها ، ولكن ربما لم يشاهد معظم المستخدمين سوى
#!/bin/bash
كقاعدة عامة ، استخدم #! / bin / bash عند كتابة نص بسيط ولا تخطط لإزالته من Linux. جميع توزيعات Linux الحديثة موجودة على نفس إصدار bash ، وعادةً ما توجد bash shell في نفس المكان.
shebang آخر يثبت أنه مفيد هو
#!/usr/bin/env bash
إنه مصمم لإمكانية النقل ويجب استخدامه إذا كان البرنامج النصي مصممًا للتشغيل على أنظمة تشغيل أخرى شبيهة بـ Unix (BSDs و macOS وما إلى ذلك).
أفضل الممارسات
يمكن أن تكون كتابة النصوص في Bash عملية معقدة – إذا قام الكاتب بذلك. في أغلب الأحيان ، تكون البرامج النصية مجرد مجموعة من العمليات المختلفة. نقل ملف وتنزيل شيء ما وتثبيت برامج وما إلى ذلك.
- ضع في اعتبارك أن Bash هي لغة مصممة للتعامل مع الملفات والعمليات على النظام. إذا كان Bash يلبي احتياجاتك ، فهذا جيد. ومع ذلك ، افهم أنه بالنسبة للبرمجة المتقدمة ، فإن Bash ليس الخيار الصحيح حقًا ، وسيكون من الأفضل الانتقال إلى شيء مثل Python.
- اجعل البرامج النصية الخاصة بك “SH” متوافقة وبتنسيق “.sh” إذا كانت الخطة هي استخدام البرامج النصية على أكثر من مجرد نظام Linux. على الرغم من أن أنظمة التشغيل الأخرى المشابهة لـ UNIX قد تحتوي على قذائف “تشبه bash” ، إلا أن بعضها لا يحتوي على bash على الإطلاق ، ومن الجيد أن تكون مستعدًا لذلك.
- تعرف على غلاف Bash وكيف يعمل. سيساعدك على كتابة نصوصك بشكل أفضل.
- استخدم دائمًا Shebang ، والأهم من ذلك ، استخدم الشيء الصحيح. يمكن أن يعني الفرق بين النص الجيد والآخر السيئ الذي لا يعمل بشكل صحيح.
- دائما التعليق على كل عملية. في غضون ستة أشهر ، قد تعود إلى النص الخاص بك وتتساءل عما يعنيه كل شيء ، لذلك من الأهمية بمكان أن يتم توثيق النص بشكل جيد وسهل الفهم (لك ولأي شخص آخر قد يراه).
اجعل الكود الخاص بك قابلاً للقراءة. حتى لو لم يكن النص الخاص بك معقدًا ، يجب أن يظل منطقيًا ، وجعله أسهل مما تعتقد. - اختبر البرنامج النصي بحثًا عن الأخطاء قبل إعطائه للآخرين. لا تجعل الآخرين يختبرون الأخطاء نيابة عنك. من الناحية المثالية ، يجب أن تعمل البرامج النصية قبل إرسالها ليستخدمها الأشخاص.
صنع برنامج نصي
لبدء البرمجة النصية ، كل ما تحتاجه هو محرر نصوص. أي محرر نصوص بسيط سيفي بالغرض. لا يجب أن تكون معقدة أو شاملة. في هذا المثال ، نقوم بعمل نص ترحيبي بسيط باستخدام محرر Gedit.
قم بإنشاء وفتح البرنامج النصي في Gedit
قم بإنشاء نص باسم “greetings.sh” وافتحه داخل محرر Gedit. هذا الجزء الأول من البرنامج النصي هو shebang ، كما ذكرنا سابقًا. يسمح هذا للبرنامج النصي بإخبار المترجم الشفهي بما يجب أن يستخدمه لفهم الكود.
#!/bin/bash
بعد ذلك ، دعنا نكتب تعليقًا. سيسمح هذا لأي شخص يستخدم البرنامج النصي بفهم المقصود من الكود القيام به. يمكن إضافة التعليقات إلى نص برمجي عن طريق وضع رمز #. لن يتم التقاط أي شيء بعد ذلك بواسطة النص.
# My first Linux script
طباعة كلمة ترحيب بسيطة
لطباعة أي إخراج ، نستخدم الأمر echo في bash. إذا كنت تريد طباعة “Hello world” ، فيجب أن يبدو الأمر كما يلي:
echo "Hello world"
اجعل البرنامج النصي قابلاً للتنفيذ
لجعل البرنامج النصي قابلاً للتنفيذ ، نستخدم الأمر chmod.
chmod +x greetings.sh
يعني + x إضافة إذن التنفيذ إلى ملف البرنامج النصي. لتشغيل البرنامج النصي ، قم باستدعاء اسم البرنامج النصي بمساره النسبي.
./greetings.sh
أخذ مدخلات المستخدم
يعتبر أخذ مدخلات المستخدم هو الميزة الأساسية في برنامج bash النصي ، ويجب أن يكون لديك مفهوم المتغيرات في bash. المتغيرات مثل التخزين حيث يمكنك تخزين القيم. في هذه الحالة ، نقوم بتخزين مدخلات المستخدم في متغير bash. لتقديم مساهمة ، نطرح سؤالاً على المستخدم.
echo -e "What is your name: "
عندما يقوم المستخدم بإدخال اسمه ، يمكننا قراءة المدخلات باستخدام متغير bash يسمى inputname.
echo -e "What is your name: " read inputname
يمكنك استخدام أي اسم متغير تفضله ، ولكن تأكد من إضافة الأمر read بعد أمر echo مباشرة.
طباعة رسالة ترحيب
اسم المستخدم المخزن هو متغير اسم الإدخال. لتحية المستخدم ، نستخدم الأمر echo مرة أخرى.
echo "Good morning $inputname"
نستخدم علامة $ لتمثيل متغير داخل سلسلة نصية. احفظ البرنامج النصي وقم بتشغيله باستخدام الأمر ./greetings.sh.
الآن يمكنك عمل تحياتك الخاصة ومشاركتها مع أصدقائك.
ملحقات الملفات
لا يوجد اختلاف في امتدادات الملفات للنصوص البرمجية. تسمية ملف بامتداد الملف “.sh” لا تؤثر كثيرًا على طريقة تشغيل البرنامج. سيستمر تشغيل نص Bash بدون امتداد للملف – ملفات نصية فارغة وكل شيء بينهما طالما كانت الأوامر والوسيطات الصحيحة موجودة.
على الرغم من أن قشرة Bash تتجاهل امتدادات الملفات ، فإن هذا لا يعني أن كاتب النص يجب أن يفعل ذلك. تعتمد بعض بيئات سطح المكتب التي تسمح لك بتعيين البرامج النصية لـ shell ليتم تشغيلها عند بدء التشغيل على البرنامج النصي للحصول على امتداد الملف “.sh” الصحيح. هذا يساعد أيضا لأغراض التنظيم.
عندما يتعلق الأمر بذلك ، يتم حفظ معظم برامج shell النصية كملفات “.sh” من أجل قابلية النقل. ليس لـ “sh” أي علاقة بـ Bash نفسه ، ويمكن تشغيل البرنامج النصي مع أي صدفة متوافقة.
بدلاً من ذلك ، يمكن حفظ البرامج النصية كـ .bash ، .ksh (Unix korn shell) ، إلخ. امتدادات الملفات هذه أقل شأناً وتحد بالفعل من فائدة البرنامج النصي. ويرجع ذلك إلى أنها مصممة فقط للأصداف التي تستخدم تلك الامتدادات.
أسئلة مكررة
س 1. هل من السهل تعلم البرمجة النصية Bash ؟
الجواب. إذا كنت قد تعرفت على لغات البرمجة ، فستبدو برمجة bash سهلة إلى حد ما. تشترك في نفس مفاهيم البرمجة ، مثل المتغيرات والحلقات وما إلى ذلك ، ولكن إذا كنت لا تعرف أي شيء عن البرمجة ، فإنني أوصيك أن تبدأ بـ Python . من السهل جدًا تعلم لغة Python ، ويمكنك أيضًا إنشاء نصوص باستخدامها.
س 2. هل Bash يستحق التعلم؟
الجواب. إذا كنت تقود Linux يوميًا أو تستخدم Linux في بيئة عملك ، فيجب أن تتعلم البرمجة النصية bash. يمكنك أيضًا تعلم bash لأتمتة مهمتك اليومية. بخلاف ذلك ، لا أرى أي استخدام لـ Bash في صناعة تطوير البرمجيات.
س 3. كيف يمكنني تعلم البرمجة النصية Bash في Windows؟
الجواب. لا توجد طريقة أصلية لتعلم bash في Windows ، ولكن يمكنك استخدام نظام Windows الفرعي لنظام Linux (WSL) لتشغيل توزيع Linux داخل جهاز Windows الخاص بك واستخدامه لتشغيل أوامر bash.