المختبر 4.1 - تصور العمليات
الأهداف
في نهاية هذا المختبر، ستكون قادرًا على:
- تصور العمليات باستخدام ps، top، htop
- فهم المعلومات المعروضة
- تصفية وفرز العمليات
- مراقبة العمليات في الوقت الحقيقي
المتطلبات المسبقة
- تثبيت أوبونتو 24.04
- فتح الطرفية
- تثبيت htop (اختياري ولكن موصى به)
التمرين 1: ps (حالة العملية)
الخطوة 1: الأوامر الأساسية
# عرض جميع العمليات
ps aux
# عرض عمليات المستخدم الحالي
ps
# مع تفاصيل أكثر
ps auxf # شجرة العمليات
# عرض عملية محددة
ps aux | grep firefox
الخطوة 2: الخيارات المفيدة
# تنسيق مخصص
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head -10
# العمليات حسب المستخدم
ps -u $USER
# العمليات حسب PID
ps -p 1
# العمليات مع شجرة
pstree
pstree -p # مع PID
الخطوة 3: التحليل
# أعلى 10 حسب CPU
ps aux --sort=-%cpu | head -11
# أعلى 10 حسب الذاكرة
ps aux --sort=-%mem | head -11
# عد العمليات
ps aux | wc -l
# حسب المستخدم
ps aux | awk '{print $1}' | sort | uniq -c | sort -rn
التمرين 2: top
الخطوة 1: الاستخدام الأساسي
# تشغيل top
top
# الأوامر في top:
# - 'q': الخروج
# - 'k': قتل عملية (إدخال PID)
# - 'r': تغيير أولوية عملية
# - 'M': فرز حسب الذاكرة
# - 'P': فرز حسب CPU
# - 'f': تغيير الأعمدة المعروضة
# - '1': عرض جميع وحدات المعالجة المركزية
الخطوة 2: وضع الدفعة
# تشغيل top في وضع الدفعة (مرة واحدة)
top -bn1 | head -20
# حفظ في ملف
top -bn1 > top-output.txt
# عرض العمليات العليا
top -bn1 | grep -A 20 "PID USER"
التمرين 3: htop (محسن)
الخطوة 1: التثبيت
# تثبيت htop
sudo apt update
sudo apt install htop
# تشغيل
htop
الخطوة 2: ميزات htop
# htop يقدم:
# - واجهة ملونة وبديهية
# - التنقل باستخدام الأسهم
# - التصفية في الوقت الحقيقي (F4)
# - البحث (F3)
# - قتل العمليات (F9)
# - تغيير أولوية العمليات (F7/F8)
# - شجرة العمليات (F5)
الخطوة 3: التكوين
# في htop:
# - F2: الإعداد (التكوين)
# - F10: الخروج
التمرين 4: معلومات مفصلة
الخطوة 1: /proc
# معلومات عن عملية (استبدل PID)
PID=$(pgrep -f firefox | head -1)
echo "PID: $PID"
# الحالة
cat /proc/$PID/status
# الملفات المفتوحة
ls -l /proc/$PID/fd/
# دليل العمل
readlink /proc/$PID/cwd
# الملف التنفيذي
readlink /proc/$PID/exe
الخطوة 2: lsof (إذا تم تثبيته)
# التثبيت
sudo apt install lsof
# الملفات المفتوحة بواسطة عملية
sudo lsof -p $PID
# العمليات التي تستخدم ملف
sudo lsof /var/log/syslog
# الاتصالات الشبكية
sudo lsof -i
التمرين 5: المراقبة في الوقت الحقيقي
الخطوة 1: watch
# مراقبة العمليات
watch -n 1 'ps aux --sort=-%cpu | head -10'
# مراقبة عملية محددة
watch -n 1 'ps -p $PID -o pid,%cpu,%mem,cmd'
الخطوة 2: سكربت المراقبة
# إنشاء سكربت
cat > ~/monitor-processes.sh << 'EOF'
#!/bin/bash
while true; do
clear
echo "=== $(date) ==="
echo
echo "Top 5 CPU:"
ps aux --sort=-%cpu | head -6
echo
echo "Top 5 ذاكرة:"
ps aux --sort=-%mem | head -6
echo
echo "إجمالي العمليات: $(ps aux | wc -l)"
sleep 2
done
EOF
chmod +x ~/monitor-processes.sh
# تشغيل: ./monitor-processes.sh
التمرين 6: التصفية المتقدمة
الخطوة 1: حسب الاسم
# العثور على جميع العمليات التي تحتوي على "python"
ps aux | grep python
# استبعاد عملية grep نفسها
ps aux | grep python | grep -v grep
# باستخدام pgrep
pgrep -a python
الخطوة 2: حسب المستخدم
# عمليات مستخدم
ps -u root
# جميع العمليات ما عدا root
ps aux | grep -v "^root"
الخطوة 3: حسب الحالة
# العمليات الجارية
ps aux | grep " R "
# العمليات في الانتظار
ps aux | grep " S "
# العمليات الزومبي
ps aux | grep " Z "
التحقق
قائمة التحقق
تحقق من أنك تستطيع:
- استخدام ps لرؤية العمليات
- استخدام top للمراقبة في الوقت الحقيقي
- استخدام htop (واجهة محسنة)
- تصفية وفرز العمليات
- رؤية المعلومات المفصلة (/proc)
- المراقبة في الوقت الحقيقي
أسئلة للتفكير
-
ما الفرق بين ps وtop؟
- ps: لقطة
- top: تفاعلي، في الوقت الحقيقي
-
ماذا تعني حالات العمليات (R، S، Z)؟
- R: جاري (قيد التشغيل)
- S: نائم (في الانتظار)
- Z: زومبي (منتهي ولكن لم يتم تنظيفه)
-
لماذا يفضل htop على top؟
- واجهة أكثر بديهية
- تنقل أسهل
- مزيد من المعلومات المرئية
الخطوات التالية
- المختبر 4.2: التحكم في العمليات
- المختبر 4.3: الأولويات وقيم Nice
- الفصل 4.2: تصور العمليات
تم إنشاء المختبر في: ديسمبر 2024 - تم اختباره على أوبونتو 24.04