كيفية تشغيل سكربت Bash: دليل خطوة بخطوة للمبتدئين
المقدمة
Bash، اختصار لـ "Bourne Again Shell"، هو مفسر أوامر قوي يُستخدم على نطاق واسع في أنظمة Unix وLinux. يوفر بيئة قوية لتنفيذ الأوامر، وأتمتة المهام المتكررة، وإنشاء سير عمل معقدة.
بالنسبة للمبتدئين والمطورين ذوي الخبرة، تعتبر سكربتات Bash ضرورية لتبسيط إدارة النظام، ونشر التطبيقات، ومعالجة البيانات بكفاءة. ستوجهك هذه المقالة خلال عملية تشغيل سكربت Bash، من فهم أساسياته إلى تنفيذه بشكل فعال.
ما هو سكربت Bash؟
سكربت Bash هو ملف نصي عادي يحتوي على سلسلة من الأوامر التي يمكن لمفسر Bash تنفيذها. هذه السكربتات هي في الأساس وسيلة لأتمتة المهام في سطر الأوامر، مما يجعل سير العمل المتكرر أو المعقد أسهل في الإدارة.
الاستخدامات الشائعة لسكربتات Bash
- أتمتة المهام: تنفيذ صيانة النظام الروتينية، النسخ الاحتياطي، أو التحديثات.
- إدارة الملفات: تنظيم، إعادة تسمية، أو معالجة الملفات بكميات كبيرة.
- معالجة البيانات: استخراج، تعديل، أو تحليل البيانات من السجلات أو الملفات.
- نشر التطبيقات: تبسيط نشر البرمجيات والتكوين.
- أدوات مخصصة: إنشاء سكربتات مساعدة لتبسيط سير العمل المحدد.
الهيكل الأساسي لسكربت Bash
يتبع سكربت Bash النموذجي هيكلًا بسيطًا:
- Shebang (
#!
): السطر الأول يحدد المفسر الذي سيتم استخدامه، وعادةً ما يكون Bash.#!/bin/bash
- الأوامر: سلسلة من أوامر الصدفة الصالحة مكتوبة سطرًا بسطر.
echo "Hello, World!"
مثال: سكربت "Hello, World!"
إليك مثال بسيط لتوضيح الفكرة:
#!/bin/bash
# هذا سكربت Bash بسيط
echo "Hello, World!"
فوائد استخدام سكربتات Bash
- الكفاءة: أتمتة المهام التي تستغرق وقتًا طويلاً بأقل جهد.
- المرونة: التعامل مع مجموعة واسعة من العمليات النظامية.
- قابلية النقل: تشغيل السكربتات على أي نظام يعتمد على Unix تقريبًا دون تعديل.
التحضير لتشغيل سكربت Bash
قبل أن تتمكن من تشغيل سكربت Bash، هناك بعض الخطوات لضمان جاهزية بيئتك. يتضمن ذلك التحقق من وجود Bash، وإنشاء ملف سكربت، وإعداده للتنفيذ.
التحقق من تثبيت Bash
تأتي معظم أنظمة Unix، بما في ذلك Linux وmacOS، مع تثبيت Bash مسبقًا. ومع ذلك، إذا كنت تستخدم نظامًا مثل Windows أو تحتاج إلى تأكيد التثبيت، اتبع هذه الخطوات:
-
تحقق من إصدار Bash: افتح نافذة الأوامر واكتب:
bash --version
ستعرض هذه الأمر الإصدار المثبت من Bash إذا كان متاحًا.
-
تثبيت Bash (إذا لم يكن مثبتًا):
- Linux: استخدم مدير الحزم الخاص بك (مثل
apt
،yum
).sudo apt install bash # لـ Debian/Ubuntu
- macOS: يتم تضمين Bash بشكل افتراضي، ولكن يمكنك الترقية عبر Homebrew إذا لزم الأمر.
brew install bash
- Windows: استخدم WSL (Windows Subsystem for Linux) أو قم بتثبيت Git Bash.
- Linux: استخدم مدير الحزم الخاص بك (مثل
إنشاء سكربت Bash بسيط
-
اكتب سكربتك الأولى: استخدم محرر نصوص (مثل
nano
،vim
، أوcode
) لإنشاء ملف جديد:nano script.sh
-
أضف محتوى السكربت: ابدأ بمثال أساسي:
#!/bin/bash echo "Hello, Bash!"
-
احفظ الملف: احفظ الملف بامتداد
.sh
للإشارة إلى أنه سكربت صدفة.
عرض السكربت
لتأكيد محتوى السكربت، استخدم:
cat script.sh
جعل السكربت قابلاً للتنفيذ
قبل أن تتمكن من تشغيل سكربت Bash، تحتاج إلى تعيين الأذونات المناسبة للملف لجعله قابلاً للتنفيذ. يضمن ذلك أن النظام يعرف أن السكربت مخصص للتنفيذ كبرنامج.
فهم أذونات الملفات
تتحكم أنظمة Unix في الوصول إلى الملفات باستخدام ثلاثة أنواع من الأذونات:
- قراءة (
r
): يسمح بقراءة الملف. - كتابة (
w
): يسمح بتعديل الملف. - تنفيذ (
x
): يسمح بتنفيذ الملف كبرنامج.
بشكل افتراضي، قد لا تحتوي السكربتات التي تم إنشاؤها حديثًا على أذونات تنفيذ.
منح أذونات التنفيذ
لجعل السكربت قابلاً للتنفيذ:
-
استخدم الأمر
chmod
لتعديل أذونات الملف.chmod +x script.sh
يضيف هذا إذن التنفيذ (
x
) للسكربت. -
تحقق من الأذونات باستخدام الأمر
ls
:ls -l script.sh
يجب أن ترى شيئًا مثل هذا:
-rwxr-xr-x 1 user group size date script.sh
تشير
x
في سلسلة الأذونات إلى أن الملف قابل للتنفيذ.
لماذا تجعل السكربت قابلاً للتنفيذ؟
يجعل جعل السكربت قابلاً للتنفيذ عملية تنفيذه أسهل. بدلاً من استدعاء Bash صراحة لتشغيل السكربت، يمكنك تنفيذه مباشرة من سطر الأوامر.
تشغيل سكربت Bash
بمجرد إنشاء السكربت وجعله قابلاً للتنفيذ، يمكنك تشغيله باستخدام عدة طرق. هنا، سنستعرض ثلاث طرق شائعة لتنفيذ سكربت Bash.
الطريقة 1: استخدام بادئة ./
أبسط طريقة لتشغيل سكربت هي تحديد مساره مع ./
:
./script.sh
النقاط الرئيسية:
- تخبر بادئة
./
الصدفة بالبحث عن السكربت في الدليل الحالي. - إذا واجهت خطأ "إذن مرفوض"، تأكد من أن السكربت لديه أذونات تنفيذ (
chmod +x script.sh
).
الطريقة 2: استدعاء Bash صراحة
يمكنك أيضًا تشغيل السكربت عن طريق استدعاء مفسر Bash مباشرة:
bash script.sh
الفوائد:
- لا حاجة لتغيير أذونات الملفات.
- مفيد لتشغيل السكربتات بسرعة دون تعديل خصائصها.
الطريقة 3: تشغيل السكربت من أي موقع
لتشغيل السكربت دون تحديد مساره في كل مرة:
-
نقل السكربت إلى دليل في PATH الخاص بك: انسخ السكربت إلى دليل مثل
/usr/local/bin
أو~/bin
(قم بإنشاء~/bin
إذا لم يكن موجودًا):cp script.sh ~/bin/
-
إضافة الدليل إلى PATH (إذا لم يكن مضمنًا بالفعل): قم بتحرير ملف تكوين الصدفة الخاص بك (
~/.bashrc
أو~/.bash_profile
) وأضف:export PATH=$PATH:~/bin
أعد تحميل التكوين:
source ~/.bashrc
-
تشغيل السكربت عالميًا: الآن يمكنك تنفيذ السكربت من أي مكان بكتابة:
script.sh
اختيار الطريقة الصحيحة
- استخدم
./
للتنفيذ السريع والمحلي للسكربت. - استدعِ Bash صراحة عندما لا تريد تغيير الأذونات.
- أضف السكربتات إلى PATH لسهولة الوصول عند تشغيلها بشكل متكرر.
المشكلات الشائعة والحلول
قد تؤدي تشغيل سكربتات Bash أحيانًا إلى أخطاء أو سلوك غير متوقع. إليك بعض المشكلات الشائعة وحلولها لمساعدتك في استكشاف الأخطاء وإصلاحها بفعالية.
1. إذن مرفوض
المشكلة:
عند تشغيل السكربت، ترى الخطأ التالي:
bash: ./script.sh: Permission denied
الحل:
يحدث هذا الخطأ إذا كان السكربت يفتقر إلى أذونات التنفيذ. استخدم الأمر chmod
لإصلاح ذلك:
chmod +x script.sh
2. الأمر غير موجود
المشكلة:
عند تنفيذ السكربت، ترى خطأ مثل:
bash: ./script.sh: command not found
الحل:
- تأكد من أن ملف السكربت محفوظ بشكل صحيح ويحتوي على أوامر صالحة.
- تحقق من وجود سطر shebang (
#!/bin/bash
) وأنه يشير بشكل صحيح إلى مفسر Bash. - تحقق من امتداد ملف السكربت وتأكد من أنه ليس محفوظًا بامتداد
.txt
أو أي امتداد غير مقصود.
3. أخطاء في الصياغة
المشكلة:
تواجه خطأ مثل:
./script.sh: line X: syntax error: unexpected token
الحل:
- تحقق مرة أخرى من السكربت بحثًا عن أخطاء مطبعية أو أحرف غير موضوعة بشكل صحيح.
- استخدم محرر نصوص يدعم تمييز الصياغة لرؤية الأخطاء بسهولة أكبر.
- قم بتشغيل السكربت مع تمكين التصحيح لتحديد الأسطر المشكلة:
bash -x script.sh
4. مشكلات بيئية
المشكلة:
يعمل السكربت ولكن ينتج عنه نتائج غير متوقعة بسبب المتغيرات البيئية أو التبعيات المفقودة.
الحل:
- قم بتصدير أي متغيرات بيئية مطلوبة قبل تشغيل السكربت:
export VARIABLE_NAME=value
- تحقق من أن جميع الأدوات والحزم الضرورية مثبتة.
5. مشكلات متعلقة بـ PATH
المشكلة:
تحاول تشغيل السكربت عالميًا، لكنه غير معترف به كأمر.
الحل:
- تأكد من أن السكربت موجود في دليل مضمن في متغير
PATH
. - تحقق من متغير
PATH
باستخدام:echo $PATH
- إذا لزم الأمر، أضف دليل السكربت إلى
PATH
وأعد تحميل التكوين.
6. حلقات لا نهائية أو سلوك غير متوقع
المشكلة:
يعمل السكربت إلى ما لا نهاية أو ينتج عنه مخرجات غير صحيحة.
الحل:
- تحقق من الأخطاء المنطقية في السكربت، مثل شروط الحلقة غير الصحيحة.
- اختبر السكربت بشكل تدريجي عن طريق تشغيل أقسام أصغر لعزل المشكلة.
من خلال معالجة هذه المشكلات بشكل منهجي، يمكنك ضمان تشغيل سكربتات Bash بسلاسة. في القسم التالي، سننظر في أفضل الممارسات لكتابة وصيانة سكربتات Bash فعالة.
الأسئلة الشائعة: الأسئلة المتكررة حول تشغيل سكربتات Bash
ما هو الغرض من سطر #!/bin/bash
في السكربت؟
سطر #!/bin/bash
، المعروف أيضًا باسم "shebang"، يخبر النظام أي مفسر يجب استخدامه لتنفيذ السكربت. بدون ذلك، قد يحاول النظام تشغيل السكربت باستخدام صدفة افتراضية، مما قد يتسبب في أخطاء إذا لم تكن الأوامر متوافقة.
هل يمكنني تشغيل سكربت Bash على Windows؟
نعم، يمكنك تشغيل سكربتات Bash على Windows باستخدام:
- Windows Subsystem for Linux (WSL): تثبيت توزيع Linux على Windows وتشغيل سكربتات Bash بشكل أصلي.
- Git Bash: خيار خفيف يوفر بيئة مشابهة لـ Bash على Windows.
- Cygwin: أداة أخرى لتشغيل أوامر مشابهة لـ Unix على Windows.
كيف يمكنني تمرير معلمات إلى سكربت Bash؟
يمكنك تمرير معلمات إلى سكربت Bash عن طريق إضافتها بعد اسم السكربت:
./script.sh arg1 arg2
داخل السكربت، استخدم $1
، $2
، إلخ، للوصول إلى المعلمات:
#!/bin/bash
echo "المعلمة الأولى: $1"
echo "المعلمة الثانية: $2"
كيف يمكنني تصحيح سكربت Bash؟
استخدم الأمر bash -x
لتشغيل السكربت في وضع التصحيح، والذي يعرض كل أمر ومخرجاته:
bash -x script.sh
بدلاً من ذلك، أضف set -x
في أعلى السكربت لتمكين التصحيح لجميع الأوامر.
هل يمكنني جدولة سكربتات Bash للتشغيل تلقائيًا؟
نعم، يمكنك جدولة السكربتات باستخدام cron
على Linux أو Task Scheduler
على Windows. على سبيل المثال، لتشغيل سكربت يوميًا في منتصف الليل باستخدام cron
:
crontab -e
أضف السطر التالي:
0 0 * * * /path/to/script.sh
ما هي بعض الامتدادات الشائعة لملفات سكربتات Bash؟
الامتداد الأكثر شيوعًا هو .sh
، ولكن الامتدادات ليست مطلوبة بشكل صارم. يساعد تسمية السكربت بامتداد .sh
في الإشارة إلى أنه سكربت صدفة.
كيف يمكنني إيقاف سكربت Bash قيد التشغيل؟
لإنهاء سكربت أثناء التنفيذ، اضغط على Ctrl+C
في نافذة الأوامر. إذا كان السكربت يعمل في الخلفية، ابحث عن معرف العملية (PID) باستخدام ps
وأوقفه باستخدام kill
:
ps aux | grep script.sh
kill <PID>
كيف يمكنني تشغيل سكربت يتطلب امتيازات الجذر؟
استخدم sudo
لتنفيذ السكربت بامتيازات إدارية:
sudo ./script.sh
تأكد من فهم محتويات السكربت قبل تشغيله كجذر لتجنب المخاطر الأمنية المحتملة.
هل يمكنني تضمين دوال في سكربت Bash الخاص بي؟
نعم، يدعم Bash الدوال لكتابة كود منظم. قم بتعريف دالة واستدعائها داخل السكربت:
#!/bin/bash
my_function() {
echo "مرحبًا من الدالة!"
}
my_function
كيف يمكنني التعامل مع الأخطاء في سكربت Bash؟
استخدم تقنيات التعامل مع الأخطاء مثل التحقق من حالة الخروج للأوامر:
if [ $? -ne 0 ]; then
echo "حدث خطأ"
exit 1
fi
بدلاً من ذلك، استخدم set -e
في بداية السكربت للخروج فورًا إذا فشلت أي أمر.
ما الفرق بين ./script.sh
و bash script.sh
؟
./script.sh
: يشغل السكربت كملف قابل للتنفيذ (يتطلب أذونات تنفيذ).bash script.sh
: يستدعي صراحة مفسر Bash لتشغيل السكربت، بغض النظر عن الأذونات.
كيف يمكنني تضمين تعليقات في سكربت Bash؟
استخدم الرمز #
لإضافة تعليقات. يتم تجاهل التعليقات أثناء التنفيذ:
#!/bin/bash
# هذه تعليق
echo "هذا ليس تعليقًا"
هل يمكن أن يتفاعل سكربت Bash مع إدخال المستخدم؟
نعم، استخدم الأمر read
لطلب إدخال المستخدم:
#!/bin/bash
echo "أدخل اسمك:"
read name
echo "مرحبًا، $name!"