حرف B

صدفة باش (مفسر أوامر باش)

Bash

آخر تحديث: 2026-10-06
مستوى الشرح اختر المستوى التقني المناسب لك

الشرح المبسط

تخيل أن نظام لينكس هو مطعم كبير، وأن النواة هي الطاهي الذي يعمل في المطبخ بالداخل ولا يتحدث إلا لغة تقنية معقدة جداً لا يفهمها البشر. صدفة باش (Bash) هي بمثابة النادل الذكي الذي يقف بينك وبين المطبخ؛ أنت تطلب منه ما تريد بلغة أوامر بسيطة ومفهومة عن طريق لوحة المفاتيح، فيقوم هو بترجمة طلبك فوراً ونقله إلى النظام لتنفيذه ثم يعود إليك بالنتيجة على الشاشة. بفضل باش، يمكنك التحكم الكامل بجهازك، من إنشاء الملفات ونقلها إلى تشغيل البرامج وأتمتة المهام اليومية المتكررة بضغطة زر واحدة.

الشرح التقني المتقدم

تُعد صدفة باش (Bash)، وهي اختصار لعبارة Bourne-Again SHell، مفسر الأوامر القياسي والافتراضي في معظم توزيعات جنو/لينكس. تم تطويرها بواسطة براين فوكس لصالح مشروع جنو كبديل حر ومطور لصدفة بورن القديمة sh. تعمل باش كطبقة وسيطة بين المستخدم ونواة النظام (Kernel)، حيث تقرأ الأوامر النصية سواء من الإدخال التفاعلي المباشر أو من ملفات نصية تُعرف باسم السكربتات (Shell Scripts)، وتقوم بتحليلها وتحويلها إلى استدعاءات نظام (System Calls) تنفذها النواة.

آلية عمل صدفة باش وملفات التهيئة

عند بدء جلسة عمل جديدة، تقوم باش بقراءة مجموعة من ملفات الإعدادات لتجهيز بيئة العمل، وتختلف هذه الملفات حسب نوع الجلسة:

- ملف /etc/profile: ملف الإعدادات العام الذي يُطبق على كافة المستخدمين عند تسجيل الدخول.

- ملف ~/.bashrc: الملف الأشهر والأكثر استخداماً، ويتم استدعاؤه في كل مرة تفتح فيها نافذة طرفية تفاعلية (Interactive Non-login Shell)، ويُستخدم لحفظ الاختصارات (Aliases) والدوال المخصصة وتخصيص شكل موجه الأوامر.

- ملف ~/.bash_profile: يُقرأ عند تسجيل الدخول المباشر إلى النظام (Login Shell)، وغالباً ما يحتوي على كود يستدعي ملف ~/.bashrc تلقائياً.

الاستخدام العملي وتنفيذ الأوامر المتقدمة

تتميز باش بقدرتها العالية على دمج عدة أوامر في سطر واحد والتحكم في مسار النتائج والأخطاء. إليك مثالاً عملياً ينشئ مجلداً للنسخ الاحتياطي ثم ينسخ إليه ملفاً مهماً مع حفظ سجل العملية:

أمر التنفيذ:

mkdir -p ~/backup && cp /etc/fstab ~/backup/fstab.bak > ~/backup/log.txt 2>&1

توضيح لما يحدث أو الفروقات التقنية في هذا السطر:

- أداة الربط الشرطية &&: تربط بين أمرين بحيث يشترط نجاح الأمر الأول لتنفيذ الأمر الثاني. هنا لن يقوم النظام بتنفيذ أمر النسخ cp إلا بعد التأكد من نجاح أمر إنشاء المجلد mkdir بدون أخطاء (وفي لينكس يُعبر النظام عن نجاح أي أمر بإرجاع القيمة 0 كرمز نجاح خلف الكواليس).

- رمز التوجيه >: يقوم بتحويل النتيجة النصية للأمر وحفظها داخل الملف log.txt بدلاً من عرضها على الشاشة.

- الصيغة 2>&1: تدمج رسائل الخطأ (التي يرمز لها النظام بالرقم 2) مع المخرجات العادية (التي يرمز لها بالرقم 1)، مما يضمن تسجيل أي رسائل خطأ تظهر أثناء النسخ داخل نفس ملف السجل.

كتابة وتشغيل سكربتات باش (Bash Scripting)

لتحويل مجموعة من الأوامر إلى أداة مؤتمتة، يتم جمعها في ملف نصي يبدأ بسطر تعريفي خاص يُسمى (Shebang) يخبر النظام بمكان المفسر المسؤول عن تشغيل الملف:

مثال لبنية سكربت أساسي مع تفعيل وضع الأمان الصارم:

#!/usr/bin/env bash
set -euo pipefail
echo "Current User: $USER"

شرح الخيارات المتقدمة المستخدمة داخل السكربت:

- السطر #!/usr/bin/env bash: يوجه النظام للبحث عن مفسر bash داخل متغير البيئة PATH، مما يجعل السكربت قابلاً للعمل على مختلف التوزيعات دون الارتباط بمسار ثابت.

- الخيار -e داخل أمر set: يوقف تشغيل السكربت تلقائياً فور فشل أي أمر بداخله، مما يحمي النظام من تنفيذ خطوات تالية مبنية على خطوة سابقة فاشلة.

- الخيار -u: يمنع استخدام متغيرات فارغة أو غير معرفة مسبقاً ويوقف التنفيذ فوراً لتجنب الأخطاء غير المتوقعة.

- الخيار -o pipefail: يضمن إيقاف السكربت إذا فشل أي أمر فرعي داخل سلسلة أوامر متصلة ببعضها (Pipelines)، وليس الأمر الأخير فقط.

ملاحظة ختامية: الصورة الكبرى (نصيحة احترافية)

عند كتابة سكربتات باش المخصصة لبيئات الإنتاج، احرص دائماً على إحاطة المتغيرات بعلامات اقتباس مزدوجة مثل "$VAR" لتجنب الأخطاء الناتجة عن وجود مسافات في أسماء الملفات. كما يُنصح باستخدام أداة الفحص shellcheck لتحليل أكوادك واكتشاف الأخطاء المنطقية قبل تشغيلها على الخوادم الحية.

المصادر المعتمدة :