الشرح المبسط
الشرح التقني المتقدم
الغلاف (Shell) هو برنامج يعمل كواجهة أو مترجم للأوامر (Command Interpreter) بين المستخدم ونواة النظام (Kernel). عندما تقوم بكتابة أمر في الطرفية (Terminal)، يقوم الغلاف بقراءته، تفسيره، ثم يرسل التعليمات إلى النواة لتنفيذها. بدون الغلاف، لن يكون هناك طريق سهل ومباشر للتواصل مع الطبقات العميقة لنظام التشغيل.
أشهر أنواع الغلاف في أنظمة لينكس
رغم أن الفكرة واحدة، إلا أن هناك عدة أنواع من الأغلفة، تختلف في ميزاتها وطريقة كتابة بعض السكربتات (Scripts) فيها:
- باش (Bash): هو اختصار لـ Bourne Again Shell، وهو الغلاف الافتراضي في معظم توزيعات لينكس (Linux Distributions) مثل أوبونتو (Ubuntu) وديبيان (Debian).
- زي شيل (Zsh): يتميز بقدرات تخصيص عالية، إكمال تلقائي ذكي (Auto-completion)، ودعم لسمات برمجية متقدمة، وأصبح الغلاف الافتراضي في نظام ماك (macOS) وبعض توزيعات لينكس الحديثة.
- فيش (Fish): مصمم ليكون سهل الاستخدام (User-friendly) مع تلوين تلقائي للأوامر واقتراحات ذكية بناءً على تاريخ الأوامر (History).
كيف تعمل الأوامر داخل الغلاف؟
عندما تكتب أمراً، يبحث الغلاف (Shell) عن البرنامج التنفيذي (Executable) المطابق لهذا الأمر في المسارات المحددة في متغير البيئة (Environment Variable) المعروف باسم PATH.
لنفترض أنك تريد عرض محتويات المجلد الحالي، ستكتب الأمر التالي:
ls -l
في هذا المثال، ls هو اسم البرنامج الذي يعرض الملفات، بينما -l هو خيار (Option) يخبر البرنامج بعرض النتائج في شكل قائمة تفصيلية تحتوي على الصلاحيات، المالك، وتاريخ التعديل.
التوجيه (Redirection) والأنابيب (Pipes)
من أقوى ميزات الغلاف قدرته على التحكم بمسار البيانات الخارجة من البرامج:
- التوجيه (Redirection): باستخدام الرمز
>، يمكنك توجيه مخرجات أمر ما إلى ملف بدلاً من طباعتها على الشاشة. على سبيل المثال:echo "Hello" > file.txt - الأنابيب (Pipes): باستخدام الرمز
|، يمكنك أخذ مخرجات أمر وتمريرها كمدخلات (Inputs) لأمر آخر. مثلاً للبحث عن كلمة "error" في ملف السجلات:
cat /var/log/syslog | grep "error"
ملاحظة ختامية: الصورة الكبرى (نصيحة احترافية)
احتراف الغلاف (Shell) وكتابة سكربتات باش (Bash Scripting) هو الخطوة الأولى لتصبح مدير نظام (System Administrator) أو مهندس ديف أوبس (DevOps Engineer) ناجح. فهو يوفر عليك ساعات من العمل اليدوي المكرر ويسمح بأتمتة (Automation) أعقد المهام بسطور قليلة من الأكواد.