المحتوى عن 'نظام الملفات'.



مزيد من الخيارات

  • ابحث بالكلمات المفتاحية

    أضف وسومًا وافصل بينها بفواصل ","
  • ابحث باسم الكاتب

نوع المُحتوى


التصنيفات

  • التخطيط وسير العمل
  • التمويل
  • فريق العمل
  • دراسة حالات
  • نصائح وإرشادات
  • التعامل مع العملاء
  • التعهيد الخارجي
  • التجارة الإلكترونية
  • الإدارة والقيادة
  • مقالات ريادة أعمال عامة

التصنيفات

  • PHP
    • Laravel
    • ووردبريس
  • جافاسكريبت
    • Node.js
    • jQuery
    • AngularJS
    • Cordova
  • HTML
    • HTML5
  • CSS
  • SQL
  • سي شارب #C
    • منصة Xamarin
  • بايثون
    • Flask
    • Django
  • لغة روبي
    • Sass
    • إطار عمل Bootstrap
    • إطار العمل Ruby on Rails
  • لغة Go
  • لغة جافا
  • لغة Kotlin
  • برمجة أندرويد
  • لغة Swift
  • لغة R
  • لغة TypeScript
  • سير العمل
    • Git
  • صناعة الألعاب
    • Unity3D
  • مقالات برمجة عامة

التصنيفات

  • تجربة المستخدم
  • الرسوميات
    • إنكسكيب
    • أدوبي إليستريتور
    • كوريل درو
  • التصميم الجرافيكي
    • أدوبي فوتوشوب
    • أدوبي إن ديزاين
    • جيمب
  • التصميم ثلاثي الأبعاد
    • 3Ds Max
    • Blender
  • نصائح وإرشادات
  • مقالات تصميم عامة

التصنيفات

  • خواديم
    • الويب HTTP
    • قواعد البيانات
    • البريد الإلكتروني
    • DNS
    • Samba
  • الحوسبة السّحابية
    • Docker
  • إدارة الإعدادات والنّشر
    • Chef
    • Puppet
    • Ansible
  • لينكس
  • FreeBSD
  • حماية
    • الجدران النارية
    • VPN
    • SSH
  • مقالات DevOps عامة

التصنيفات

  • التسويق بالأداء
    • أدوات تحليل الزوار
  • تهيئة محركات البحث SEO
  • الشبكات الاجتماعية
  • التسويق بالبريد الالكتروني
  • التسويق الضمني
  • التسويق بالرسائل النصية القصيرة
  • استسراع النمو
  • المبيعات
  • تجارب ونصائح

التصنيفات

  • إدارة مالية
  • الإنتاجية
  • تجارب
  • مشاريع جانبية
  • التعامل مع العملاء
  • الحفاظ على الصحة
  • التسويق الذاتي
  • مقالات عمل حر عامة

التصنيفات

  • الإنتاجية وسير العمل
    • مايكروسوفت أوفيس
    • ليبر أوفيس
    • جوجل درايف
    • شيربوينت
    • Evernote
    • Trello
  • تطبيقات الويب
    • ووردبريس
    • ماجنتو
  • أندرويد
  • iOS
  • macOS
  • ويندوز

التصنيفات

  • شهادات سيسكو
    • CCNA
  • شهادات مايكروسوفت
  • شهادات Amazon Web Services
  • شهادات ريدهات
    • RHCSA
  • شهادات CompTIA
  • مقالات عامة

أسئلة وأجوبة

  • الأقسام
    • أسئلة ريادة الأعمال
    • أسئلة العمل الحر
    • أسئلة التسويق والمبيعات
    • أسئلة البرمجة
    • أسئلة التصميم
    • أسئلة DevOps
    • أسئلة البرامج والتطبيقات
    • أسئلة الشهادات المتخصصة

التصنيفات

  • ريادة الأعمال
  • العمل الحر
  • التسويق والمبيعات
  • البرمجة
  • التصميم
  • DevOps

