Bash/Topics

من موسوعة حسوب
مراجعة 18:06، 23 يوليو 2018 بواسطة أسامه-دمراني (نقاش | مساهمات) (تعديل تنسيق شيفرة bash)

صدفة Bash وبرامج Bash

البرامج الشائعة للصَّدَفة

الوظائف العامة للصدفة

يفسر برنامج صَدَفة يونكس أوامر المستخدم التي يدخلها بنفسه أو التي يمكن استخراجها وقراءتها من ملف نصي يسمى شيفرة الصَّدَفة النصية (shell script) أو برنامج الصدفة(shell program). وتكون تلك الملفات النصية مفسّرة (interpreted) على خلاف الملفات المُجمّعة (compiled)، بمعنى أن الصدفة تقرأ الأوامرَ سطرًا سطرًا وتبحث عنها في النظام، على خلاف البرامج المُجمَّعة التي يحوِّل المُجمِّع (compiler) شيفرتها إلى ملف تنفيذي (executable file) مكتوب بلغة يستطيع الحاسوب فهمها -لغة الآلة-، ثم يُمكن استخدام ذلك الملف بعدها داخل ملف shell script. والمهمة الأساسية للصَّدَفة هي توفير بيئة للمستخدم يمكن تعديلها وإعدادُها بشكل مستقل عبر استخدام ملفات إعداد الموارد في الصدفة (shell resource configuration files).

الأنواع المختلفة للصَّدَفة

يوفر نظام يونكس عادة أنواعًا مختلفة من الصدفة، تمامًا كما هو الحال في اللغات واللهجات المختلفة بالنسبة للبشر:

  • sh أو صدفة بورن (Bourne Shell): هي الصدفة الأصلية التي لا تزال موجودة ومستَخدمةً في أنظمة يونكس والبيئات التي ترتبط به، وهي صدفة بسيطة تتكون من برنامج صغير به بضع مزايا قليلة. وستجد هذه الصَّدَفة في أي نظام لينكس من أجل التوافق مع برامج يونكس، رغم أنها ليست الصدفة الافتراضية (standard shell).
  • bash أو Bourne Again SHell: هي الصدفة الافتراضية في نظام جنو (GNU)، وتتميز بسهولة الاستخدام والمرونة، ويمكن القول أنها أكثر صَدَفة يُنصح المبتدئون باستخدامها رغم أنها في نفس الوقت أداة قوية للمستخدمين المتقدمين والمحترفين، كما أنها الصدفة الافتراضية للمستخدم العادي في أنظمة لينكس. وتحتوي صدفة bash على مجموعة من الإضافات (add-on) والملحقات (plugin)، ما يعني أنها متوافقة مع صدفة Bourne الأصلية، فالأوامر التي تعمل في sh ستعمل أيضًا في bash، لكن العكس قد لا يحدث أحيانًا، واعلم أن كل الأمثلة والتدريبات في هذا الشرح تستخدم bash.
  • csh أو صدفة C: تحاكي أوامرُ هذه الصدفة أوامرَ لغة البرمجة الشهيرة C، ويستخدمها المبرمجون في الغالب.
  • Tcsh أو صدفة TENEX C: هي نسخة محسّنة من صدفة C العادية، تتميز بأنها أكثر سرعة وسهولة في الاستخدام، لهذا يطلق عليها البعض صدفة Turbo C.
  • ksh أو صدفة Korn: يفضّل المستخدمون القادمون من أنظمة يونكس استخدام تلك الصدفة، وهي أيضًا نسخة محسّنة من صدفة بورن، وتأتي بإعدادات افتراضية قد تكون صعبة على المبتدئين.

يقدّم ملف etc/shells/ صورة عامة عن أنواع الصدفات التي توجد في نظام لينكس عادي:

hsoub:~> cat /etc/shells
/bin/bash
/bin/sh
/bin/tcsh
/bin/csh

وتوجد الصَّدَفة الافتراضية الخاصة بك في ملف etc/passwd/، في سطر يشبه السطر التالي الخاص بمستخدم اسمه hsoub:

hsoub:L2NOfqdlPrHwE:504:504:Hsoub:/home/hsoub:/bin/bash

وللتبديل بين صدفة وأخرى، أدخل اسم الصدفة التي تريدها في الطرفية، وسيبحث النظام عن المجلد الذي يقع فيه ذلك الاسم باستخدام إعدادات PATH. وبما أن الصدفةَ ملفٌ تنفيذي -برنامج- فإن الصدفة الحالية ستفعِّل ذلك البرنامج وتُنفِّذُه، وسيظهر محثٌّ جديد غالبًا بسبب أن كل صدفة لها مظهرها الخاص:

hsoub:~> tcsh
[hsoub@post21 ~]$

مزايا صدفة Bash

تنفيذ الأوامر في Bash

وحدات البناء الأساسية

تطوير برامج Bash جيدة

كتابة وتنقيح برامج Bash

إنشاء وتشغيل برنامج Bash

أساسيات كتابة برامج Bash

تنقيح برامج Bash

بيئة Bash

ملفات تهيئة الصدفة

المتغيرات

اقتباس المحارف

التوسعات

الأوامر البديلة

المزيد من خيارات Bash

التعابير النمطية في Bash

أمثلة عن استخدام grep

مطابقة الأنماط باستخدام ميزات Bash

البنى الشرطية في Bash

مقدمة إلى if

استخدامات if المتقدمة

استخدام البنية case

كتابة برامج Bash تفاعلية

عرض رسائل المستخدم

الحصول على مدخلات المستخدم

المهام التكرارية في Bash

حلقة for

حلقة while

حلقة until

إعادة التوجيه والحلقات

الأمران break و continue

إنشاء قوائم باستخدام الأمر المضمن select

استخدام الأمر المضمن shift

المزيد حول المتغيرات

أنواع المتغيرات

المصفوفات

العمليات على المتغيرات

الدوال

مقدمة إلى الدوال

أمثلة عن الدوال في برامج Bash

التقاط الإشارات

الإشارات

الأفخاخ