





السمعة:
بسم الله الرحمن الرحيم
اللهم اجعل عملنا خالصًا لوجهك الكريم ولا تجعل لأحدٍ فيه سواك شيئًا يارب العالمين.
بهذا الموضوع رح احكي عن الـ Bash Script بشكل مبسط لنعرف ايش هي الـ Bash وايش الـ Shell والعلاقة بينهم ولايش بنستخدمها وكيف استفيد منها كـ Cyber Security Team ؟
قبل ما نبدأ رح نتطرق لمواضيع عديدة إن شاء الله بتخص الباش بحيث انه رح نتعلم سوا كيف نكتب script فيها بشكل كامل بطريقة سهلة وممتعة.
لهيك استعد معنا لنبدأ رحلتنا. باسمك اللهم نبدأ...
بالبداية بدنا نعرف إنه shell هي عبارة عن واجهة بين المستخدم ونظام التشغيل، حيث يسمح للمستخدمين بإدخال الأوامر والتفاعل مع النظام. ممكن أنه يكون واجهة نصية (Command-Line Interface - CLI) أو رسومية (GUI)، لكنه غالبًا يُستخدم للإشارة إلى بيئة الأوامر النصية في أنظمة Unix/Linux.
يعني بنقدر نحكي انه الـ shell هو وسيط بين المستخدمين وأنظمة التشغيل بتسمحلهم بالتواصل مع بعض عن طريق إنه اليوزر يدخل أوامر ويتفاعل من النظام.
هذا الـ shell بقدم عدة فوائد للمستخدم منها:
اللهم اجعل عملنا خالصًا لوجهك الكريم ولا تجعل لأحدٍ فيه سواك شيئًا يارب العالمين.
بهذا الموضوع رح احكي عن الـ Bash Script بشكل مبسط لنعرف ايش هي الـ Bash وايش الـ Shell والعلاقة بينهم ولايش بنستخدمها وكيف استفيد منها كـ Cyber Security Team ؟
قبل ما نبدأ رح نتطرق لمواضيع عديدة إن شاء الله بتخص الباش بحيث انه رح نتعلم سوا كيف نكتب script فيها بشكل كامل بطريقة سهلة وممتعة.
لهيك استعد معنا لنبدأ رحلتنا. باسمك اللهم نبدأ...
بالبداية بدنا نعرف إنه shell هي عبارة عن واجهة بين المستخدم ونظام التشغيل، حيث يسمح للمستخدمين بإدخال الأوامر والتفاعل مع النظام. ممكن أنه يكون واجهة نصية (Command-Line Interface - CLI) أو رسومية (GUI)، لكنه غالبًا يُستخدم للإشارة إلى بيئة الأوامر النصية في أنظمة Unix/Linux.
يعني بنقدر نحكي انه الـ shell هو وسيط بين المستخدمين وأنظمة التشغيل بتسمحلهم بالتواصل مع بعض عن طريق إنه اليوزر يدخل أوامر ويتفاعل من النظام.

- تشغيل الأوامر: يسمح للمستخدم بتنفيذ أوامر لإدارة الملفات، تشغيل البرامج، وإدارة النظام.
- أتمتة المهام: يمكن كتابة سكريبتات لتنفيذ عمليات متكررة بدلاً من إدخال الأوامر يدويًا.
- إدارة النظام: يساعد المسؤولين (SysAdmins) في تشغيل وإدارة السيرفرات والخدمات.
- التحكم في المدخلات والمخرجات: يمكن توجيه المدخلات والمخرجات بسهولة باستخدام I/O Redirection و Pipes.
- التفاعل مع النظام: يمكن قراءة حالة النظام، فحص العمليات، والتحكم في الموارد.
كمان عندي عدة أنواع للـ shell رح نخصص حديثنا عن الbash لكن حلو نعرف ايش في أنواع غيره. الجدول يلي أسفل الصورة رح يعطينا نظرة عامة عن هي الأنواع :
الشل | الوصف | أهم الميزات | الاستخدامات الشائعة | |
---|---|---|---|---|
Bash (Bourne Again Shell) ![]() | الشل الافتراضي في معظم أنظمة Linux، نسخة محسنة من Bourne Shell | دعم البرمجة النصية، إكمال تلقائي | الاستخدام العام، DevOps، سكريبتات Linux | |
| نسخة محسنة من Bash مع ميزات إضافية | الإكمال الذكي، التصحيح التلقائي، دعم الإضافات والسمات (Oh My Zsh) | للمطورين، بيئة تطوير مرنة، تخصيص عالي | |
Bourne Shell (sh) ![]() | الشل الأصلي في Unix، بسيط وسريع | أداء عالي، متوافق مع جميع أنظمة Unix | سكريبتات Unix القديمة، العمليات الأساسية | |
C Shell (csh) ![]() | شل مستوحى من لغة C، مفضل للمبرمجين | يدعم History، إكمال تلقائي، شبيه بـ C | البيئات العلمية والتقنية | |
TENEX C Shell (tcsh) ![]() | نسخة محسنة من C Shell مع ميزات إضافية | تحسينات في الإكمال التلقائي، تاريخ أوامر محسن | بديل عن C Shell بميزات إضافية | |
KornShell (ksh) ![]() | مزيج من Bourne وC Shell، مرن وقوي | دعم البرمجة النصية القوي، أداء عالي | بيئات Unix التجارية، التطبيقات المالية | |
Debian Almquist Shell (dash) ![]() | شل خفيف وسريع، يستخدم في Debian/Ubuntu | أداء سريع، لا يدعم الإكمال التلقائي أو History | سكريبتات النظام، عمليات الإقلاع | |
Friendly Interactive Shell (fish) ![]() | شل حديث وسهل الاستخدام، لا يعتمد على Bash Syntax بالكامل | إكمال تلقائي ذكي، تصحيح فوري للأوامر | للمستخدمين الباحثين عن تجربة تفاعلية سلسة |
Bash
Bash (اختصار لـ Bourne Again Shell) هو مفسّر أوامر وسكربتات مفتوح المصدر، يُستخدم في أنظمة التشغيل المستندة إلى Unix مثل Linux و macOS. ويعمل كوسيط بين المستخدم ونظام التشغيل، حيث يفسّر الأوامر التي يدخلها المستخدم إما بشكل تفاعلي (عبر سطر الأوامر) أو من خلال سكربت مكتوب مسبقًا.
عندي two mode للـ bash:
1- الوضع التفاعلي (Interactive mode): هذا الوضع يسمح بتنفيذ الأوامر في الـ Terminal. وينفذ الأوامر بشكل متسلسل إذا كان هناك أوامر متعددة.
2- الوضع غير التفاعلي (Non-interactive mode): يشير هذا إلى البرامج النصية (script)، مما يسمح لك بكتابة بناء جملة Bash يحتوي على تسلسل من الأوامر المتعددة لتنفيذ البرنامج النصي.