تمّ العثور على 3 نتائج

  1. طوّرت شركة Sun Microsystems نظام الملفّات الشبكي Network file system, NFS سنة 1980 من أجل السماح بتشارك الملفّات والمجلّدات بين الأنظمة الشبيهة بيونكس (لينكس ويونكس). يتيح نظام NFS للملفّات تركيب Mounting ملفّات عبر الشّبكة والتعامل معها كما لو كانت مركَّبة محليًّا على نفس النظام. فوائد نظام NFS يسمح نظام NFS بالوصول إلى الملفّات عن بعد. يستخدم بنية عميل-خادوم Client/Server معيارية لتشارك الملفّات بين جميع الأجهزة العاملة بالأنظمة الشبيهة بيونكس. ليس ضروريًّا عند استخدام NFS أن تكون الأجهزة تعمل على نفس نظام التّشغيل. يمكن ضبط حلول للتخزين المركزيّ بمساعدة نظام NFS. يعثُر المستخدمون على بياناتهم مهما كان تواجدها الفعلي. لا توجد حاجة للتحيين Refresh اليدوي للحصول على الملفّات الجديدة. تدعم الإصدارات الحديثة من NFS قوائم التحكّم في الوصول ACL. يمكن تأمينه عبر الجدران الناريّة Firewalls وKerberos (ميثاق للاستيثاق عبر الشبكة). تدخلّ الملفّات التاليّة في إعداد NFS: ملفّ etc/exports/: وهو ملفّ الإعداد الرئيس؛ تعرّف فيه - على الخادوم - جميع الملفّات والمجلّدات المشاركة. ملفّ etc/fstab/: يجب إدراج سطر لكلّ نظام ملفّات مُركَّب ضمن هذا الملفّ حتى يكون التركيب دائما (يبقى بعد إعادة التشغيل). ملفّ etc/sysconfig/nfs/: يعرّف المنافذ التي تنصت الخدمات للاتّصالات الواردة عبرها. إعداد NFS على خادوم أوبونتو سنعتمد في هذا الدرس على جهازين يعملان بإحدى توزيعات لينكس التاليّة: دبيان، أوبونتو أو ردهات. سنثبّت على أحد الجهازين خادوم NFS وعلى الثاني عميلا له كالتالي: خادوم NFS على العنوان 192.168.2.200. عميل NFS على العنوان 192.168.2.150. يمكنك استخدام VirtualBox لإعداد بيئة عمل بالمواصفات أعلاه. تثبيت الخادوم والعميل سنحتاج لتثبيت حزم NFS على الخادوم والعميل: # apt-get update # apt-get install nfs-kernel-server nfs-common ملحوظة: يمكن الاكتفاء بالحزمة nfs-common على العميل. تشير العلامة # إلى أن الأمر ينفَّذ بصلاحيّات الجذر. إعداد خادوم NFS الخطوة الأولى هي تحديد المجلّد الذي نريد مشاركته؛ سننشئ واحدا لهذا الغرض (يمكنك اختيّار مجلّد موجود مسبقا): # mkdir /nfsshare ثم نغيّر ملكيّته إلى nobody:nogroup: # chown nobody:nogroup /nfsshare غيّرنا ملكيّة الملفّ إلى المستخدم nobody الذي هو حساب لا يملك سوى الصلاحيّات الدنيا ويُستخدَم عادة لتنفيذ سكربتات غير مأمونة المصدر حتى لا تلحق أي ضرر بالنظام. هذه الخطوة ضروريّة وإلا فلن يكون بمقدورك إضافة ملفّات إلى المجلّد انطلاقا من العميل؛ إلا إذا أضفت خيار no_root_squash كما هو مشروح أدناه (لا يُنصَح بذلك). ليمكن تشاركُ المجلّد يجب أن نضيفه إلى ملفّ الإعداد etc/exports/؛ نفتح هذا الملفّ (بصلاحيّات الجذر) ثم نضيف إليه السّطر التالي: /nfsshare 192.168.2.150(rw,sync) يسمح السّطر أعلاه بتشارك المجلّد nfsshare مع العميل على العنوان 192.168.2.150 مع تحديد خيارات التشارك. يمكن أن تكون الخيارات على النحو التالي: ro: الوصول عبر وضع القراءة فقط؛ أي أن العميل يمكنه الوصول إلى الملفات المتشاركة فقط دون أن يكون قادرا على التعديل عليها أو إنشاء ملفات جديدة. rw: يمنح العميل القدرة على الوصول إلى الملفّات والتعديل عليها. sync: مزامنة التعديلات. يعني هذا أن أي تعديل سيُحفَظ فورا على نظام الملفّات؛ قد يؤثّر هذا الخيار على الأداء في حالة وجود الكثير من التغييرات المتزامنة على ملفّات كبيرة. no_subtree_check: يفحص نظام NFS مبدئيّا جميع المجلدات التي يتفرّع منها المجلّد المتشارَك من أجل التحقّق من الأذون وتفاصيل أخرى. يؤدّي تفعيل هذه الخاصيّة إلى تعطيل الفحص ممّا يحسّن من الأداء ولكنّه يؤدّي التقليل من الأمان. no_root_squash: تسمح هذه الخاصيّة للمستخدم الجذر على الجهاز العميل بالوصول إلى الملفّات المتشاركة على الخادوم بصلاحيّات الجذر على الخادوم. لا يُنصَح لأسباب أمنيّة باستخدام هذا الخيار إلا في حالات خاصّة. نطبّق الأمر exportfs بعد الانتهاء من تحرير الملفّ exports من أجل اعتماد التعديلات: # exportfs -r ثم نشغّل خدمة NFS كالتالي: # service nfs-kernel-server start إعداد عميل NFS على أوبونتو يمكننا الآن تركيب مجلّد التشارك على العميل. تأكد من أنه يمكن التواصل عبر الشبكة بين الجهاز الخادوم والعميل؛ مثلا باستخدام الأمر ping على العميل (حيثُ 192.168.2.200 هو عنوان الخادوم): $ ping 192.168.2.200 PING 192.168.2.200 (192.168.2.200) 56(84) bytes of data. 64 bytes from 192.168.2.200: icmp_seq=7 ttl=52 time=363 ms 64 bytes from 192.168.2.200: icmp_seq=8 ttl=52 time=322 ms نبدأ أولا بالبحث عن الملفّات المتشاركة عبر NFS على الخادوم: $ showmount -e 192.168.2.200 Export list for 192.168.2.200: /nfsshare 192.168.2.150 يظهر من نتيجة الأمر أعلاه أن المجلّد nfsshare/ متاح للتشارك مع العميل ذي العنوان 192.168.2.150. تركيب المجلد على العميل سننشئ على العميل مجلّدًا باسم mnt/nfs/nfsshare_mount/ ونستخدمه لتركيب المجلّد nfsshare/ على العميل (المجلّد nfsshare/ الموجود على الخادوم): # mkdir -p /mnt/nfs/nfsshare_mount # mount -t nfs 192.168.2.200:/nfsshare /mnt/nfs/nfsshare_mount يمكننا التأكد من تركيب المجلّد بتنفيذ الأمر mount والبحث عن نوع الملفّات nfs: $ mount | grep nfs 192.168.2.200:/nfsshare on /mnt/nfs/nfsshare_mount type nfs (rw,vers=4,addr=192.168.2.200,clientaddr=192.168.2.150) يمكن الآن إضافة ملفّات إلى مجلّد التشارك عبر نقطة التركيب: # touch /mnt/nfs/nfsshare_mount/testfile.txt يمكن التأكد من على الخادوم بسرد محتويات المجلّد nfsshare/. إن أردت جعل التركيب دائما (لا يزول مع إقلاع النظام) فيمكنك إضافة السطر التالي إلى ملفّ etc/fstab/: 192.168.2.200:/nfsshare /mnt/nfs/nfsshare_mount nfs defaults 0 0 نفّذ الأمر mount -a بعد تعديل ملفّ fstab لاعتماد التغييرات فورا. ملحوظة: تأكد من إدخال القيم الصحيحة في ملفّ etc/fstab/؛ وجود أخطاء في صياغة السّطر يمكن أن يؤدي إلى عدم إقلاع النظام. فصل المجلد من العميل استخدم الأمر umount إن أردت فصل المجلّد المركَّب، تُمرّضر نقطة التركيب للأمر على النحو التالي: # umount /mnt/nfs/nfsshare_mount نفّذ الأمر mount | grep nfs للتأكد من فصل المجلّد. أوامر أساسية للتعامل مع ملفات NFS في ما يلي أوامر يكثُر استخدامها أثناء التعامل مع المجلّدات المشارَكة عبر نظام NFS: showmount -e: يعرض جميع المجلّدات المتشاركة المتاحة على الجهاز. showmount -e <server-ip>: يسرد قائمة بالمجلّدات المشاركة المتاحة على الخادوم ذي العنوان server-ip. showmount -d <server-ip>: سرد المجلّدات المشاركة المتاحة على الخادوم والمجلدات المتفرعة منها. exportfs -v: يعرض قائمة بالمجلّدات المتشاركة الموجوة على الخادوم. exportfs -a: يطلب من الخادوم مشاركة الملفّات المحدّدة في الملفّ etc/exports/. exportfs -u: يعمل عكسَ عمل الأمر السابق، إذ يوقف مشاركة المجلدات المحدّدة في etc/exports/. exportfs -r: يحدّث قائمة المشاركات بعد التعديل على الملفّ etc/exports/. يمكن اعتماد هذا المقال الذي يقدّم أساسيات تشارك الملفّات عبر نظام NFS للانتقال إلى تفاصيل أكثر تقدّما بخصوص NFS والميزات التي يقدّمها. ترجمة -وبتصرّف- للمقال How to Setup NFS (Network File System) on RHEL/CentOS/Fedora and Debian/Ubuntu لصاحبه Tarunika Shrivastava.
  2. حول لينكسغنو لينكس GNU/Linux هو نظام تشغيل حرّ ومفتوح المصدر يدمج بين مشروعين مختلفين، الأول هو مشروع GNU لكتابة نظام تشغيل حرّ من الصفر والذي كاد يجهز مع بداية التسعينات باستثناء الجزء المسمّى بنواة النظام، في هذه الأثناء كان لينوس تورفالدز قد طوّر نواة نظام تشغيل كهواية، فجاءت الفكرة لاختصار الجهد بدمج المشروعين وتقديمهما تحت اسم غنو لينكس، والذي سيشيع لاحقًا باسم لينكس. ورغم أن لينكس سهل الاستخدام إلا أن القادمين الجدد من Windows يجدون صعوبة في فهم بنيته والتعامل معها، لذا سنستعرض في هذا الدرس بعض المفاهيم والأدوات الأساسيّة حول لينكس. الطرفيّةقبل أواخر التسعينيات زُوّد نظام التشغيل غنو لينكس بواجهات رسوميّة لتسهيل التعامل معه، إلا أنّ الطرفيّة (والتي يمكن تشبيهها مبدئيًا بموجّه الأوامر في Windows) لا تزال أداة قويّة وفعّالة في كثيرٍ من الحالات، لا سيما عند إدارتك لخادوم يعمل تحت نظام لينكس، حيث يتمّ ذلك عبر سطر الأوامر فقط، إذ تنفّذ جميع المهام الإدارية من خلال كتابة الأوامر والضغط على زرّ الإدخال Enter لتنفيذها، يشمل ذلك التعديل على الملفات، تركيب الحزم، وإدارة المستخدمين. الطرفية ببساطة هي تلك النافذة السوداء التفاعلية، حيث نكتب الأوامر لتنفيذها، بينما تعيد هي الخرج لنا طباعةً على الشاشة نفسها. التعامل مع المجلدات ضمن الطرفيةيُؤسّس نظام الملفات في لينكس على شكل شجرة من الأدّلة، بحيث يمكنك إنشاء المجلدات داخل بعضها البعض، وإنشاء الملفات في أيٍ مجلدٍ منها. لمعرفة ما هو الدليل الذي تقف عنده حاليًا، نفّذ الأمر: pwdيمثّل الأمر السابق اختصارًا لعبارة "print working directory" أو "اطبع مجلد العمل الحالي"، وسوف يعيد لنا على الشاشة مسار المجلد النشط حاليًا، وهو غالبًا ما سيكون شيء مشابه لما يلي: /home/foo/ وهذا يعني بأن المجلّد النشط حاليًا هو "foo" والموجود داخل المجلد "home" والمضمّن بدوره داخل الدليل الجذر "/"، يُقصد بالمجلّد النشط ذاك الذي ستنفّذ عنده الأوامر المُدخلة، لتوضيح هذه الفكرة سنطبّق الأمر "ls" والذي يعرض الملفات والمجلدات الموجودة في الدليل النشط: ls يعرض خرج الأمر السابق أسماء الملفات والمجلدات الموجودة ضمن الدليل "foo"، ولتغيير المجلد النشط نستخدم الأمر cd، وهو اختصار لعبارة "change directory" أو غيّر الدليل/المجلد: cd <name of directory>للدخول إلى مجلد مضّمن بالدليل النشط يُكتفى بكتابة اسمه مباشرةً، بينما للانتقال إلى دليل آخر خارج "foo" فيجب كتابة مساره كاملًا، تحقّق دومًا من المسار النشط بالأمر pwd. إضافةً لذلك يمكن استخدام اللاحقة .. للانتقال مجلد واحد إلى الأعلى ضمن المسار نفسه: cd .. لإنشاء مجلد جديد نستخدم الأمر mkdir (لا تنس أن الأمر سينفذ ضمن المجلد النشط حاليًا وسيُنشأ المجلد هناك): mkdir bar يتيح لنا الأمر rm حذف المجلدات والملفات التي لم نعد بحاجة إليها، وعن طريق إضافة اللاحقة -d سينفذ الأمر فقط في حال كان المجلد فارغًا: rm -d barبينما نستخدم اللاحقة R- تعني Recursive أي تكرارية وهي لحذف المجلد ومحتوياته. التعامل مع الملفات ضمن الطرفيةلاستعراض محتويات ملف ما نستخدم الأمر cat؛ لنقل أنه لدينا الملف baz ضمن الدليل الحالي، يَطبع الأمر التالي محتويات هذا الملف على شاشة الطرفية: cat bazمع الملفات الطويلة لن يكون الأمر السابق مجديًا، حيث سَيَعرض لنا الصفحة الأخيرة فقط من الملف على شاشة الطرفية، وسنحتاج إلى الصعود يدويًا للوصول إلى الصفحة الأولى ومن ثم تقليب الصفحات نزولًا! للتعامل مع مثل هذه الملفات نستخدم الأمر less والذي يعرض الصفحة الأولى من الملف، ومن خلال الضغط على زر المسافة Space يمكننا تقليب الصفحات وصولًا إلى نهاية الملف: less bazيمكننا أيضا استخدام زر السهم السفلي للنزول سطر واحد إلى الأسفل، والضغط على زر "q" لإنهاء العرض. لإنشاء ملفات جديدة سوف نستخدم الأداة touch: touch foobarيُنشئ الأمر السابق ملفًا فارغًا باسم foobar داخل الدليل النشط لديك. إذا لم يعجبك الاسم السابق فيمكنك استخدام الأمر mv لإعادة تسميته: mv foobar fizzbuzz الأمر mv هو اختصار للكلمة move أو "حرّك"، ويمكن استخدامه لنقل ملف أو مجلد من مكانٍ لآخر، أو لإعادة التسمية مع النقل: mv foobar Docs/fizzbuzz ينقل الأمر السابق الملف foobar إلى المجلد Docs الموجود ضمن الدليل الحالي، ويُعيد تسميته إلى fizzbuzz. كما يمكننا استخدام الأمر cp لنسخ الملف foobar إلى الدليل المطلوب باسم جديد، بحيث يبقى الملف الأصليّ دون تعديل: cp foobar Docs/fizzbuzz الأمر cp هو اختصار للكلمة "copy" أو "انسخ"، ويمكننا استخدامها بالشكل التالي أيضًا: cp foobar fizzbuzz وهكذا نحصل على نسختين من الملف باسمين مختلفين ضمن المجلد نفسه. لكن ما هي قيمة ملف فارغ؟ للتعديل على ملف ضمن الطرفية نحتاج إلى محرّر نصيّ، ولدينا بالتأكيد العديد من الخيارات، مثل محرري vim و emacs الشهيرين، أو محرر nano الأكثر بساطة وشبيهه pico. للمبتدئين فإن المحرر nano هو خيار ممتاز، نظرًا لسهولة التعامل معه وبساطة تعلمه، دون الحاجة إلى كتب أو دورات تعليمية! ببساطة؛ للتعديل على الملف foobar نستخدم الأمر: nano foobar والذي سينقلنا إلى واجهة المحرّر البسيطة ومساحة فارغة للكتابة، بعد الانتهاء من الكتابة ولحفظ العمل نضغط على Ctrl-X ، حيث يسألنا المحرر عن رغبتنا بحفظ التعديلات، نضغط y للموافقة ثم Enter لنعود مجددًا إلى الطرفية. ملفنا الآن يضم بعض النصوص التي أدخلناها للتوّ، ويمكن التحقق من ذلك بعرض محتوياته باستخدام إحدى الأداتين cat أو less. أخيرًا، يمكنك حذف الملف بواسطة الأمر rm: rm fizzbuzz وخلافًا للمجلدات، تُحذف الملفات بغض النظر عن وجود محتوى ضمنها من عدمه. التسلسل الهرمي القياسي لنظام الملفاتتتوافق جميع توزيعات لينكس تقريبًا مع ما يسمى بالتسلسل الهرمي القياسي لنظام الملفات أو FHS، والذي يحدّد الأدلة الرئيسية؛ أغراضها ومحتوياتها في نظام التشغيل. ووفق هذا النظام يشار بالرمز "/" إلى المجلد الأساسي أو جذر النظام، والذي تتفرع منه جميع الملفات والأدلة الأخرى. الدليل "/home/" يحتوى على المجلدات الخاصة بمستخدمي النظام، والتي تضم ملفاتهم وإعدادات برامجهم، فمثلًا يمكنك مشاهدة مجلد يحمل اسم مستخدمك الحالي ضمنه، أما المستخدم الجذر فله دليل آخر وهو "/root/". بشكل عام غالبًا ما يمكنك الاعتماد على بديهتك في فهم أغراض الأدلة الرئيسيّة، فحالما تجد الدليل boot ستتوقع أنه مخصّص لملفات الإقلاع، والدليل dev متعلّق بالأجهزة، وهكذا.. ندعوك لمراجعة مقالة كيف تفهم هيكلية نظام الملفات في لنكس على أكاديمية حسوب. الأذوناتيُعتبر لينكس نظام متعدّد المستخدمين بشكل حقيقي، إذ يتيح إمكانية تحديد أيّ الملفات يمكن للآخرين مشاهدتها أو التعديل عليها وأيّها تُحفظ بحيث يتمكن مالكها فقط من التعامل معها. تُسمّى القواعد التي تُنظّم وتدير هذه الإمكانية بالأذونات أو الصلاحيات Permissions. وعلى غرار يونكس، يقسّم لينكس المستخدمين إلى ثلاث فئات؛ المالك، المجموعة المالكة، والآخرين، كما يقسّم الصلاحيات إلى ثلاثة أنواع؛ القراءة، الكتابة، والتنفيذ. للمزيد حول موضوع الأذونات يمكنكم قراءة مقالنا السابق عنها من هنا. تعلّم ذاتيًالم نقدّم في درسنا هذا سوى بعض المفردات الأساسيّة في التعامل مع بيئة أنظمة لينكس، إلا أنك بالتأكيد تحتاج إلى ما هو أبعد من ذلك لتممكن من فهم واستخدام لينكس بشكل مثالي. يمكنك قراءة المزيد حول كيفيّة إنجاز مختلف المهام في لينكس ضمن الأكاديميّة هنا، كما يمكنك استخدام محركات البحث لاستطلاع المزيد وإيجاد حلول لمشكلاتك، تذكّر أنّ السؤال الذي يدور ببالك قد سأله آخرون من قبل وتمّت إجابتهم بشكل شافٍ، لذا ابحث أولًا ودومًا عن كل ما يعترض طريقك، كُن فضوليًا حيال ذلك. يأتي لينكس أيضًا مع مجموعة ضخمة من الدلائل التعليميّة المتعلّقة بكافة الأوامر التي يمكن استخدامها ضمن الطرفية، للقراءة حول أي أمر استخدم التعليمة التالية: man <command> فعلى سبيل المثال للقراءة حول الأمر rm نكتب: man rm حيث يعرض لنا دليل مفصّل يشمل الغرض من الأمر، الخيارات المتاحة له، أمثلة عن الاستخدام، والمزيد من المعلومات القيّمة. البحث عن المعلومات مهارة أساسية في عصرنا اليوم، وهي ستخدمك كثيرًا بتعزيز مهاراتك وإمكانياتك المهنيّة في التعامل مع نظام التشغيل لينكس، طالما تحلّيت بالصبر والفضول.
  3. إذا كنت جديدا على أنظمة تشغيل لينكس ويونكس، فإن الطرق الأساسية للتفاعل والتنقل داخل نظام التشغيل الخاص بك يمكن أن تبدو معقدة ومربكة، في نفس النطاق يجب على المستخدمين الجدد أن يكافحوا لمعرفة كيفية استيساغ الطريقة التي تم بها هيكلة نظام الملفات. في هذه المقالة، سوف نناقش مختلف أجزاء نظام ملفات لينكس القياسي، سوف نستعرض بعض المجلدات (directories) الأكثر إثارة للاهتمام، ونبحث عن المكونات المختلفة في بيئة الخادم الخاص بك. لغرض الشرح والتوضيح، سوف نستخدم توزيعة Ubuntu، لأن توزيعات لينكس الأخرى تقوم بتنفيذ الأشياء بطرق مختلفة قليلا، وإذا لاحظت تعارض مع النظام الخاص بك، راجع توثيق التوزيعة الخاصة بك. بعض الملاحظات المختصرة عن تاريخ هيكلية نظام الملفات في لينكسيرث لينكس الكثير من المفاهيم لتنظيم الملفات من أسلافه من أنظمة Unix، الذي يعود إلى عام 1979، وقد وضع يونكس معاييرًا للتحكم في كيفية تنظيم ملفات المستخدمين. معيار هيكلية نظام الملفات FHS هو معيار توجيهي تحتفظ به مؤسسة لينكس ويحدد هيكلية الملفات التي يجدر بمختلف توزيعات لينكس أن تتبعها، وذلك لتسهيل الإدارة والحفاظ على طريقة توزيع/تثبيت موحّدة وآمنة للتطبيقات على مختلف التوزيعات. شيء واحد يجب ذكره عند التعامل مع هذه الأنظمة، هو أن كل شيء في لينكس هو ملف، فالملف النصي (Text file) ملف، والمجلد ملف أيضا (عبارة عن مجرد قائمة من الملفات الأخرى)، والطابعة تُمَثَّل في النظام عن طريق ملف (يمكن لبرنامج تشغيل الطابعة أن يرسل أي شيء مكتوب إلى ملف الطابعة ثم إلى الطابعة الفعلية)، وهكذا... في هذه المقالة، لن نذكر كافة التفاصيل والمواصفات بالضبط، لأن التوزيعات تبتعد عن المستوى القياسي غالباً، لذلك سوف نستخدم توزيعة Ubuntu لإيجاد بنية المجلد الفعلية، حيث أنها التوزيعة الأسهل والأكثر انتشارًا بين مستخدمي لينكس المتوسطين. لمحة بسيطةقبل الخوض في هيكلية نظام الملفات، تحتاج إلى معرفة بعض الأساسيات حول كيفية التعامل مع نظام الملفات والأوامر، ونحن سوف نغطي الحد الأدنى هنا لتستطيع البدء لوحدك. ملاحظة: وجود علامة $ يعني أن هذا أمر يمكنك كتابته على سطر الأوامر، وما يتبعه من الأسطر الخالية من علامة $ هو ناتج الأمر السابق. توجيه نفسكأول شيء عليك القيام به هو معرفة التعامل مع نظام الملفات، هناك عدد قليل من الطرق للقيام بذلك، ومن أبسط الطرق هي طباعة مجلد العمل: $ pwd /rootهذا ببساطة يعود لمكان كتابة الأمر نفسه، أي المجلد الذي أنت به، سوف نتعلم كيفية تفسير النتائج لاحقا. انظر حولكلمعرفة ما هي الملفات الموجودة في المجلد الحالي، يمكنك تطبيق الأمر ls، ,وهو اختصار قائمة "List": $ ls bin etc lib mnt root selinux tmp vmlinuz boot home lost+found opt run srv usr dev initrd.img media proc sbin sys varهذا الأمر يوضّح كل الامتدادات والملفات في المجلد الحالي. الأمر ls يمكن أن يأخد بعض الخيارات، وهذه الخيارات تُعدّل على سلوك الأمر الافتراضي إما لعملية أخرى أو عرض البيانات بطريقة مختلفة. على سبيل المثال، إذا أردنا أن نفرق بسهولة بين الملفات والمجلدات، وذلك بإضافة "/" بعد مخرجات المجلد، يمكنك تمرير الخيار F-: $ ls –F bin/ home/ media/ root/ srv/ var/ boot/ initrd.img@ mnt/ run/ sys/ vmlinuz@ dev/ lib/ opt/ sbin/ tmp/ etc/ lost+found/ proc/ selinux/ usr/ومن أكثر الخيارات شيوعا هي l- وa-، فالأمر الأول يقوم بإخراج المعلومات الناتجة بشكل طويل ومفصل: $ ls –l total 76 drwxr-xr-x 2 root root 4096 Apr 26 2012 bin drwxr-xr-x 3 root root 4096 Apr 26 2012 boot drwxr-xr-x 13 root root 3900 Dec 4 18:03 dev drwxr-xr-x 78 root root 4096 Dec 4 19:29 etc drwxr-xr-x 3 root root 4096 Dec 4 19:28 home lrwxrwxrwx 1 root root 33 Apr 26 2012 initrd.img -> /boot/initrd.img-3.2.0-24-virtual drwxr-xr-x 16 root root 4096 Apr 26 2012 lib ...ينتج سطر واحد لكل ملف واحد أو مجلد (الاسم في أقصى اليمين). ويكون لديه الكثير من المعلومات التي لانهتم بها في الوقت الحالي، جزء واحد مهتمون به حاليا هو الذي يوضح لنا ما هو نوع الملف. هناك 3 أنواع ملفات (الأكثر شيوعا): ملف عادي.ملف مجلد (ملف من صيغة محددة يحتوي ملفات أخرى).ملف ارتباط حقيقي أو وهمي (hard link, soft link وكلاهما اختصار لملف آخر على النظام).أما الخيار a- يستعرض كل الملفات بما فيها الملفات المخفية، وفي لينكس، يتم إخفاء الملفات تلقائيا إذا بدأ الاسم بنقطة (.) dot: $ ls -a . .. bash_logout .bashrc .profileفي هذا المثال، كافة الملفات مخفية، أول مخرجين . و.. عبارة عن مجلدات خاصة. فالمجلد "." هو اختصار يعني "المجلد الحالي"، والمجلد".." أيضا اختصار يعني "المجلد الأب للمجلد الحالي"، سوف نتعلم لاحقا بعض الطرق للاستفادة منها. جولةالآن يمكنك معرفة أين أنت في نظام الملفات وترى ما يدور حولك، حان الوقت لمعرفة كيفية التعامل مع نظام الملفات. للتغيير إلى مجلد مختلف، استخدم الأمر cd، (اختصار Change Directory) والذي يقوم بتغيير المجلد: $ cd /binيمكنك التعامل مع الأمر بمسار كامل أو مسار نسبي. حيث: المسار الكامل (Full path): هو مسار الملف الذي يحدد مكان وجود المجلد من على قمة شجرة المجلد الجذر (سنشرح ذلك لاحقا)، تبدأ المسارات الكاملة بـ "/"، كما ترون أعلاه.المسار النسبي (Relative path): هو مسار الملف نسبةً إلى مجلد العمل الحالي، هذا يعني أنه بدلا من تحديد مكان من الجزء العلوي من المجلد، فإنه يمكن تحديد المكان بالنسبة لمجلد العمل المتواجد به أنت حاليا.على سبيل المثال، إذا كنت ترغب في الانتقال إلى مجلد ضمن المجلد الحالي يدعى documents، يمكنك استخدام هذا الأمر: $ cd documentsعدم وجود "/" من البداية تدفعك لاستخدام المجلد الحالي كأساس لتبحث عن مسار المجلد الهدف. للانتقال إلى المجلد الأصل من المجلد الحالي الخاص بك، يمكنك كتابة، حيث -كما تم الإشارة إليه مسبقا- فـ ".." تعني المجلد الأب للمجلد الحالي: $ cd ..نظرة عامة على هيكلية نظام الملفات في اللنكسأول شيء تحتاج إلى معرفته عند عرض نظام الملفات في لينكس هو أن نظام الملفات يحتوي على شجرة واحدة، بغض النظر عن عدد الأجهزة المرتبطة به. ما يعنيه هذا هو أن جميع المكونات لديك في نظام التشغيل ممثلة في مكان ما في نظام الملفات الرئيسي، اذا كنت تستخدم Windows كنظام أساسي لديك، هذا يختلف عن ما كنت تستخدمه، حيث في Windows كل قرص صلب أو مساحة التخزين والملفات لها تمثيل خاص في نظام الملفات، التي تكون مسماة بالأحرف كـ C مثلا، وهو كناية عن مستوى عالي من التسلسل الهرمي في نظام الملفات، الأقراص الإضافية أو مساحات تخزين تعطى أحرف تسمية أخرى. "/" في لينكس، تعني أنه كل ملف أو جهاز على النظام موجود تحت " الجذر" (root)، فهو يرمز لنقطة بداية شجرة الملفات. ملاحظة: هذا يختلف عن المستخدم الإداري الافتراضي، وهو ما يسمى أيضا "الجذر" (root). وهو يختلف أيضا من المجلد الرئيسي للمستخدم الإداري الافتراضي، والذي يقع في "root/". وبالتالي، إذا كنا نريد أن نذهب إلى المستوى الأعلى من المجلد داخل نظام التشغيل ونرى ما هناك، يمكن أن نكتب: $ cd / $ ls bin etc lib mnt root selinux tmp vmlinuz boot home lost+found opt run srv usr dev initrd.img media proc sbin sys varكل ملف، جهاز، مجلد، أو تطبيق فهو يقع تحت مجلد واحد، ويمكننا أن نرى بداية بنية المجلد، سنذهب إلى المزيد من التفاصيل أدناه: bin/يحتوي هذا المجلد على الأوامر والبرامج الأساسية اللازمة لتحقيق بيئة عمل الحد الأدنى، يتم الاحتفاظ بها منفصلة عن بعض البرامج الأخرى على النظام للسماح لك لتشغيل النظام للصيانة حتى لو أجزاء أخرى من نظام الملفات قد تكون معطوبا أو غير متوفر. إذا كنت تبحث في هذا المجلد، وسوف تجد أن كل LS, pwd الموجودة هنا ، والأمر cd مبنى بداخل الشل (shell) التي نستخدم باش (bash)، كما أنها موجودة في هذا المجلد. boot/هذا المجلد يحتوي على الملفات الفعلية، والصور، والنواة(Kernel) اللازمة لتشغيل النظام، وعلى العناصر الأساسية التي تسمح فعليا للنظام بالإقلاع، في حين /bin يحتوي على الأساسيات. إذا كنت بحاجة إلى تعديل ملف الإقلاع في النظام الخاص بك، أو إذا كنت ترغب في رؤية الملفات النواة (Kernel) و(ramdisk)، يمكنك العثور عليها هنا، يجب أن يصل هذا المجلد إلى النظام في وقت مبكر جداً. dev/يشمل المجلد الملفات التي تمثل أجهزة القرص الصلب والأجهزة الطرفية وأجهزة الإدخال والاخراج المتوفرة في النظام، وبالاعتماد على كل جهاز تستطيع تشغيل الأجهزة بطرق مختلفة. على سبيل المثال، الجهاز الذي يمثل القرص الصلب /dev/sda تستطيع أن ترفعه من الملف الى مركز النظام وبالمقابل لوكان لديك ملف يمثل رابط الطابعة /dev/lpr فبإمكانك كتابته مباشرة ليرسل المعلومات الى الطابعة. etc/تعتبر احدى مناطق نظام الملفات التي تستهلك الكثير من الوقت والعمل اذا استخدمتها كمدير للنظام. هذا المجلد معد خصيصا لنظام الخدمات المتعددة واسعة المجال، اذا كان المجلد يتكون من عدة ملفات فرعية فهو يحتوي عدة ملفات معدة لأكثر الانشطة على النظام، بغض النظر عن وظيفة تلك الأنشطة. في حال الحاجة إلى الملفات متعددة الإعدادات فانه يتم انشاء التطبيق الفرعي الخاص لجلب هذه الملفات ،اذا حاولت أن تعد جهاز أو برنامج للنظام المدخل فان /etc هي المكان الانسب لذلك. home/يحتوي هذا المجلد على جميع المجلدات الرئيسية لكافة مستخدمي النظام ( باستثناء المستخدم الجذر)، اذا أنشأت مستخدمين جدد فسيقوم المجلد بمقارنتها مع الاسماء الموجودة لديه سابقا حتى لا يحدث تعارض في أسماء المستخدمين. في داخل كل مجلد رئيسي يرتبط كل مستخدم بالصلاحية المخصصة له، فالمستخدم العادي له صلاحية على المجلد الرئيسي الذي يمتلكه مما يعمل على حفظ نظام الملفات خالية من التغييرات التي قد يقوم بها أشخاص غير مخولين. غالبا ما يوجد مجلدات ملفات مخفية داخل المجلد الرئيسي (ممثلة بنقطة البداية)، والتي تسمح للمستخدم بالقيام بإعدادات خاصة للقوائم تستطيع غالبا انشاء نظام فرضيات في مجلد /etc يمكن أن يتجاوزها المستخدم في مجلده الرئيسي للضرورة. lib/يستخدم هذا المجلد لجميع المكتبات نظام المشتركة التي تطلب من المجلداتbin /،sbin/ ، هذه الملفات تزود البرامج بالوظائف الأساسية داخل النظام، وهي إحدى المجلدات التي لن تستطيع الوصول اليها أحيانا. lost+found/المجلد الخاص الذي يحتوي على الملفات المسترجعة /fsck، إذا كان نظام الملفات معطوب أو يتم استرجاعه حاليا، فإن نظام الملفات في اللنكس يقوم بإصلاح البرامج، وأحيانا يتم العثور على الملفات ولكن يتم فقدان الموقع الخاص بها، في هذه الحالة، سيقوم النظام بوضعها في هذا المجلد. في معظم الحالات، يبقى هذا المجلد فارغ، وإذا وجدت ملفات معطوبة أو أي مشاكل أخرى مشابهة، تقوم بإجراء عملية الاسترجاع ، ويجب عليك التحقق من الموقع عند الانتهاء من عملية الاسترجاع. media/هذا المجلد يكون فارغ في عملية الإقلاع، والغرض الحقيقي ببساطة هو تزويد موقع لتحميل الوسائط القابلة للإزالة مثل الأقراص المدمجة(CDs). في بيئة الخادم، وغالبا لن يتم استخدامها في بيئة الخوادم، ولكن إذا كان نظام التشغيل لنكس الخاص بك يقبل تحميل وسائط قابلة للإزالة وانت لست متأكد منها، يمكنك اللجوء لهذه الطريقة الآمنة. mnt/هذا المجلد يشبه المجلد السابق، وعادة ما يستخدم هذا المجلد لتحميل نظام الملفات مثل الأقراص الصلبة الخارجية، الخ. وكثيرا ما يستخدم هذا المجلد في بيئة VPS لتركيب محركات أقراص الشبكة، إذا كان لديك نظام ملفات على خادم بعيد وترغب في تركيب نظام شبكة عليه فمن الجيد استخدام هذا المجلد لعمل ذلك. opt/استخدام هذا المجلد هو غامض إلى حد ما، ويتم استخدامه من قبل بعض التوزيعات وبعضها تتجاهله، وعادة يتم استخدامه لتخزين حزم اختيارية، وتعني في اللنكس الحزم والتطبيقات التي لم يتم تثبيتها من المستودعات. على سبيل المثال، إذا كان التوزيع يوفر عادة حزم من خلال مدير الحزم، ولكن قمت بتثبيت برنامج X من المصدر، فإن هذا المجلد سيكون موقعا جيدا لهذا البرنامج، هناك خيار أكثر شيوعا لبرامج من هذا النوع موجود في المجلد المحلي /usr/local. proc/هو أكثر من مجرد مجلد منتظم، يشبه نظام الملفات التي تكون موجودة في المجلد، لا يحتوي ملفات حقيقية، ولكنه يستبدل بشكل تلقائي ليعكس الحالة الداخلية للنواة (Kernel) في اللنكس. هذا يعني أننا نقوم بالتحقق وتعديل معلومات مختلفة من نواة اللنكس نفسها (Kernel)، على سبيل المثال، يمكنك الحصول على معلومات مفصلة حول استخدام الذاكرة عن طريق كتابة cat /proc/meminfo. root/هو المجلد الرئيسي للمستخدم المدير (ويسمى "الجذر"). وهو يعمل تماما مثل المجلدات الرئيسية العادية. run/هذا المجلد هو نظام التشغيل لكتابة معلومات مؤقتة أثناء التشغيل خلال المراحل الأولى من عملية الإقلاع، بشكل عام، ويجب أن لا تقلق كثيراً بشأن المعلومات الواردة في هذا المجلد. sbin/هذا المجلد هو اشبه ما يكون للمجلد /bin لأنه يحتوي على البرامج التي تعتبر أساسية لنظام التشغيل، وهو عادة يحتوي على الأوامر المتوفرة لمسؤول النظام، بينما مجلد آخر يحتوي على برامج لجميع المستخدمين للنظام. selinux/هذا المجلد يحتوي على المعلومات التي لها علاقة بأمن نظام التشغيل، وهو وحدة النواة(Kernel) التي يتم استخدامها لتوفير التحكم في الوصول إلى نظام التشغيل. srv/يحتوي هذا المجلد على بيانات عن الخدمات المقدمة من قبل الكمبيوتر، في معظم الحالات، لا يتم استخدام هذا المجلد كثيرا لأن وظائفه يمكن تنفيذها في أي مكان آخر في نظام الملفات. tmp/هذا هو المجلد الذي يستخدم لتخزين الملفات المؤقتة على النظام، هو قابل للكتابة من قبل أي شخص على الكمبيوتر و لا وتبقى فعالة حتى إعادة التشغيل، وهذا يعني أن أي الملفات التي تحتاج فقط للقليل من العمل يمكن وضعها هنا، سيتم حذفها تلقائيا بمجرد إيقاف تشغيل النظام. usr/هذا المجلد هو واحد من أكبر المجلدات على النظام، وتشمل في الأساس مجموعة من المجلدات التي تبدو مشابهة لتلك الموجودة في مجلد الجذر مثل //usr,/bin ,/usr/,lib تستخدم هذا الموقع أساسا لتخزين كافة البرامج غير الضرورية والتوثيق والمكتبات، وغيرها من البيانات الخاصة بهم غير المطلوب من أجل استخدام الحد الأدنى من النظام. هذا هو المكان الذي سيتم تخزين معظم الملفات على النظام، بعض المجلدات الفرعية الهامة هي /usr/local، وهو يعتبر بديل إلى المجلد /opt لتخزين البرامج المترجمة محليا، شيئ آخر مثير للاهتمام هو التحقق من /usr/share directory، والذي يحتوي على وثائق وملفات وملفات الاعدادت، وملفات أخرى مفيدة. var/يفترض في هذا المجلد احتواء البيانات المتغيرة، في الممارسة العملية، وهذا يعني أنه يستخدم لتخزين معلومات أو مجلدات والتي من المتوقع أن تنمو مع استخدام النظام. على سبيل المثال، توجد سجلات النظام والنسخ الاحتياطي، وهناك استخدام شائع لهذا المجلد هو تخزين محتوى الويب إذا كنت تعمل على خادم للويب. الخاتمةعلى الرغم من أن التفاصيل التي تخزن فيها الأشياء تختلف من توزيعة إلى أخرى إلا أن المواقع التي تمت مناقشتها سترشدك إلى الاتجاه الصحيح. وإن من افضل الطرق لاكتشاف نظام الملفات هي طريقة اجتياز الاتجاهات المتعددة من أجل محاولة معرفة وظيفة ما بداخل الملفات . سيكون بإمكانك ربط المجلدات المختلفة بوظائف مختلفة وتستطيع أن تقرر أين ستذهب لإنجاز مهمة معينة. اذا كنت تريد مرجعاً سريعاً يخبرك بوظيفة كل مجلد فيمكنك استخدام المجلد الداخلي اليدوي للصفحات وذلك بكتابة الأمر التالي : man hierهذا سيعطيك فكرة عامة عن نظام الملفات النموذجية والوظائف المتعلقة بكل موقع. ترجمة -وبتصرّف- للمقال: How To Understand the Filesystem Layout in a Linux VPS.