البرمجة النصية باستخدام 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 er et kommandolinjeverktøy for å administrere programvare på Windows 10 og nyere. Det lar deg installere, oppgradere og avinstallere programmer direkte fra kommandolinjen.

Fordeler med å bruke Winget:

  • Enkel å bruke: Winget har en enkel og intuitiv syntaks.
  • Automatisering: Du kan automatisere installasjon og oppgradering av programvare.
  • Sentralisert pakkehåndtering: Winget henter pakker fra flere kilder, inkludert Microsoft Store og andre kilder.

Installere Winget:

Winget er vanligvis forhåndsinstallert på Windows 10 (versjon 1709 eller nyere) og Windows 11. Hvis det ikke er installert, kan du laste det ned fra https://github.com/microsoft/winget.

Eksempel på bruk:

For å installere 7-Zip med Winget, kan du kjøre følgende kommando:

winget install 7zip.7zip

For å søke etter et program, kan du bruke kommandoen:

winget search notepad++

# قم بتثبيت برامج متعددة في وقت واحد
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 والحلقات هي اللبنات الأساسية الأكثر أهمية