البرمجة النصية باستخدام Bash و PowerShell

Skip to content

هذا نص مترجم آليًا وقد يحتوي على أخطاء!

إذا كنت قد قمت بنفس المهمة للمرة الثالثة، فقد حان الوقت لأتمتتها. تتعلق البرمجة النصية بجعل الآلة تقوم بالعمل الممل بدلاً منك، بشكل أسرع ودون نسيان أي شيء.

لماذا الأتمتة؟

بعض المهام في عمليات تكنولوجيا المعلومات تتم بشكل متكرر:

  • تحديث الخوادم
  • إنشاء مستخدمين
  • عمل نسخة احتياطية
  • إعادة تشغيل الخدمات بعد التحديث
  • التحقق من تشغيل الخدمات

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

Bash: برمجة النصوص في Linux

Bash هو الصدفة (الطرفية) في معظم توزيعات Linux، ويمكنه أيضًا تشغيل البرامج النصية. البرنامج النصي Bash هو ببساطة ملف نصي يحتوي على أوامر يتم تنفيذها بالتسلسل.

أول سكريبت لك

أنشئ ملفًا باسم oppdater.sh:

#!/bin/bash
# تحديث قائمة الحزم وتثبيت التحديثات
echo "Oppdaterer systemet..."
sudo apt update
sudo apt upgrade -y
echo "Ferdig!"

اجعل الملف قابلاً للتنفيذ وقم بتشغيله:

chmod +x oppdater.sh
./oppdater.sh
# قم بتحديث البرنامج النصي

#!/bin/bash

يُسمى السطر الأول shebang. وهو يخبر نظام التشغيل بأن الملف يجب تشغيله باستخدام Bash. بدون هذا السطر، لن يعرف النظام أي برنامج يجب أن يقوم بتفسير السكربت.

المتغيرات والمدخلات

#!/bin/bash
BRUKERNAVN=$1

if [ -z "$BRUKERNAVN" ]; then
    echo "استخدام: ./lag_bruker.sh <اسم المستخدم>"
    exit 1
fi

sudo adduser "$BRUKERNAVN"
sudo usermod -aG sudo "$BRUKERNAVN"
echo "تم إنشاء المستخدم $BRUKERNAVN مع وصول sudo."

هنا يأخذ البرنامج النصي اسم مستخدم كوسيطة ($1 هي الوسيطة الأولى). إذا قمت بتشغيل ./lag_bruker.sh ola، فسيقوم بإنشاء المستخدم ola ومنحه حق الوصول إلى sudo.

مفاهيم Bash المفيدة

المفهوم المثال ماذا يفعل
متغير NAVN="Ola" يخزن قيمة
وسيط $1, $2 مدخلات من سطر الأوامر
فحص شرطي if [ -f "fil.txt" ]; then يتحقق مما إذا كانت الملف موجودة
حلقة For for f in *.log; do يفعل شيئًا لكل ملف يطابق
أنبوب cat logg.txt \| grep "ERROR" يرسل الإخراج من أمر إلى آخر

PowerShell: برمجة نصية في Windows

PowerShell هو رد Windows على Bash، ولكنه أكثر توجهاً للكائنات. إنه يعمل مع الكائنات بدلاً من مجرد النص، مما يجعله قويًا لإدارة أنظمة Windows.

مثال: تحقق من مساحة القرص

# تحقق من مساحة القرص المتاحة
Get-PSDrive -PSProvider FileSystem | Select-Object Name, 
    @{Name="Brukt (GB)"; Expression={[math]::Round($_.Used / 1GB, 2)}},
    @{Name="Ledig (GB)"; Expression={[math]::Round($_.Free / 1GB, 2)}}

مثال: تثبيت البرامج باستخدام Winget

# قم بتثبيت برامج متعددة في وقت واحد
winget install Mozilla.Firefox
winget install Microsoft.VisualStudioCode
winget install Git.Git
winget install Python.Python.3.12

هذا أسرع بكثير من تنزيل وتثبيت كل شيء يدويًا. يمكنك حفظ القائمة في برنامج نصي وتشغيله في كل مرة تقوم فيها بإعداد جهاز جديد.

Easy المهمة 1 - إنشاء نص تحديث

اكتب نص Bash يقوم بما يلي:

  1. تحديث قائمة الحزم
  2. تثبيت جميع التحديثات المتاحة
  3. إعادة تشغيل Nginx (أو أي خدمة أخرى قيد التشغيل)
  4. طباعة رسالة عند الانتهاء

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

Easy المهمة 2 - أتمتة إعداد الجهاز

أنشئ برنامج PowerShell نصي (.ps1) أو قائمة بسيطة بأوامر winget install لجميع البرامج التي تحتاجها على جهاز كمبيوتر جديد. فكر في:

  • ما هي البرامج التي تقوم بتثبيتها دائمًا؟
  • هل يمكنك أيضًا تكوين بعض الإعدادات باستخدام البرنامج النصي؟

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

ملخص

  • إذا كنت تقوم بعمل ما أكثر من مرتين، ففكر في أتمتته
  • Bash (Linux) و PowerShell (Windows) هما الأدوات الأكثر شيوعًا للبرمجة النصية
  • نصوص Bash هي ملفات نصية تحتوي على أوامر يتم تنفيذها بالتسلسل
  • يعمل PowerShell مع الكائنات وهو قوي لإدارة Windows
  • المتغيرات والمعاملات وفحوصات if والحلقات هي اللبنات الأساسية الأكثر أهمية