ما هي Bash؟
What is Bash?
ما هي Bash؟ — What is Bash?
Bash هي اختصار لـ Bourne-Again SHell. كلمة shell تعني الطبقة التي تتحدث من خلالها مع نظام التشغيل. عندما تفتح الطرفية وتكتب ls أو cd أو mkdir فأنت لا تتحدث مع القرص مباشرة؛ أنت تعطي أمراً للـ shell، والـ shell يفسّر الأمر ثم يطلب من النظام تنفيذه. لذلك Bash في أبسط صورة هي واجهة أوامر، لكنها أيضاً لغة سكربتات كاملة تكفي لكثير من أعمال الأتمتة اليومية.
الفرق المهم أن Bash ليست مصممة لتكون لغة تطبيقات كبيرة مثل Go أو Python. قوتها تظهر عندما تحتاج أن تجمع أوامر موجودة: اقرأ ملفاً، ابحث في النص، انسخ مجلداً، افحص حالة خدمة، أو اطبع تقريراً صغيراً. لو حاولت بناء نظام كبير بالكامل داخل Bash ستتعب سريعاً. أما لو استخدمتها كغراء واضح بين أدوات النظام فستكون سريعة ومفيدة جداً.
فكّر فيها مثل دفتر أوامر قابل للتكرار. بدلاً من أن تكتب خمس أوامر كل مرة، تضعها في ملف واحد، تضيف تحققاً بسيطاً، ثم تشغله عند الحاجة. هذا مهم في العمل الحقيقي لأن التكرار اليدوي ينسى خطوة أو يغير ترتيباً. السكربت الجيد يجعل الخطوات مرئية وقابلة للمراجعة.
أول عادة ستتعلمها هنا: اكتب Bash بحذر. اقتبس المتغيرات، تحقق من المدخلات، ولا تجعل السكربت يحذف أو يغير شيئاً قبل أن تكون متأكداً. Bash لا تعطيك حماية كثيرة افتراضياً، لذلك جودة السكربت تأتي من أسلوبك.
Bash على أنظمة مختلفة
Bash متاحة افتراضياً على macOS وLinux. على Windows، يمكن الوصول إليها عبر WSL (Windows Subsystem for Linux)، أو Git Bash، أو محاكي طرفية آخر. المثل والدروس هنا تعمل على الأنظمة الثلاثة، لكن إذا كنت على macOS انتبه أن الإصدار الافتراضي قديم — نصيحة: ثبّت Bash حديث عبر brew install bash. سنعود لهذا لاحقاً عند الحديث عن قابلية النقل.
مثال أولي
لاحظ وجود #!/usr/bin/env bash في أول الملف. هذا السطر يسمى shebang ويخبر النظام أن هذا الملف يجب أن يعمل بواسطة Bash. السطر set -euo pipefail سنشرحه لاحقاً، لكنه يعبر عن نية مهمة: نريد سكربتاً يفشل بوضوح بدلاً من أن يكمل بصمت بعد خطأ.
متى تستخدم Bash؟
استخدم Bash عندما تكون المهمة قريبة من الملفات والأوامر: ترتيب مجلد، تشغيل سلسلة أوامر، فحص روابط، بناء تقرير من logs، أو تجهيز خطوة نشر. استخدم Go أو Python عندما تحتاج منطقاً طويلاً، اختبارات كثيرة، أنواع بيانات معقدة، أو برنامجاً سيكبر مع الوقت.