البرمجة

إنشاء أمر راسبيري باي

إنشاء أمر جديد في بيئة سطر الأوامر في راسبيري باي

تعتبر بيئة سطر الأوامر (Command Line Interface – CLI) في نظام راسبيري باي من الأدوات الأساسية التي تمنح المستخدمين القدرة على التحكم الكامل في الجهاز، وتنفيذ الأوامر والبرمجيات بسهولة وسرعة، دون الحاجة إلى واجهة رسومية ثقيلة. في هذا المقال سيتم التطرق إلى كيفية إنشاء أمر جديد في بيئة سطر الأوامر على راسبيري باي، مع التركيز على شرح الخطوات التفصيلية، المبادئ الأساسية، وأمثلة عملية للتطبيق.


مقدمة عن بيئة سطر الأوامر في راسبيري باي

راسبيري باي هو جهاز حاسوب صغير الحجم، يعمل بنظام تشغيل لينوكس مبني على توزيعة Debian الشهيرة، وغالباً ما يستخدم Raspbian (حالياً Raspberry Pi OS) كنظام تشغيل افتراضي. بيئة سطر الأوامر تعتبر من أهم الأدوات لإدارة النظام، تطوير البرامج، وتحقيق تحكم متقدم في الجهاز.

تعتمد بيئة سطر الأوامر على إدخال الأوامر النصية التي تنفذها النواة والبرمجيات المثبتة. لذلك، القدرة على إنشاء أوامر جديدة مخصصة يمكن أن يوسع من إمكانيات المستخدم ويسهل عمليات متكررة أو معقدة.


ما هو الأمر في بيئة سطر الأوامر؟

الأمر (Command) هو عبارة عن برنامج أو سكربت يُنفذ بمجرد كتابته في الطرفية (Terminal)، ويتكون من اسم الأمر يليها خيارات ومعاملات يمكن أن تؤثر على سلوكه. عند إنشاء أمر جديد، نحن ببساطة نصنع برنامجاً أو سكربتاً جديداً يمكن استدعاؤه بالاسم الذي نحدده.


أنواع الأوامر الممكن إنشاؤها في راسبيري باي

  1. برامج تنفيذية (Executable Binaries): وهي برامج مكتوبة بلغات مثل C أو C++، يتم تجميعها لتصبح ملفات تنفيذية.

  2. سكربتات نصية (Scripts): وهي نصوص مكتوبة بلغات برمجة السكربت مثل Bash، Python، Perl، Ruby وغيرها، تستخدم بكثرة لإنشاء أوامر مخصصة لأنها سهلة الكتابة والتعديل.


خطوات إنشاء أمر جديد في راسبيري باي

1. اختيار لغة البرمجة أو السكربت

في أغلب الحالات، يتم إنشاء أمر جديد باستخدام سكربت Bash بسبب سهولة التعامل مع الطرفية، ولكن يمكن أيضاً استخدام Python لما له من إمكانيات متقدمة وقوة كبيرة.

مثال بسيط لأمر جديد باستخدام Bash:

bash
#!/bin/bash echo "مرحباً بك في راسبيري باي!"

2. كتابة السكربت أو البرنامج

لإنشاء أمر جديد، يمكن فتح محرر نصوص مثل nano أو vim وكتابة السكربت. مثلاً:

bash
nano mycommand

ثم إدخال النص التالي:

bash
#!/bin/bash # أمر جديد يطبع التاريخ والوقت الحالي echo "التاريخ والوقت الآن: $(date)"

3. جعل السكربت قابل للتنفيذ

بعد كتابة السكربت، يجب تغيير أذونات الملف ليصبح قابلاً للتنفيذ باستخدام الأمر:

bash
chmod +x mycommand

هذا الأمر يتيح تشغيل السكربت كبرنامج مستقل.


4. وضع السكربت في مسار النظام

حتى يمكن استدعاء الأمر من أي مكان في الطرفية، يجب وضع الملف التنفيذي داخل مجلد من مجلدات PATH الخاصة بالنظام، مثل:

  • /usr/local/bin

  • /usr/bin

  • /home/pi/bin (إذا تم إضافته إلى PATH)

يمكن معرفة المسارات الحالية التي يبحث فيها النظام عن الأوامر عبر:

bash
echo $PATH

لذلك، نقوم بنقل السكربت إلى مجلد /usr/local/bin:

bash
sudo mv mycommand /usr/local/bin/

5. اختبار الأمر الجديد

بعد هذه الخطوات، يمكن ببساطة كتابة اسم الأمر في الطرفية وتنفيذه:

bash
mycommand

