كل ما تحتاج معرفته عن Bash في لينكس: الدليل الشامل للمبتدئين

1. أساسيات Bash

ما هو Bash Shell؟

Bash (Bourne Again Shell) هو أكثر واجهة أوامر استخدامًا في توزيعات لينكس. هذه الأداة البسيطة والقوية توفر منصة للمستخدمين للتفاعل مع النظام، ويمكن استخدامها لإدارة الملفات، وتشغيل البرامج، وإدارة المهام، وغيرها من العمليات الأساسية.

مزايا Bash

  • قدرات البرمجة النصية القوية: يتيح Bash أتمتة المهام المعقدة باستخدام سكربتات الشل.
  • دعم واسع النطاق: مدعوم في معظم أنظمة التشغيل الشبيهة بـ Unix وتوزيعات Linux.
  • قابلية التخصيص العالية: يمكن للمستخدمين تخصيص بيئتهم باستخدام الأوامر المختصرة (alias) ودوال الشل.
# مثال على أمر Bash بسيط
echo "Hello, World!"

2. أوامر Bash الأساسية

إدارة الملفات

فيما يلي أوامر إدارة الملفات الأكثر استخدامًا في Bash.

  • ls: يعرض محتويات المجلد.
  • cd: يغير المجلد الحالي.
  • cp: ينسخ الملفات أو المجلدات.
  • mv: ينقل أو يعيد تسمية الملفات.
  • rm: يحذف الملفات.
# عرض تفاصيل محتويات المجلد
ls -l

# الانتقال إلى مجلد المنزل
cd ~

# نسخ ملف
cp source.txt destination.txt

# نقل أو إعادة تسمية ملف
mv old_name.txt new_name.txt

# حذف ملف
rm unwanted_file.txt

معلومات النظام وإدارة العمليات

أوامر التحقق من معلومات النظام وإدارة العمليات مهمة أيضًا.

  • ps: يعرض العمليات النشطة.
  • top: يعرض قائمة العمليات الحية ونظرة عامة على النظام.
  • kill: ينهي عملية عبر إرسال إشارة إليها.
# عرض العمليات النشطة
ps aux

# عرض ملخص النظام وقائمة العمليات
top

# إنهاء عملية بمعرف 1234
kill 1234

 

3. كيفية كتابة سكربت Bash

البنية الأساسية للسكربت

ملف سكربت Bash يحتوي على عدة أوامر. باستخدام السكربتات يمكنك أتمتة وتنفيذ سلسلة من العمليات بسهولة.

#!/bin/bash
# هذا السطر يُسمى Shebang، ويحدد الشل الذي سيتم استخدامه لتنفيذ السكربت.

echo "Hello, World!"  # يعرض النص باستخدام الأمر echo

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

يمكنك استخدام المتغيرات لتخزين البيانات وإعادة استخدامها داخل السكربت.

#!/bin/bash
message="Hello, Bash Scripting!"
echo $message

الشروط والحلقات

تُستخدم الشروط والحلقات لتنفيذ منطق معقد وتكرار المهام.

#!/bin/bash
# مثال على if
if [ $1 -gt 100 ]
then
  echo "The number is greater than 100."
else
  echo "The number is 100 or less."
fi

# مثال على حلقة for
for i in 1 2 3 4 5
do
  echo "Looping ... number $i"
done

4. أتمتة المهام باستخدام Bash

نظرة عامة على أتمتة المهام

باستخدام سكربتات Bash، يمكنك أتمتة المهام الدورية بكفاءة، مثل النسخ الاحتياطي للنظام، ومزامنة البيانات، وإنشاء التقارير، مما يقلل من عبء إدارة النظام.

سكربت النسخ الاحتياطي التلقائي

السكربت التالي يتيح لك عمل نسخ احتياطية دورية للمجلد المحدد لحماية بياناتك.

#!/bin/bash
SRC_DIR="/home/user/documents"
DST_DIR="/backup/documents"
DATE=$(date +%Y%m%d)

# إنشاء مجلد النسخ الاحتياطي إذا لم يكن موجودًا
if [ ! -d "$DST_DIR" ]; then
  mkdir -p "$DST_DIR"
fi

# ضغط محتوى المجلد وعمل النسخة الاحتياطية
tar -czf "$DST_DIR/backup_$DATE.tar.gz" -C "$SRC_DIR" .
echo "Backup completed successfully."

تشغيل السكربت تلقائيًا باستخدام cron

يمكنك إعداد cron لتشغيل سكربت النسخ الاحتياطي كل يوم في الساعة 2 صباحًا.

0 2 * * * /path/to/backup.sh

معالجة الأخطاء والإشعارات

يمكنك إضافة معالجة للأخطاء أثناء النسخ الاحتياطي، وإرسال إشعار إلى المدير عند حدوث مشكلة.

#!/bin/bash
SRC_DIR="/home/user/documents"
DST_DIR="/backup/documents"
LOG_FILE="/var/log/backup.log"
DATE=$(date +%Y%m%d)

if [ ! -d "$DST_DIR" ]; then
  mkdir -p "$DST_DIR"
fi

if tar -czf "$DST_DIR/backup_$DATE.tar.gz" -C "$SRC_DIR" .; then
  echo "Backup successful on $DATE" >> $LOG_FILE
else
  echo "Backup failed on $DATE" | mail -s "Backup Failure" admin@example.com
fi