What is Bash

ibrahim el-otmani | Aug 13, 2025 min read

علاش ل Bash Scripting مهم بزاف لل DevOps engineers

مرحبا بيك فالعالم ديال DevOps! كاين واحد الحاجة لي ضروري تكون كتعرف ليها مزيان: Bash Scripting. ممكن تكون كتسمع بيها بزاف ولكن معرفش بالضبط علاش هي مهمة لهاد الدرجة. فهاد المقال، غانشرحو ليك كلشي من الزيرو. بالنسبة للـ Bash هو واحد الـ shell، يعني واحد البرنامج لي كيخليك تهضر مع السيستيم ديالك باستعمال الأوامر. و scripting هو ملي كتجمع هاد الأوامر فواحد الملف باش يتنفذو كاملين بالترتيب. ببساطة، كتصاوب واحد الروبو صغير كيدير ليك الخدمة لي كتعاود ديما.


علاش الباش مهم بزاف لل DevOps engineers؟

كاينين بزاف ديال الأسباب لي كيخليو bash أداة لا غنى عنها:

  • Automation: أهم حاجة فالديف أوبس هي الـ automation. بـ bash تقدر automate المهام لي كتعاود كل نهار، بحال أخذ backups، اولا deployments، أو monitoring.
  • Server Management: بـ Bash تقدر تتحكم فالسيرفرات ديالك بسهولة، تزيد مستخدمين جداد، تبدل permissions، تنقل الملفات، وتدير بزاف الحوايج أخرين غير بشي سطور ديال الكود.
  • CI/CD: الـ bash كيلعب دور كبير فالـ CI/CD pipelines (بحال Jenkins, GitLab CI). أغلب المراحل ديال هاد الـ pipelines هي عبارة على سكريبْتات ديال bash لي كتدير الـ build، الـ test، والـ deploy للكود ديالك.
  • صنع أدوات خاصة بيك: أحياناً كتحتاج شي أداة خاصة باش تحل ليك واحد المشكل معين. بالباش تقدر تصنع سكريبْتات على قدك باش تسهل عليك الخدمة.
  • موجود فكلشي: الباش كاين تقريبا فكاع الأنظمة ديال Linux و Unix، وهادشي كيعني أن السكريبْتات ديالك غاتخدم فغالبية السيرفرات بلا مشاكل.

المفاهيم الأساسية لي خاصك تعرف

يالله ندوزو دابا للأساسيات لي غاتحتاج باش تبدا:

  1. Shebang #!/bin/bash: هادا هو أول سطر خاصو يكون فأي سكريبْت باش. كيقول للسيستيم بلي هاد الملف خاصو يتنفذ باستعمال الباش.

  2. Variables: باش تخزن شي معلومة.

    # تعريف متغير
    APP_NAME="MyWebApp"
    # استعمال المتغير
    echo "Deploying $APP_NAME..."
    
  3. Conditional Statements: باش تخلي السكريبْت ديالك ياخد قرارات.

    if [ -f "/var/www/html/index.html" ]
    then
        echo "File exists."
    else
        echo "File does not exist."
    fi
    
  4. Loops: باش تعاود تنفذ واحد الجزء من الكود عدة مرات.

    # For loop
    for i in 1 2 3 4 5
    do
       echo "Welcome ${i}"
    done
    
  5. Functions: باش تنظم الكود ديالك وتفادى التكرار.

    function greet() {
       echo "Hello, $1"
    }
    
    greet "brahim"
    

مثال تطبيقي لـ DevOps

باش نفهمو كتر، ها واحد المثال بسيط لي كيستعملوه بزاف فالديف أوبس: سكريبْت كيراقب مساحة التخزين فالسيرفر. هاد السكريبْت كيشوف شحال مستعمل من مساحة disk، ويلا فات واحد النسبة (مثلاً 80%)، كيعلمك بلي كاينة مشكلة.

#!/bin/bash

MAX_USAGE=80

CURRENT_USAGE=$(df / | grep / | awk '{ print $5 }' | sed 's/%//g')

LOG_FILE="/var/log/disk_monitor.log"

echo "$(date): Checking disk space..." >> $LOG_FILE

if [ "$CURRENT_USAGE" -gt "$MAX_USAGE" ]; then
  echo "WARNING: Disk space is critically low! Usage is at ${CURRENT_USAGE}%"
  echo "$(date): WARNING! Disk usage is at ${CURRENT_USAGE}%" >> $LOG_FILE
else
  echo "OK: Disk space is sufficient. Usage is at ${CURRENT_USAGE}%"
  echo "$(date): OK - Disk usage is at ${CURRENT_USAGE}%" >> $LOG_FILE
fi

تقدر تخلي هاد السكريبْت يتنفذ أوتوماتيكيا كل ساعة باستعمال Cronjob، وهكا تبقى ديما على اطلاع بحالة السيرفر ديالك.


نصائح باش تكتب سكريبتات حسن

باش السكريبْتات ديالك يكونو نقيين ومحترفين، تبع هاد النصائح:

  • Comments: ديما زيد تعليقات # باش تشرح الأجزاء المهمة فالكود ديالك.
  • أسماء متغيرات واضحة: استعمل أسماء عندها معنى للمتغيرات ديالك (بحال APP_NAME ماشي x).
  • استعمل set -e: هاد الأمر كيخلي السكريبْت يوقف مباشرة يلا لقى شي خطأ، وهادشي كيمنع المشاكل.
  • جرب السكريبْت ديالك مزيان: قبل ما تطلق شي سكريبْت فـ production، جربو مزيان فبيئة ديال development.