أساسيات لينكس

التنقل في نظام الملفات

18 دقيقة الدرس 3 من 26

التنقل في نظام الملفات

كل إجراء يقوم به مهندس DevOps — سواء كان نشر تطبيق، أو متابعة سجل أحداث، أو مراجعة ملف إعداد — يبدأ بمعرفة مكانك تحديداً على القرص وكيفية التنقل بثقة. يستخدم Linux شجرة موحدة واحدة جذرها /. لا يوجد C:\ أو D:\؛ كل جهاز وكل مشاركة شبكية وكل نظام ملفات افتراضي يُركَّب في مكان ما داخل تلك الشجرة الواحدة. فهم هذا التخطيط ليس خلفية اختيارية — إنه الخريطة التي تتنقل بها يومياً في بيئة الإنتاج.

معيار تسلسل نظام الملفات (FHS)

يُحدِّد معيار تسلسل نظام الملفات (FHS) ما الذي يجب أن يوجد في كل مكان. تتبع كل التوزيعات الكبرى لـ Linux هذا المعيار. حين تتصل عبر SSH بخادم Ubuntu أو RHEL أو Alpine لم تلمسه من قبل، ستعرف مسبقاً أين تجد ملفات الإعداد والسجلات والأدوات التنفيذية، لأن FHS موحَّد.

Linux Filesystem Hierarchy / (root) /etc /var /usr /proc /home /bin /tmp nginx/ ssh/ cron.d/ log/ lib/ www/ bin/ local/ share/ [PID]/ cpuinfo meminfo Persistent data & config Virtual (kernel-managed) Essential binaries Temporary (cleared on boot)
تسلسل نظام الملفات في Linux — الدلائل الرئيسية تحت الجذر وفروعها.

الدلائل التي ستتعامل معها أكثر من غيرها في عمل DevOps:

  • /etc — ملفات الإعداد على مستوى النظام بأكمله. /etc/nginx/nginx.conf، /etc/ssh/sshd_config، /etc/cron.d/. لا يوجد هنا أي ملف تنفيذي — فقط نصوص إعداد. حين تغيّر شيئاً في /etc فأنت تغيّر سلوك الجهاز بأكمله.
  • /var — البيانات المتغيرة التي تنمو وقت التشغيل: السجلات في /var/log/، وملفات قوائم الانتظار، وقواعد بيانات الحزم في /var/lib/، والجذر الويب في /var/www/. القرص يمتلئ هنا أولاً في الإنتاج — راقبه.
  • /usr — برامج فضاء المستخدم المثبَّتة عبر مدير الحزم. يحوي /usr/bin/ معظم الأوامر مثل python3 وgit وcurl. أما /usr/local/bin/ فهو المكان المناسب بحكم العرف للبرامج التي تُصرِّفها أو تثبّتها خارج مدير الحزم. ويحوي /usr/share/ البيانات المستقلة عن المعمارية كصفحات الدليل وملفات الترجمة.
  • /proc — نظام ملفات افتراضي يكشف رؤية النواة للعمليات الجارية والأجهزة. لا شيء مخزَّن على القرص؛ النواة تولّده عند الطلب. يحوي /proc/[PID]/ الحالة الكاملة لعملية جارية. كيف تعمل أدوات مثل top؟ تقرأ من /proc/cpuinfo و/proc/meminfo.
  • /bin و/sbin — في الأنظمة الحديثة هذه وصلات رمزية إلى /usr/bin و/usr/sbin (تخطيط "usr المدمج"). تحوي الملفات التنفيذية الأساسية اللازمة للإقلاع واسترداد النظام.
  • /home — الدلائل الشخصية للمستخدمين. في الإنتاج، تقطن حسابات خدمات التطبيقات عادةً في /home/deploy أو في /srv.
  • /tmp — يُمسَح عند إعادة التشغيل وأحياناً بموقِّت systemd. لا تخزّن هنا أي شيء تحتاجه لاحقاً.

المسارات المطلقة مقابل النسبية

المسار المطلق يبدأ من / وهو لا لبس فيه بصرف النظر عن موقعك الحالي: /etc/nginx/nginx.conf. أما المسار النسبي فيبدأ من دليل العمل الحالي: ../log/nginx/error.log. في السكريبتات ومهام cron استخدم دائماً مسارات مطلقة — المسارات النسبية تعتمد على دليل العمل عند تشغيل السكريبت، وهو غالباً ليس ما تتوقعه.

فخ الإنتاج: مهمة cron تعمل بشكل مثالي حين تختبرها يدوياً لكنها تفشل صامتةً في الإنتاج، لأن cron يعمل ببيئة متقلِّصة ودليل عمل مختلف. استخدم مسارات مطلقة في كل سكريبت تستدعيه مهام cron أو systemd.

التنقل بـ ls وcd

ls يعرض محتويات الدليل. cd يغيّر الدليل الحالي. الرموز الخاصة: . (الدليل الحالي)، .. (الدليل الأب)، ~ (دليلك الشخصي)، - (الدليل السابق) تُسرِّع التنقل.

