الحلقة الدراسية الحادية عشر: التعرف على Shell عن قرب.
(حلقة متقدمة)


سنتناول في هذا الدرس إن شاء الله البنود التالية:

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./~

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

و بهذا نكون قد انتهينا من درس اليوم و إلى اللقاء مع الدرس المقبل.

 

 

 


Copyright © www.kettaneh.net