مدخل إلى كتابة سكربتات الصدفة (Shell Scripts)
تُعتبر سكربتات الصدفة (Shell Scripts) من الأدوات الأساسية التي يعتمد عليها مستخدمو أنظمة التشغيل Unix وLinux في أتمتة العديد من المهام اليومية. تعتبر هذه السكربتات وسيلة قوية للتحكم في النظام وتنفيذه أوامر بشكل متسلسل، مما يسهل على المستخدمين والمطورين تحسين الإنتاجية وتقليل الأخطاء البشرية. في هذا المقال، سوف نتناول شرحاً مفصلاً حول كيفية كتابة سكربتات الصدفة، أهميتها، بنيتها الأساسية، وبعض الأمثلة العملية لاستخدامها.
1. ما هي سكربتات الصدفة (Shell Scripts)؟
سكربتات الصدفة هي برامج نصية تُكتب باستخدام أوامر سطر الأوامر التي يمكن تنفيذها في بيئة shell على أنظمة التشغيل Unix وLinux. تقوم هذه السكربتات بتنفيذ مجموعة من الأوامر المتسلسلة بشكل تلقائي، مما يوفر الكثير من الوقت والجهد في إنجاز المهام المكررة. يمكن للسكربت أن يتعامل مع ملفات، ينفذ أوامر نظام، يتفاعل مع المستخدم، ويدير العمليات. يتم كتابة سكربتات الصدفة باستخدام محررات نصوص بسيطة مثل “vi” أو “nano”، وتُحفظ عادةً بامتداد “.sh”.
2. لماذا نستخدم سكربتات الصدفة؟
تُستخدم سكربتات الصدفة للعديد من الأغراض في بيئة نظام التشغيل، من بينها:
-
أتمتة المهام: يمكن كتابة سكربت لتنفيذ مجموعة من الأوامر بشكل دوري دون الحاجة إلى التدخل اليدوي.
-
إدارة النظام: يمكن للسكربتات أداء وظائف متقدمة مثل النسخ الاحتياطي للملفات، إدارة الشبكات، والتحقق من حالة النظام.
-
إدارة الحزم والتثبيت: تسهل السكربتات عمليات التثبيت التلقائي للحزم أو التطبيقات، مما يحسن سرعة وكفاءة عملية التثبيت.
-
إدارة العمليات: يمكن استخدام السكربتات لتشغيل عمليات متعددة بشكل متوازٍ أو ترتيبها وتنظيمها.
-
المهام اليومية: مثل التحقق من صحة النظام، تنظيف الملفات المؤقتة، أو مراقبة المساحة الحرة على الأقراص.
3. المكونات الأساسية لسكربت الصدفة
تتكون سكربتات الصدفة من مجموعة من الأوامر والتعليقات التي تُنفذ بترتيب معين. فيما يلي بعض المكونات الأساسية للسكربت:
أ. تفسير الصدفة (Shebang)
أول سطر في السكربت غالباً ما يتضمن ما يُسمى بـ “shebang”، وهو سطر يحدد التفسير الذي يجب أن يستخدمه النظام لتشغيل السكربت. مثلاً:
bash#!/bin/bash
هذا السطر يعني أن السكربت سيتم تفسيره باستخدام الـ “Bash shell”، وهو الأكثر شيوعًا في أنظمة Linux وUnix.
ب. التعليقات
التعليقات تُستخدم لشرح الأجزاء المختلفة في السكربت، مما يسهل على المبرمجين الآخرين فهم الكود. تُكتب التعليقات في سكربتات الصدفة باستخدام الرمز #، ويُتجاهل النص التالي له من قبل المترجم. مثال:
bash# هذا سكربت يقوم بعمل نسخ احتياطي للملفات
ج. الأوامر
تتكون سكربتات الصدفة أساسًا من مجموعة من الأوامر التي يتم تنفيذها بشكل تسلسلي. هذه الأوامر قد تشمل أوامر النظام مثل:
-
lsلعرض محتويات الدليل. -
cpلنسخ الملفات. -
rmلحذف الملفات. -
echoلعرض نصوص على الشاشة. -
catلعرض محتويات الملفات.
د. المتغيرات
المتغيرات تُستخدم لتخزين القيم التي يمكن استخدامها لاحقًا في السكربت. يمكن تعريف متغيرات في السكربت على النحو التالي:
bashname="John"
echo "Hello, $name"
في هذا المثال، سيتم عرض النص “Hello, John”.
هـ. الجمل الشرطية
الجمل الشرطية تُستخدم لتنفيذ أجزاء معينة من السكربت بناءً على الشروط المحددة. تستخدم سكربتات الصدفة عادة جمل if, else, elif لاتخاذ القرارات بناءً على قيم المتغيرات أو نتائج الأوامر. مثال:
bashif [ $age -ge 18 ]; then
echo "You are an adult."
else
echo "You are a minor."
fi
يتم هنا فحص ما إذا كان عمر الشخص أكبر من أو يساوي 18، وفي حال كان الشرط صحيحًا، يتم عرض “You are an adult”.
و. الحلقات (Loops)
تُستخدم الحلقات في سكربتات الصدفة لتكرار مجموعة من الأوامر لعدد محدد من المرات أو إلى حين تحقق شرط معين. أشهر أنواع الحلقات هي for, while, وuntil. مثال:
bashfor i in {1..5}
do
echo "Number $i"
done
هذا السكربت سيعرض الأرقام من 1 إلى 5.
ز. التعامل مع الدوال
الدوال تسمح بتجميع الأوامر في كتلة واحدة يمكن استدعاؤها عند الحاجة. يمكن تعريف الدوال كما يلي:
bashfunction say_hello() {
echo "Hello, $1"
}
say_hello "Alice"
سيعرض السكربت هنا “Hello, Alice” عند استدعاء الدالة.
4. كيفية إنشاء وتشغيل سكربت الصدفة
لإنشاء سكربت صدفة، يجب اتباع الخطوات التالية:
-
فتح محرر نصوص: يمكنك استخدام محرر النصوص المفضل لديك، مثل
viأوnano، لإنشاء ملف جديد. مثلًا:bashnano backup.sh -
كتابة السكربت: داخل الملف الذي تم إنشاؤه، يمكنك كتابة السكربت باستخدام الأوامر التي ترغب في تنفيذها.
-
إعطاء صلاحيات التنفيذ: بعد كتابة السكربت، يجب إعطاؤه صلاحيات التنفيذ باستخدام الأمر:
bashchmod +x backup.sh -
تشغيل السكربت: لتشغيل السكربت، يمكن استخدام الأمر:
bash./backup.sh
5. أمثلة عملية لاستخدام سكربتات الصدفة
أ. سكربت نسخ احتياطي للملفات
لنفرض أنك تريد إنشاء سكربت يقوم بعمل نسخ احتياطي لمجلد من ملفاتك المهمة. يمكن كتابة السكربت التالي:
bash#!/bin/bash
# نسخ احتياطي للمجلد
source_dir="/home/user/documents"
backup_dir="/home/user/backup"
cp -r $source_dir $backup_dir
echo "Backup completed successfully."
يقوم هذا السكربت بنسخ جميع محتويات المجلد documents إلى المجلد backup.
ب. سكربت مراقبة استخدام الذاكرة
يمكنك كتابة سكربت بسيط لمراقبة استخدام الذاكرة على نظامك:
bash#!/bin/bash
# عرض حالة الذاكرة
free -h
يتم هنا استخدام الأمر free لعرض استخدام الذاكرة في النظام.
6. التعامل مع المدخلات والمخرجات في سكربتات الصدفة
يتيح لك Bash shell التفاعل مع المدخلات والمخرجات في السكربتات بشكل مرن. يمكنك التعامل مع المدخلات من خلال استخدام الأوامر read لقراءة مدخلات المستخدم. مثال:
bash#!/bin/bash
echo "Enter your name:"
read name
echo "Hello, $name!"
أما بالنسبة للمخرجات، فيمكنك استخدام echo لعرض النصوص على الشاشة أو إعادة توجيه المخرجات إلى ملفات باستخدام > أو >>.
7. النصائح والممارسات الجيدة لكتابة سكربتات الصدفة
-
التوثيق الجيد: استخدم التعليقات لتوضيح ما يقوم به السكربت، فهذا يسهل صيانته في المستقبل.
-
استخدام المتغيرات بشكل مناسب: لتجنب الأخطاء، تأكد من أنك تستخدم المتغيرات بشكل صحيح وتتحقق من قيمتها.
-
إدارة الأخطاء: استخدم أوامر مثل
exitوtrapلإدارة الأخطاء والتأكد من أن السكربت يعمل بشكل سليم في حالة حدوث أي مشكلة. -
إعطاء الصلاحيات بعناية: تأكد من منح صلاحيات التنفيذ فقط للمستخدمين الذين يحتاجون إليها، لتجنب المخاطر الأمنية.
8. الخلاصة
تعد سكربتات الصدفة أداة قوية ومرنة لتحسين إدارة النظام وأتمتة المهام في بيئة Unix وLinux. من خلال تعلم كيفية كتابة سكربتات فعالة، يمكن للمطورين والإداريين تحسين كفاءة العمل وتوفير الوقت. عبر فهم الأساسيات المتعلقة بالمتغيرات، الأوامر، الحلقات، والدوال، يستطيع المستخدمون كتابة سكربتات معقدة تتناسب مع احتياجاتهم الخاصة.

