التعرف على صدفة Shell المستخدمة في لينكس

0


سنتعرف في هذا الدرس إن شاء الله البنود التالية:
  1. سرد لخصائص الأصداف Shells المستخدمة في نظام لينوكس
  2. شرح لطريقة عمل ملفات التكوين Configuration files.



يمكن تعريف الصدفة Shell بأنها البرنامج الذي يتلقى الأوامر التي يدخلها المستخدم قبل القيام بتنفيذها من قبل النواه Kernel ، إذا فالصدفة ليست جزءا من النواه بل تعتبر الواجهة الابتدائية التي تفصل المستخدم عن النواه.


هناك العديد من الأصداف التي من الممكن استخدامها مع لينوكس، و فيما يلي سرد لأشهرها:

1-( Bourne shell (sh.

2-(C shell (csh.

3-(Korn shell (ksh.

4-(Bourne Again shell (bash.

كتبت (Bourne shell (/bin/sh بواسطة Steve Bourne و قد تم استيلاد جميع الأصداف الحديثة من هذه الصدفة الأم. تجد هذه الصدفة في جميع أنظمة يونكس، و على الرغم من أنها لا تحتوي على الكثير من الخصائص مثل الأصداف الحديثة إلا أنها تعتبر لغة scripting language مشهورة.
أما (C shell (/bin/csh فقد كتبت بواسطة William Joy و هي تشبه في أسلوبها لغة البرمجة C، و لكنها أقل مناسبة لاستخدامها كلغة scripting language بالمقارنة مع غيرها من الأصداف.

ملاحظة: يمكن تعريف script بأنها تسلسل من أوامر shell و التي يتم تشغيلها في النمط الدفعي batch mode و يمكن تشبيه shell script بالملف الدفعي batch file في الدوس.

أما(Korn shell (/bin/ksh فهي تجمع وظائف صدفة C مع المحافظة على التوافق مع صدفة Bourne shell ، و هي صدفة مشهورة في أنظمة يونكس.

أما صدفة (Bourne Again shell (/bin/bash فهي من الصدفات المشهورة و المنتشرة في أنظمة لينوكس و هي متوافقة مع sh و تحتوي على أفضل ما في كل من csh و ksh.

موجه الأوامر في صدفة C ينتهي بالرمز % بينما تستخدم باقي الأصداف الرمز $.

يمكن تقسيم الأوامر في يونكس و لينوكس إلى نوعين:

1- أوامر داخلية بالنسبة للصدفة.

2- أوامر خارجية بالنسبة للصدفة.

الأوامر الداخلية محددة بنوع الصدفة و تؤثر فقط على الصدفة المستخدمة، و مثال عليها الأمر cd.

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

1- etc/profile/

2- etc/csh.cshrc/

3- profile.

4- cshrc.

أما مجلدات لينوكس الشائعة فهي:

1-usr/local/bin/

2-usr/bin/

3-bin/

4-usr/bin/x11/

5-usr/games/

و حيث أنه ليس كل مجلد خصوصي للمستخدم يتم احتواؤه في البحث في المجلدات الشائعة فإنه عند الرغبة بتنفيذ أمر أو برنامج ما في المجلد الحالي فعليك كتابة الأمر كما يلي:

command/.

مع استبدال command بالأمر المراد تشغيله.
للتعرف على الصدفة التي تستخدمها اكتب الأمر التالي:

Echo $SHELL

و ستحصل على نتيجة شبيهة بما يلي:

bin/bash/

لنتعرف عن قرب على الصدفة bash و التي تعد الأكثر شهرة و استخداما في أنظمة لينوكس.

تتمتع bash بالمميزات التالية:

1- job control و تسمح هذه الميزة للمستخدم بإدارة عدة عمليات يتم تنفيذها في نفس الوقت، و بالتالي يستطيع المستخدم إيقاف ما يشاء من العمليات و استئنافها فيما بعد.

2- اختصار الأوامر الطويلة بأوامر مختصرة و تم ذلك باستخدام الأمر alias كما في المثال التالي:

'Alias d='ls-lF

يقوم الأمر السابق باختصار الأمر ls-lF بالحرف d و هكذا كل مرة تكتب فيها الحرف d و تضغط على Enter سيتم تنفيذ الأمر ls-lF ، تستطيع إضافة أي عدد من الاختصارات للأوامر التي تشاء في الملف .bashrc لتكون متوفرة كل مرة تشغل فيها لينوكس.

3- الإكمال التلقائي للأوامر و أسماء الملفات و هذا يسمح لك بكتابة أول حروف من الأمر أو اسم الملف المراد و من ثم اضغط على Tab و سيحاول لينوكس إكماله تلقائيا، أما إذا رغبت بإكمال أمر ما و لكن هناك عدة أوامر تبدأ بنفس الحروف على سبيل المثال كتبت mk و أردت إكمال الأمر فعليك الضغط مرتين على Tab لتحصل على قائمة بالأوامر و أسماء الملفات التي تبدأ بالحرفين mk.

4- توفير واجهة لتحرير الأوامر.

5- إمكانية تحرير الأوامر السابقة بدلا من إعادة كتابتها، و لاستدعاء أي أمر سابق و التنقل بين الأوامر التي سبق كتابتها تستطيع الضغط على السهم العلوي أو السفلي إلى أن تصل إلى الأمر المطلوب ثم تضغط على Enter. تحفظ bash آخر خمسين أمرا سبق كتابتها.

6- تحرير الأوامر باستخدام Ctrl+Tو الذي يسمح باستبدال الرمز على يسار المؤشر بالرمز تحت المؤشر كما في المثال التالي:

لنفترض أنك كتبت الكلمة mroe و أردت تصحيحها إلى more فيكفي أن تضع المؤشر على الحرف o و تضغط على CTRL+T و سيتم تصحيح الكلمة.

7- إمكانية استخدام الرموز لاختصار مجموعة من أسماء الملفات.

تستطيع التحكم بالبيئة التي تعمل عليها في لينوكس باستخدام ملفات التكوين configuration files و تعرف أيضا بملفات run control (rr) و تسمى أيضا الملفات النقطية dot files و ذلك لأنها تبدأ دوما بالنقطة (.).

عندما يتم استدعاء bash عند الولوج إلى النظام فإنها تقوم بقراءة نوعين من ملفات التكوين:

1- system-wide configuration files، و من أمثلتها : etc/profile/ و etc/bashrc/.

2- user-defined initialization files و يمكن أن تجدها في المجلد الرئيسي للمستخدم home directory.

و بينما تعتبر ملفات النوع الأول عامة في طبيعتها فإن ملفات النوع الثاني تعكس الخصائص و التفضيلات الشخصية للمستخدم.

و هكذا فإن bash تقوم أولا بتنفيذ الأوامر في /etc/profile و من ثم تبحث عن الملفات التالية في المجلد الرئيسي للمستخدم:

1- bash_profile./~

2- bash_login./~

3- profile./~

و تقوم بتنفيذ الأوامر فقط في أول ملف تجده من الملفات السابقة بالترتيب دون إكمال باقي الملفات.