Bash/common shell programs

من موسوعة حسوب

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

يفسر برنامج صَدَفة يونكس أوامر المستخدم التي يدخلها بنفسه أو التي يمكن استخراجها وقراءتها من ملف نصي يسمى شيفرة الصَّدَفة النصية (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 ~]$