في المثال السابق، سيطبع السكربت الوقت والتاريخ الحالي.


استخدامات متقدمة لإنشاء أوامر مخصصة

1. تمرير المعاملات (Arguments) للأمر

يمكن تصميم الأوامر لاستقبال معطيات من المستخدم، وذلك عبر المتغيرات $1, $2, … في سكربتات Bash.

مثال:

bash
#!/bin/bash echo "أنت أدخلت: $1"

حيث يمكن استدعاء الأمر:

bash
mycommand Hello

وسيتم طباعة:

أنت أدخلت: Hello

2. إنشاء أوامر مع خيارات (Flags)

يمكن برمجة السكربتات للتعامل مع خيارات محددة تبدأ بـ - أو --، باستخدام أدوات مثل getopts في Bash أو مكتبات مخصصة في Python.

مثال بسيط باستخدام getopts:

bash
#!/bin/bash while getopts ":h" option; do case $option in h) echo "هذا الأمر يعرض رسالة الترحيب." exit;; \?) echo "خيار غير معروف" exit 1;; esac done echo "مرحباً بك في راسبيري باي!"

3. تنظيم الأوامر في مكتبات وأدوات أكبر

يمكن الجمع بين عدة سكربتات وأوامر لإنشاء أدوات متكاملة، وذلك عبر تنظيم الملفات في مجلدات، وإنشاء ملفات إعدادات، ومكتبات مشتركة لتسهيل الصيانة والتطوير.


نصائح عملية عند إنشاء أوامر جديدة

  • الاهتمام بالأذونات: يجب التأكد من أن الملفات التنفيذية تمتلك الأذونات المناسبة، خصوصاً عند التعامل مع الأوامر التي تتطلب صلاحيات مرتفعة.

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

  • التوافق: محاولة كتابة السكربت بحيث يعمل على بيئات مختلفة من نظام لينوكس قدر الإمكان.

  • التعامل مع الأخطاء: تضمين معالجات للأخطاء وحالات الإدخال الخاطئ لتحسين تجربة المستخدم.

  • الاختبار المستمر: تجربة الأمر في مختلف الحالات والاستخدامات للتأكد من أداء موثوق.


مثال عملي متكامل لأمر جديد

لنأخذ مثالاً أكثر تعقيداً لأمر جديد يقوم بفحص حالة الاتصال بالإنترنت ويبلغ المستخدم بنتيجة الفحص.

bash
#!/bin/bash ping -c 1 8.8.8.8 > /dev/null 2>&1 if [ $? -eq 0 ]; then echo "الاتصال بالإنترنت متاح." else echo "لا يوجد اتصال بالإنترنت." fi

بعد حفظ السكربت وإعطائه صلاحيات التنفيذ ونقله إلى مجلد /usr/local/bin، يمكن للمستخدم تشغيل الأمر ببساطة ليعرف حالة الإنترنت.


استغلال أوامر جديدة في أتمتة المهام في راسبيري باي

تتيح الأوامر الجديدة إمكانية دمجها في برامج أتمتة مثل cron أو سكربتات أكبر لتنفيذ مهام متكررة مثل:

  • تحديث النظام تلقائياً.

  • نسخ احتياطي للملفات.

  • مراقبة حالة النظام والموارد.

  • تشغيل وإيقاف الخدمات بسهولة.


العلاقة بين الأوامر الجديدة وبيئة التطوير في راسبيري باي

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


جدول مقارنة بين طرق إنشاء أوامر جديدة

النوع المميزات العيوب الاستخدامات المثالية
سكربت Bash سريع وبسيط، مدمج مع النظام محدود في القدرات المعقدة مهام النظام، أتمتة، أوامر بسيطة
برامج C/C++ أداء عالي، تحكم كامل معقد في الكتابة والتجميع برامج تحتاج أداء عالٍ، أدوات نظام متقدمة
سكربت Python سهل القراءة والكتابة، مكتبات كثيرة يتطلب تثبيت Python أوامر معقدة، تطبيقات متعددة الوظائف

الخلاصة

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

تتمثل الخطوات الأساسية في كتابة السكربت أو البرنامج، جعله قابلاً للتنفيذ، ونقله إلى مجلد ضمن PATH، مما يتيح استدعاءه بسهولة من أي مكان في الطرفية. بالإضافة إلى ذلك، يمكن تطوير الأوامر لتقبل معطيات، خيارات، وأداء مهام معقدة، مما يجعل بيئة سطر الأوامر في راسبيري باي منصة مرنة وقوية تلبي احتياجات المستخدمين من جميع المستويات.


المصادر والمراجع