# قائمة مفصَّلة مع الملفات المخفية وأحجام مقروءة ومرتَّبة حسب الوقت ls -lahrt /var/log/nginx/ # إظهار أرقام inodes (مفيد عند تشخيص الروابط الصلبة) ls -lai /etc/alternatives/ # العودة إلى الدليل السابق (تبديل بين موقعين) cd /etc/nginx cd /var/log/nginx cd - # يقفز إلى /etc/nginx # الذهاب سريعاً إلى الدليل الشخصي cd ~ # أو ببساطة: cd
نصيحة احترافية: ls -lahrt يرتّب حسب وقت التعديل، الأحدث في الأسفل — مثالي لمعرفة ملف الإعداد أو السجل الذي تغيَّر للتو. أضف | tail -20 لرؤية آخر إدخالات في دليل مزدحم.

البحث بـ find

find من أقوى أدوات نظام الملفات في Linux. يجتاز شجرة الدلائل ويطبّق اختبارات — الاسم، النوع، الصلاحيات، الحجم، وقت التعديل — ليُمكِّنك من تحديد ما تريد بدقة أو التصرف عليه مباشرة.

# البحث عن كل ملفات .conf تحت /etc بصرف النظر عن حالة الأحرف find /etc -iname "*.conf" -type f # الملفات المعدَّلة في آخر 10 دقائق (مفيد بعد عملية نشر) find /var/www/app -mmin -10 -type f # ملفات أكبر من 100 ميغابايت — تشخيص ضغط القرص بسرعة find /var/log -size +100M -type f # ملفات قابلة للكتابة من أي مستخدم تحت /etc (فحص أمني لا غنى عنه) find /etc -type f -perm -o+w # البحث وحذف الملفات الأقدم من 30 يوماً (مساعد تدوير السجلات) find /tmp -type f -mtime +30 -delete # تركيب اختبارات: مملوك لـ root وقابل للتنفيذ، تحت /usr/local/bin find /usr/local/bin -user root -perm /u+x -type f # تنفيذ أمر على كل نتيجة (-exec ... {} \;) find /etc -name "*.bak" -exec rm -v {} \;
مفهوم أساسي: find ليس مجرد أداة بحث — إنه خط أنابيب فلترة يُنفِّذ أوامر اعتباطية. الخيار -exec يُشغِّل أمراً لكل نتيجة؛ أما -execdir فيُشغِّله من داخل دليل الملف ذاته، وهو أكثر أماناً في مواجهة حقن المسارات.

استكشاف /proc عملياً

بما أن /proc مجرد ملفات، يمكنك فحص حالة النواة الحية بأدوات النصوص العادية فقط. هكذا تعمل عوامل المراقبة وأوقات تشغيل الحاويات وأدوات الرصد داخلياً.

# رؤية جميع المعالجات التي تراها النواة (حاسم لقرارات تثبيت المعالج) cat /proc/cpuinfo | grep "model name" | sort -u # إجمالي الذاكرة والذاكرة المتاحة بالكيلوبايت — المصدر الموثوق cat /proc/meminfo | grep -E "MemTotal|MemAvailable|SwapTotal" # فحص عملية محددة (PID 1 دائماً init/systemd) ls /proc/1/fd # واصفات الملفات المفتوحة cat /proc/1/status # حالة العملية: الخيوط، الذاكرة، uid، الحالة cat /proc/1/cmdline # سطر الأوامر الكامل (محدَّد بالبايت الصفري) # قراءة معاملات النواة (sysctl) كملفات عادية cat /proc/sys/vm/swappiness # مستوى حدة تبادل الذاكرة الحالي cat /proc/sys/net/ipv4/ip_forward # إعادة توجيه IP (1=مفعَّل للموجِّهات وعقد k8s)

مرجع سريع: اختصارات التنقل

  • pwd — اطبع دليل العمل الحالي (اعرف دائماً أين أنت)
  • cd / — اذهب إلى الجذر
  • cd ~ أو cd — اذهب إلى دليلك الشخصي
  • cd - — تبديل إلى الدليل السابق
  • ls -lahrt — قائمة مفصَّلة، كل الملفات، أحجام مقروءة، مرتَّبة الأحدث أخيراً
  • find . -name "*.log" -mmin -60 — الملفات المعدَّلة في الساعة الأخيرة
  • stat /path/to/file — بيانات inode الكاملة: الحجم، الصلاحيات، الطوابع الزمنية
ممارسة الشركات الكبرى: على خوادم الإنتاج، يُتوقَّع من المهندسين تشخيص مشكلات القرص دون تثبيت أدوات جديدة. الأمر du -sh /var/log/* | sort -rh | head -20 هو أول ما تشغّله حين يُظهر df -h نظام ملفات عند 95%. احفظ هذه الأوامر عن ظهر قلب.