التنقل في نظام الملفات
التنقل في نظام الملفات
كل إجراء يقوم به مهندس DevOps — سواء كان نشر تطبيق، أو متابعة سجل أحداث، أو مراجعة ملف إعداد — يبدأ بمعرفة مكانك تحديداً على القرص وكيفية التنقل بثقة. يستخدم Linux شجرة موحدة واحدة جذرها /. لا يوجد C:\ أو D:\؛ كل جهاز وكل مشاركة شبكية وكل نظام ملفات افتراضي يُركَّب في مكان ما داخل تلك الشجرة الواحدة. فهم هذا التخطيط ليس خلفية اختيارية — إنه الخريطة التي تتنقل بها يومياً في بيئة الإنتاج.
معيار تسلسل نظام الملفات (FHS)
يُحدِّد معيار تسلسل نظام الملفات (FHS) ما الذي يجب أن يوجد في كل مكان. تتبع كل التوزيعات الكبرى لـ Linux هذا المعيار. حين تتصل عبر SSH بخادم Ubuntu أو RHEL أو Alpine لم تلمسه من قبل، ستعرف مسبقاً أين تجد ملفات الإعداد والسجلات والأدوات التنفيذية، لأن FHS موحَّد.
الدلائل التي ستتعامل معها أكثر من غيرها في عمل 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 أو systemd.
التنقل بـ ls وcd
ls يعرض محتويات الدليل. cd يغيّر الدليل الحالي. الرموز الخاصة: . (الدليل الحالي)، .. (الدليل الأب)، ~ (دليلك الشخصي)، - (الدليل السابق) تُسرِّع التنقل.
ls -lahrt يرتّب حسب وقت التعديل، الأحدث في الأسفل — مثالي لمعرفة ملف الإعداد أو السجل الذي تغيَّر للتو. أضف | tail -20 لرؤية آخر إدخالات في دليل مزدحم.
البحث بـ find
find من أقوى أدوات نظام الملفات في Linux. يجتاز شجرة الدلائل ويطبّق اختبارات — الاسم، النوع، الصلاحيات، الحجم، وقت التعديل — ليُمكِّنك من تحديد ما تريد بدقة أو التصرف عليه مباشرة.
find ليس مجرد أداة بحث — إنه خط أنابيب فلترة يُنفِّذ أوامر اعتباطية. الخيار -exec يُشغِّل أمراً لكل نتيجة؛ أما -execdir فيُشغِّله من داخل دليل الملف ذاته، وهو أكثر أماناً في مواجهة حقن المسارات.
استكشاف /proc عملياً
بما أن /proc مجرد ملفات، يمكنك فحص حالة النواة الحية بأدوات النصوص العادية فقط. هكذا تعمل عوامل المراقبة وأوقات تشغيل الحاويات وأدوات الرصد داخلياً.
مرجع سريع: اختصارات التنقل
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%. احفظ هذه الأوامر عن ظهر قلب.