1- الوضع التفاعلي (Interactive mode): هذا الوضع يسمح بتنفيذ الأوامر في الـ Terminal. وينفذ الأوامر بشكل متسلسل إذا كان هناك أوامر متعددة.
2- الوضع غير التفاعلي (Non-interactive mode): يشير هذا إلى البرامج النصية (script)، مما يسمح لك بكتابة بناء جملة Bash يحتوي على تسلسل من الأوامر المتعددة لتنفيذ البرنامج النصي.
السكريبت (Script) هو ملف نصي يحتوي على مجموعة من الأوامر المكتوبة بلغة برمجية مثل Bash، Python، JavaScript وغيرها، تُنفَّذ بشكل متسلسل أو تلقائي عند تشغيله. يستخدم السكريبت عادةً لأتمتة المهام وتوفير الوقت والجهد.

1- command line:
- لا يتم حفظ الأوامر في ملف.
- يدعم أمرًا واحدًا فقط في كل مرة.
2- script:
- يدعم أوامر متعددة في ملف واحد
- يتم تنفيذ سطر واحد فقط في الملف بشكل متسلسل
تمام هل بنقدر نحكي عن الbash إنها لغة برمجة وايش الغرض منها؟
الباش بنفذ الأوامر من الـ terminal أو من ملف فهو لغة برمجة تعمل على أنظمة التشغيل Unix/Linux وبتحتوي على جميع الميزات اللازمة لكتابة التعليمات البرمجية الكاملة. بالتالي الباش هو نوع خاص من shell يأخذ المدخلات من الأوامر، ويشغل التعليمات البرمجية، وبعالج المدخلات، ويعيد النتائج.
الوظائف يلي بتعطينا اياها الباش تكمن بالتالي, رح نحكي عنهم بشكل أكبر بالمواضيع القادمة إن شاء الله:
- كتابة البرامج النصية لأتمتة مهام البرمجة
- مزامنة المهام لنسخ الملفات
- تنفيذ مهام cron للجدولة
كيف بكتب كود باستخدام الباش؟
بالبداية بدنا نعمل ملف وليكن اسمه test.sh من التيرمنال ,ونكتب بداخله الأمر التالي:
Bash:
#!/bin/bash
هذا السطر لازم أكتبه ببداية الملف ويُسمى Shebang الهدف منه انه نخبر نظام التشغيل بأن هذا الملف سيتم تشغيله بواسطة Bash.
بعد هيك رح نكتب الأمر البرمجية يلي بدي اياها تتنفذ بداخل هذا الفايل. لازم نتأكد انه الملف محفوظ وإنه الإمتداد إله (sh.) وهذا بعطيني معلومة إنه الملف هو shell file.
وأكيد لازم نتأكد من الصلاحيات على الملف ونضمن إنه معي الصلاحيات الكافية لتشغله.
كل شيء تم ذكره رح يتم تفصيله بشكل أكبر لهيك لو ما وصلتك معلومة معينة ما تخاف أكيد كل شي رح يصير أوضح هذا عبارة عن مقدمة بسيطة بس لنعرف شوية معلومات عن الباش.
بالنهاية رح احكي عن الأشياء يلي رح نمشي عليها في تعلمنا لكتابة كود الباش وهي كالتالي:
- المتغيرات Variables
- التعليقات Comments
- التعبير الشرطي if elif else
- الحلقات loops
- الدوال Functions
- المصفوفات Arrays
- إضافة سلسلة نصية Append String
- المشغلات Operators
بتمنى يكون الموضوع مفيد لأي حد مبتدئ حابب يفهم أكثر عن الباش والشل. وإن شاء الله رح نتطرق لكل شيء بخص الـ Bash Scripting
نلتقي في مواضيع جديدة, دٌمتم بحفظ الله ورعايته
التعديل الأخير بواسطة المشرف: