ما هي البرمجة النصية شل ولماذا يجب عليك استخدامها

ما هي البرمجة النصية شل ولماذا يجب عليك استخدامها

الصدفة عبارة عن برنامج داخل نظام تشغيل Linux أو Unix يسمح لك بإدخال أوامر للتنفيذ بواسطة النظام. عند فتح نافذة طرفية على كمبيوتر يعمل بنظام Linux ، يبدأ تشغيل برنامج shell الذي يقدم واجهة لإدخال الأوامر. تُعرف هذه الواجهة بواجهة سطر الأوامر. عندما يتم إدخال أمر ، يتم تنفيذه بواسطة shell ويتم عرض الإخراج على الشاشة.





بالإضافة إلى قدرتها على قبول الأوامر وتنفيذها بشكل تفاعلي ، يمكن أن تنفذ shell أيضًا الأوامر المخزنة في ملف. يُعرف وضع التنفيذ هذا باسم البرمجة النصية شل ، وفي هذه المقالة نغطي أساسيات البرمجة النصية للصدفة.





1. تاريخ شل

بدءًا من نظام التشغيل Unix في السبعينيات ، كان هناك برنامج شل يسمى شل V6 تم تطويره بواسطة كين طومسون. لقد كانت قذيفة تفاعلية وتفتقر إلى القدرة على البرمجة النصية.





تبعه بورن شل في عام 1977 ولا يزال قيد الاستخدام حتى اليوم باعتباره الغلاف الافتراضي لـ جذر الحساب. أضافت هذه الصدفة قدرات البرمجة التي أثبتت أنها مفيدة للغاية في الممارسة على مر السنين.

أدى التطوير الإضافي للقذيفة في الثمانينيات إلى ظهور العديد من متغيرات الصدفة الشائعة ، وأشهرها كان سي شل و ال كورن شل . جلبت كل من هذه القذائف تركيبها الخاص الذي ، في بعض الحالات ، كان مختلفًا تمامًا عن الغلاف الأصلي.



واحدة من أكثر القذائف شعبية اليوم هي شل باش . Bash تعني بورن قذيفة ثانية وهو متغير محسّن بشكل كبير من Bourne Shell الأصلي.

كيفية مشاهدة البث التلفزيوني المباشر على الكمبيوتر

في هذه المقالة ، نصف البرمجة النصية لـ shell لـ شل باش .





2. تنفيذ برنامج شل النصي

كيف تقوم بتنفيذ برنامج شيل؟ بسيط. ما عليك سوى تمرير مسار البرنامج النصي كوسيطة إلى الصَدَفة:

نموذج نصي للقذيفة:





echo 'hello world'

قم بتشغيله على النحو التالي:

$ bash hello.sh
# prints
hello world

ملحوظة: يتطلب الغلاف أن يتم إنهاء الأسطر بأحرف LF (تغذية خطية). إذا كتبت برنامج شل النصي الخاص بك على Windows وحاولت تنفيذه مباشرة على نظام Linux ، فقد تواجه أخطاء. يستخدم Windows مجموعة CR-LF (Carriage-Return-Line-Feed) لإنهاء السطر. يجب تحويل هذا إلى LF فقط. تحقق من محرر Windows الخاص بك لمعرفة طرق القيام بذلك.

هناك طريقة أخرى لتنفيذ برنامج شيل مباشرة كأمر. أدخل السطر التالي (ملف hashbang إعلان) باعتباره السطر الأول من نص شل الخاص بك.

تحريك طبقات الفوتوشوب بعد التأثيرات
#!/bin/bash

مع هذا التغيير ، أصبح نص شل البسيط الآن:

#!/bin/bash
echo 'hello world'

الآن ، تحتاج إلى جعل ملف البرنامج النصي قابلاً للتنفيذ على النحو التالي:

$ chmod +x hello.sh

في هذه المرحلة ، يمكنك تنفيذ ملف البرنامج النصي مباشرة دون الحاجة إلى الرجوع إلى shell بشكل صريح.

$ hello.sh
# prints
hello world

دعونا الآن نلقي نظرة على بعض مزايا استخدام البرامج النصية للصدفة.

3. أتمتة المهام

الميزة الأولى لاستخدام البرامج النصية للقذيفة هي أتمتة المهام التي يتم تنفيذها بشكل متكرر. افترض أن لديك مهمة تحتاج إلى أداؤها كل يوم. إذا كنت بحاجة إلى تنفيذ أوامر متعددة على نظام Linux الخاص بك كل يوم ، فيمكنك تخزين هذه الأوامر في ملف وتشغيل البرنامج النصي. الامثله تشمل:

  • أرشفة وتحميل ملف أو مجلد كل يوم إلى ملف مرفق التخزين السحابي مثل S3.
  • ضغط ملفات السجل التي تميل إلى النمو كل يوم.
  • جلب أسعار الأسهم ، وتحليل البيانات التي تم جلبها ، وتشغيل رسالة بريد إلكتروني أو رسالة نصية قصيرة عند استيفاء شروط معينة (أسعار مرتفعة جدًا أو منخفضة جدًا).

4. الجمع بين أوامر متعددة

بالإضافة إلى أتمتة المهام المتكررة ، قد تجد أنه من المفيد أيضًا دمج تسلسلات متعددة من الأوامر في أمر واحد. إن تذكر أمر واحد أسهل بكثير من أوامر متعددة ، ناهيك عن الترتيب الذي يجب أن يتم تنفيذه به.

