DF Command

1) ما هو أمر df ولماذا نستخدمه؟

أمر df اختصار لـ Disk Free
وظيفته: عرض معلومات عن الأقراص/أنظمة الملفات (filesystems) مثل:

  • الحجم الكلي
  • المستخدم
  • المتاح
  • نسبة الاستخدام
  • نقطة التركيب (Mount point)

متى يفيدك؟

  • عندما تشعر أن القرص ممتلئ
  • مراقبة مساحة السيرفر
  • معرفة أي partition امتلأ
  • اكتشاف مشكلة “المساحة موجودة لكن لا أقدر أنشئ ملفات” (قد تكون مشكلة inodes)

الفرق المهم جدًا:

  • df يجيب: كم مساحة متبقية في القرص/الـ filesystem؟
  • du يجيب: أي مجلدات/ملفات هي التي تستهلك المساحة؟
2) الصيغة العامة (Syntax)
df [OPTIONS] [PATH]
Bash
  • بدون PATH → يعرض كل الـ filesystems المركبة
  • مع PATH → يعرض الـ filesystem الذي يحتوي هذا المسار
3) الاستخدام الأساسي
أ) عرض تقرير كامل
df
Bash

سترى أعمدة مثل:

Filesystem  1K-blocks  Used  Available  Use%  Mounted on
Bash
ب) عرض بشكل مقروء (الأهم للمبتدئ)
df -h
Bash

مخرجات تكون مثل:

Filesystem  Size  Used  Avail  Use%  Mounted on
Bash
4) شرح الأعمدة (ببساطة)

عند df -h:

  • Filesystem: اسم الجهاز/القسم (مثل /dev/sda1) أو tmpfs
  • Size: الحجم الكلي
  • Used: المستخدم
  • Avail: المتاح
  • Use%: نسبة الاستخدام
  • Mounted on: أين تم تركيب هذا الـ filesystem (مثل /, /home…)
5) فحص مسار محدد (مهم جدًا)

هذا يفيدك لما تريد تعرف: المجلد هذا على أي قسم؟ وكم باقي فيه؟

فحص الجذر /
df -h /
Bash
فحص المجلد الحالي (.)
df -h .
Bash
فحص مجلد مشروع
df -h ~/project
Bash

تذكير: df لا يحسب حجم مجلدك نفسه، بل يعرض مساحة القسم الذي يحتويه.

6) عرض نوع نظام الملفات (Filesystem Type): -T
df -hT
Bash

سيضيف عمود Type مثل:

  • ext4, xfs, tmpfs, overlay
7) فحص inodes (مهم في السيرفرات): -i

أحيانًا تكون المساحة موجودة لكن لا تستطيع إنشاء ملفات لأن inodes انتهت (كثير ملفات صغيرة).

df -i
Bash

سترى:

  • Inodes (الإجمالي)
  • IUsed (المستخدم)
  • IFree (المتبقي)
  • IUse% (نسبة استهلاك inodes)

إذا IUse% قريب 100% → مشكلة inodes.

8) تخصيص الأعمدة (مفيد للترتيب والتقارير): --output

مثال مفيد وواضح:

df -h --output=source,fstype,size,used,avail,pcent,target
Bash

أو مختصر جدًا:

df -h --output=source,size,used,avail,pcent,target
Bash
9) عرض filesystem واحد فقط بدل كل شيء

تستطيع “تستهدف” المسار:

df -h /
df -h /home
df -h /var
Bash
10) نصائح عملية سريعة (أوامر جاهزة)
أ) اعرض فقط الأقسام الحقيقية (ليس tmpfs أحيانًا)

يمكنك فلترة النتائج:

df -h | grep -v tmpfs
Bash
ب) اعرف أي الأقسام امتلأت بسرعة
df -h | sort -k5 -h
Bash

العمود 5 هو Use% عادةً، والترتيب حسبه (قد تختلف الأعمدة قليلًا حسب النظام).

11) مثال عملي: ربط df مع du لحل مشكلة امتلاء القرص
  1. أولاً اعرف القسم الممتلئ:
df -h
Bash
  1. ثم داخل نقطة التركيب (مثلاً / أو /home) شوف أكبر مجلدات مستوى أول:
du -h -d 1 / | sort -h | tail -n 10
Bash

هذا تسلسل عملي جدًا في الحياة الواقعية.

12) تدريب سريع (Practice)

نفّذ هذه الأوامر:

# 1) تقرير عام
df -h

# 2) تقرير لمكانك الحالي
df -h .

# 3) عرض النوع
df -hT

# 4) فحص inodes
df -i

# 5) تقرير مخصص
df -h --output=source,fstype,size,used,avail,pcent,target
Bash
هل الشرح الأصلي كافي؟

نعم ممتاز ومتكامل، وزيادة مهمة للمبتدئ كانت:

  • توضيح قوي للفرق بين df و du
  • لماذا نحتاج df -i (موضوع inodes)
  • فلترة tmpfs عند الحاجة
  • تسلسل حل مشكلة المساحة (df ثم du)