مثال على ذلك هو تسلسل التمهيد لنظام التشغيل Linux نفسه. كجزء من التمهيد ، ينفذ نظام التشغيل عددًا من الأوامر للوصول بالنظام إلى الحالة المناسبة. هذه الأوامر هي في الواقع نصوص شل التي تعيش تحت الامتداد /إلخ الدليل. إذا ألقيت نظرة على أحد نصوص الصدفة هذه ، فسوف تدرك مدى تعقيد تمهيد النظام ، والذي ربما كان عليك القيام به يدويًا في حالة عدم وجود برامج نصية للقذيفة.

فيما يلي نموذج لبرنامج نصي ، / الخ / الملف الشخصي ، والتي يتم تنفيذها في كل مرة يقوم فيها المستخدم بتسجيل الدخول. تخيل كتابة هذه الأوامر يدويًا!

# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
if [ '$PS1' ]; then
if [ '$BASH' ] && [ '$BASH' != '/bin/sh' ]; then
# The file bash.bashrc already sets the default PS1.
# PS1='h:w$ '
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
else
if [ '`id -u`' -eq 0 ]; then
PS1='# '
else
PS1='$ '
fi
fi
fi
# The default umask is now handled by pam_umask.
# See pam_umask(8) and /etc/login.defs.
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi

5. أسهل للتطوير

من الممكن تنفيذ نفس الإجراءات التي يقوم بها برنامج shell script داخل برنامج عادي مكتوب بلغة C / C ++. ومع ذلك ، فمن الأسهل بكثير كتابة وتصحيح برنامج نصي shell من برنامج C / C ++. خاصة بالنسبة لمهام إدارة النظام التي تشمل تنفيذ الأوامر الخارجية ، وإنشاء الملفات والدلائل وإزالتها ، وإعادة توجيه الإخراج ، وما إلى ذلك.

تعد برامج C / C ++ أفضل لمستوى تشغيل أقل بكثير ، مثل استدعاء استدعاءات النظام ، ومعالجة هياكل البيانات ، وما إلى ذلك.

6. الشفافية

يمكن بسهولة عرض البرنامج النصي للصدفة ، بحكم كونه ملفًا نصيًا ، للتحقق من الإجراءات التي يقوم بها. على النقيض من ذلك ، فإن الطريقة الوحيدة التي ستعرف بها ما يفعله البرنامج المكتوب بلغة مثل C / C ++ (والمترجمة إلى ملف قابل للتنفيذ) هي إذا اختار أن يخبرك أو إذا كان لديك حق الوصول إلى الكود المصدري. على سبيل المثال ، يمكنك التحقق مما إذا كان البرنامج النصي shell يحذف أي ملفات ، وإذا كنت بحاجة إلى هذه الملفات ، فيمكنك نسخها إلى موقع مختلف.

كما أنه من الأسهل بكثير تشخيص المشكلات المتعلقة بنصوص الصدفة بدلاً من البرامج العادية حيث يمكنك إلقاء نظرة على الكود المصدري. هل هذا البرنامج النصي فشل بسبب عدم وجود دليل؟ يمكنك البحث في كود البرنامج النصي وإنشاء الدليل (على الرغم من أن البرنامج النصي الصادق الذي يعمل بشكل جيد يجب أن يقوم بفحصه وإنشائه لتجنب مثل هذه الأخطاء).

7. محمول

إلى شيل يمكن نقلها إلى أنظمة تشغيل أخرى شبيهة بـ Unix و Unix وتنفيذها (إذا كان الغلاف نفسه موجودًا). حتى عند نقل برنامج نصي للقذيفة من بنيات مختلفة مثل x86 و MIPS و Sparc وما إلى ذلك ، فإن البرامج النصية للشل تكون أكثر قابلية للنقل من برامج C / C ++.

الطريقة الوحيدة التي يمكن بها نقل برنامج C / C ++ واستخدامه على نظام آخر هي نسخ الكود المصدري ، وبناء البرنامج ، ومحاولة تشغيله. حتى مع ذلك ، قد لا يعمل كما هو متوقع إذا كان يستخدم رمزًا خاصًا بالعمارة.

الآن بعد أن أصبحت لديك فكرة عن ماهية نصوص الشل ومزاياها العديدة ، ألا ترغب في استخدامها في مهامك؟ ما هي المشاكل التي واجهتها عند استخدامها؟ واسمحوا لنا أن نعرف في التعليقات أدناه.

لماذا لا تقول رسالتي تسليمها
يشارك يشارك سقسقة بريد الالكتروني 5 نصائح لزيادة كفاءة أجهزة VirtualBox Linux الخاصة بك

هل سئمت من الأداء الضعيف الذي تقدمه الأجهزة الافتراضية؟ إليك ما يجب عليك فعله لتعزيز أداء VirtualBox الخاص بك.

اقرأ التالي
مواضيع ذات صلة
  • برمجة
  • لينكس باش شل
نبذة عن الكاتب جاي سريدهار(تم نشر 17 مقالة) المزيد من Jay Sridhar

اشترك في نشرتنا الإخبارية

انضم إلى النشرة الإخبارية لدينا للحصول على نصائح تقنية ومراجعات وكتب إلكترونية مجانية وصفقات حصرية!

انقر هنا للاشتراك