المحتوى عن 'مجلدات'.



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

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

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

نوع المُحتوى


التصنيفات

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

التصنيفات

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

التصنيفات

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

التصنيفات

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

التصنيفات

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

التصنيفات

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

التصنيفات

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

التصنيفات

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

أسئلة وأجوبة

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

التصنيفات

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

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

  1. تحدد صلاحيّات الملفّات من يستطيع قراءة، إنشاء، تحرير ملف و/أو فتحه، وهذه العملية مهمّة في ووردبريس، لأنها قد تحتاج إلى إمكانية إنشاء ملفات جديدة في مجلد wp-content الّلازمة لعمل بعض الوظائف. إن عدم امتلاك ملفات الموقع للصلاحيات الضرورية والكافية يفتح المجال للآخرين للتطفّل على ملفّات موقعك، وقد لا يحميك تعيين الصلاحيات بشكل صحيح من جميع الهجمات الإلكترونية، لكنه سيساعدك في جعل موقعك أكثر أمانًا، حيث سيكون إجراءً أمنيًّا آخر يضاف إلى إجراءاتك الأمنية الحالية. يحتوي توثيق ووردبريس على بعض المعلومات حول صلاحيات الملفات الضرورية لـ ووردبريس، لكن قد يكون من الصعب متابعته لأنّه لا يشرح التفاصيل، لذا يهدف المقال إلى شرح تفاصيل صلاحيات الملفات والمجلّدات وكيفية تغييرها بغرض رفع أمان الموقع. كيف تبدو صلاحيات الملفات؟ توجد فئتان يجب أخذهما بعين الاعتبار عند التحدّث عن صلاحيات الملفّات: العمليّات ومستخدمو العمليّات. العمليّات وهي العمليات التي من الممكن تنفيذها على الملفّات: القراءة Read: تسمح بقراءة محتوى ملف فقط، ويتم تمثيلها بالحرف r كما سنرى لاحقًا. الكتابة Write: تسمح بإنشاء ملف جديد و/أو تعديل محتوى ملف موجود مسبقًا، ويتم تمثيلها بالحرف w. التنفيذ Execute: تعطي إمكانية تنفيذ الملف بغرض تشغيله كبرنامج أو سكربت، ويتم تمثيلها بالحرف x. ملاحظة: يجب الانتباه إلى عدم الخلط ما بين عمليّتي القراءة والتنفيذ، فالأولى تسمح بقراءة محتوى ملف (سواء كان ملف نصّي، أو صورة، أو برنامج حتّى) ولكنّها لازمة وغير كافية لتنفيذ محتوى الملف إن كان برنامجًا، فحينها يجب أن يمتلك ملف البرنامج إمكانيّتي القراءة والتنفيذ كي يكون بالإمكان تشغيله كبرنامج. أما مستخدمو العمليات فهم: المستخدم User: وهو مالك الملف owner، المجموعة Group: ويمكن أن تضم مستخدمين آخرين لهم صلاحية الوصول إلى الملفات التي تختارها والتي لهذه المجموعة صلاحية الوصول إليها; الطرف الثالث World: أي مستخدم آخر عدا ما ذُكر. ويمكن تمثيل صلاحيات الملفّات كمجموعات متتالية من الأرقام على الشكل rwxrwxrwx-: الرقم الأول rwx: صلاحيات الوصول الخاصة بمالك الملف user (أو owner). الرقم الثاني rwx: صلاحيات الوصول الخاصة بالمجموعة group. الرقم الثالث rwx: صلاحيات الوصول الخاصة بالطرف الثالث world. وللحصول على قيمة الرقم الخاص بِكلّ مجموعة سنقوم اعتمادًا على النظام الثنائيّ binary باستنباط الجدول التالي: نظام rwx الثُنائي binary القيمة بالنظام العُشري decimal إمكانيّة Read/Write/Execute 000 0 001 1 تنفيذ فقط 010 2 كتابة فقط 011 3 كتابة + تنفيذ 100 4 قراءة فقط 101 5 قراءة + تنفيذ 110 6 قراءة + كتابة 111 7 قراءة + كتابة + تنفيذ فاستنادًا للجدول السابق فإن أعلى صلاحية rwxrwxrwx- يمكن منحها بالنظام العُشريّ هي 777 حيث يكون لكلٍّ من المالك، المجموعة والطرف الثالث جميعهم، إمكانية القراءة والكتابة والتنفيذ، وبنفس الشكل يمكن القول بأنّ أقلّ صلاحية rwxrwxrwx- يمكن منحها (إلى جانب عدم وجود أيّ صلاحية على الإطلاق) هي 444، حيث يملك الجميع إمكانية القراءة فقط. لا تخف فهناك طريقة سهلة لتذكر الصلاحيات، فعلى سبيل المثال لو أردنا إعطاء مالك الملف كامل الصلاحيات والحدّ من صلاحيات باقي المستخدمين، فنقوم بما يلي: المستخدم User – سيملك إمكانية القراءة (4)، الكتابة (2) والتنفيذ (1)، فتكون قيمة الصلاحية النهائية (1+2+4=7) المجموعة Group – ستملك إمكانية القراءة (4) والكتابة (2)، فتكون قيمة الصلاحية النهائية (4+2=6) الطرف الثالث World – سيملك إمكانية القراءة فقط (4). إذًا، تصبح صلاحية الملف النهائيّة 764 أو rwxrw-r-- في هذا المثال، ولكنّ هذه الصلاحية غير مثاليّة لملفات مدوّنات ووردبريس، فقد تلاحظ بأن صلاحيات الملفّات تبدو مختلفة قليلًا عند التحقق منها عبر SSH أو FTP، كما في الصورة: تذكّر بأن الـ - (hyphen) في صيغة صلاحيّات الملفّات تمثّل غياب إمكانية ما، عدا أوّل - إلى أقصى اليسار والتي تبيّن فيما إذا كانت الصلاحية لملف أو مجلّد، فإن كانت لمجلّد حلّ محلّها الحرف d، الحرف الأول من كلمة directory. تجدر الإشارة إلى أنّ المحرف الأول إلى اليسار قد يملك قيمًا مختلفة عن الحرف d ولكن يندر أن تصادف هذا في ووردبريس. وكما ذكرنا سابقًا فإنّ كلّ مجموعة تمثّل الإمكانيات المسموحة لكل مجموعة مستخدمين، فإن أخذنا الصلاحية التالية rwxr-xr-x- فإنّ الـ - في أقصى اليسار تخبرنا بأنّ هذه صلاحية ملف، أما الـ rwx التي تليها فتخبرنا بأنّ المستخدم مالك الملف يملك إمكانية القراءة والكتابة والتنفيذ، بينما تملك مجموعة المستخدمين المالكة للملف إمكانية القراءة والتنفيذ، وأخيرًا يكون لباقي المستخدمين إمكانية القراءة والتنفيذ أيضًا، فإن قُمنا بتحويل نمط الصلاحية هذا إلى الشكل الرقمي لحصلنا على القيمة 755. من الجدير بالذكر بعد هذا الشرح المطوّل بأنّ الصلاحية 777 تعطي جميع المستخدمين كامل الصلاحيات وهذا غير مناسب أمنيًّا ويجب عدم استخدامه لمواقع ووردبريس على الأقل، وفي الوقت ذاته فإنّ الصلاحية 444 لن تكفي ليعمل موقع يستخدم ووردبريس. ما الصلاحيات اللازمة لمواقع ووردبريس؟ إن قمت بتنصيب ووردبريس بنفسك فإنّ الصلاحيات ستكون معدّة بشكل صحيح غالبًا، ولكن إن كنت تحصل على رسائل خطأ بصلاحيات الوصول أو كان موقعك معدًّا من قبل شخص آخر، فإنّ الوقت مناسب لمراجعة صلاحيات الملفّات. تختلف الصلاحيات المطلوبة باختلاف الإضافات plugins التي قد تستخدمها في موقعك والتي تتبع لطبيعة عمل الـ plugin، وستعتمد صلاحية الملفات والمجلّدات على إعدادات استضافتك، فإن كنت تستخدم خادومًا خاصًا بك بالكامل (dedicated server) فإنّ بالإمكان استخدام الصلاحيات التالية بشكل آمن تبعًا لما يذكره توثيق ووردبريس: للمجلّدات – 755 للملفّات – 644 أمّا الملفّات الأكثر خصوصية كملف الإعدادات الخاصة بـ ووردبريس والذي يتضمن معلومات حسّاسة wp-config.php، فيمكن استخدام الصلاحية 600 معه، ويستثنى من ذلك ملف htaccess. والذي يحتاج موقع ووردبريس للوصول إليه ليتم تحديث محتواه بشكل اوتوماتيكي، فينصح باستخدام الصلاحية 644 معه أو الصلاحية الأكثر أمنًا 604 في معظم الحالات. كيف يمكن التحكم بصلاحيات الملفات؟ يمكن إيجاد صلاحيات الملفات المذكورة على أنظمة لينكس/يونكس فقط، فإن فرضنا أنّ الاستضافة مزوّدة بلوحة تحكّم cPanel فعندها للوصول إلى صلاحيات الملفات نتوجّه بعد تسجيل الدخول إلى: Files > File Manager وعند ظهور نافذة اختيار المجلّد الرئيسي، نضغط زر Go أسفل النافذة. بعد ظهور صفحة إدارة الملفات، نختار أيّ ملف ثم نضغط على أيقونة Change Permissions في أعلى الصفحة. ستظهر الآن نافذة منبثقة تحوي على صلاحيات الملف أو المجلّد الذي قمنا باختياره، والتي يمكن من خلالها التعديل عليها: إضافة لما سبق فإنّ بالإمكان التعديل على الصلاحيات عبر برنامج إدارة الملفّات باستخدام FTP، فمثلًا باستخدام FileZilla بعد إتمام الاتصال، يمكن الوصول إلى صلاحيات الملف بالضغط بالزر الأيمن على الملف أو المجلّد المطلوب واختيار File permissions: حيث ستظهر نافذة يمكن خلالها التعديل على الصلاحيات كالمعتاد أيضًا: وأخيرًا يمكن التعديل أيضًا على الصلاحيات عبر سطر الأوامر من خلال SSH بعد تسجيل الدخول، باستخدام الأمر التالي: للمجلّدات find /path/to/your/wordpress/install/ -type d -exec chmod 755 {} \; للملفّات find /path/to/your/wordpress/install/ -type f -exec chmod 644 {} \; سيقوم الأمر السابق بإعادة ضبط صلاحيات جميع المجلّدات في المسار المحدّد لتأخذ الصلاحية 755 وجميع الملفّات لتأخذ الصلاحية 644، وبالطبع لا تنس التأكّد من إدخال مسار تثبيت ووردبريس بشكل صحيح قبل التنفيذ. الخلاصة قمنا بتغطية الأساسيات الخاصّة بصلاحيات الملفات الّلازمة لعمل ووردبريس وكيفية تغييرها من خلال لوحة تحكم cPanel أو من خلال بروتوكوليّ FTP و SSH، لكن يبقى تحديث إصدار ووردبريس أمرًا ضروريًّا من الناحية الأمنيّة، فإنّ هذا يضمن بأنّ صلاحيات الملفات سيتم ضبطها بشكل تلقائيّ إلى الوضع الأمثل. إن كنت تفضّل استخدام الإضافات، فهناك 3 منها يمكنك تجربتها: Triagis® WordPress Security Evaluation SECURE BulletProof Security حيث تقوم هذه الإضافات بالتحقّق من صلاحيات الملفات وتخبرك إن كان هناك إعدادات غير مقبولة. هل احتجت من قبل لإصلاح صلاحيات الملفات لديك؟ شاركنا تجربتك عبر التعليقات في الأسفل. ترجمة -وبتصرّف- للمقال Understanding File Permissions and Using Them to Secure Your Site لصاحبته Jenni McKinnon.
  2. نكمل في هذا الدّرس، الثاني من سلسلة الدّروس التحضيريّة لـشهادة RHCSA، ما بدأناه في الدّرس الأول؛ بالتّركيز على أوامر إدارة الملفّات والمجلّدات في Red Hat Enterprise Linux. هذه المهارات مطلوبة للحصول على الشهادة، كما أنها من الأنشطة التي لا يكاد يخلو يوم عمل بالنسبة لمدير أنظمة لينكس منها. أغلب الشروحات الواردة هنا تصلُح على توزيعات لينكس الأخرى. إنشاء الملفات والمجلدات، حذفها، نسخها ونقلها يعدّ إنشاء الملفات أو حذفها من سطر الأوامر أول ما تجب عليك معرفته في إطار إدارة الملفات. نفس الشيء بالنّسبة للمجلّدات التي ما هي في النهاية سوى ملفّ بمواصفات خاصّة. إنشاء ملف: أمر touch يُستخدَم أمر touch لإنشاء ملف فارغ أو لتحديث بيانات الوصول والتّعديل على ملف موجود. ننشئ في المثال التالي ملفًّا باسم testfile، ثم نسرد معلومات الملفّ باستخدام الأمر ls -l. يظهر وقت إنشاء الملف Apr 27 20:41 وتاريخه. نضيف محتوى إلى الملف ثم نعيد سرد معلوماته ونلاحظ تغيّرات من ضمنها التاريخ Apr 27 20:43. $ touch testfile $ ls -l testfile -rw-rw-r--. 1 meyil meyil 0 Apr 27 20:41 testfile $ echo "Hsoub Academy" > testfile $ ls -l testfile -rw-rw-r--. 1 meyil meyil 14 Apr 27 20:43 testfile انتظر دقيقة تقريبا ثم نفذ أمر touch على الملفّ. سيظهر تغيّر في تاريخ التّعديل. يمكنك التأكّد من أن محتواه لم يتغير بتنفيذ أمر cat. $ touch testfile $ ls -l testfile -rw-rw-r--. 1 meyil meyil 14 Apr 27 20:44 testfile $ cat testfile Hsoub Academy يُنشأ الملف الناتج عن تنفيذ أمر touch في المجلّد الحالي؛ إذا أردت إنشاءه في مجلّد مغاير فيمكنك تمرير المسار إلى الأمر على النحو التالي: $ touch folder/filename يُنشئ الأمر ملفّا باسم filename ضمن المجلّد folder. تحديد نوع ملف: أمر file يمكنك استخدام أمر file لتحديد نوع الملفّ (ملفّ، مجلّد، قرص صلب، … إلخ). $ file testfile testfile: ASCII text حذف ملف: أمر rm يحذف أمر rm الملف المرَّر في المعطى: $ rm testfile يمكن أيضا تمرير مسار الملف كاملا إن لم يكن موجودا في مجلّد العمل: $ rm folder/testfile توجد خيّارات يمكن تمريرها للأمر rm؛ سنرى بضعةً منها بعد قليل. إنشاء مجلد: أمر mkdir يمكن إنشاء مجلّد ضمن مجلّد العمل بأمر mkdir على النحو التالي: $ mkdir directory استخدم خيار p- مع أمر mkdir إن أردت إنشاء مسار كامل: $ mkdir -p dirA/dirA1/dirA12/ ينتُج عن تنفيذ الأمر مع الخيار p- في المثال السابق إنشاءُ مجلّد باسم dirA وبداخله مجلّد فرعي dirA1 وبداخل هذا الأخير مجلد باسم dirA12. حذف مجلد: أمر rmdir أو rm إن كان المجلّد فارغا فيمكن حذفه بالأمر rmdir: $ rmdir directory أما إن لم يكن فارغا فستحتاج لحذف محتوياته أولا أو استخدام خيّار r- مع أمر rm الذي يحذف المجلّد وما حوى: $ rm -r dirA/dirA1/dirA12/ يوجد أيضا خيّار f- الذي يُستخدَم مع r- لتأكيد الحذف وعدم إظهار أية رسائل تطلُب التأكيد: $ rm -rf dirA ينبغي الحذر عموما عند استخدام أمر rm وبالأخص مع خيّارَيْ r- وf-؛ فالاستخدام غير الحذر ربّما يؤدّي لضياع البيانات والكثير من المشاكل. إعادة توجيه المدخلات والمخرجات يتيح سطر الأوامر إمكانية توجيه مُخرَج أمر، أي نتيجة تنفيذه، إلى أمر آخر عن طريق ما يُسمّى بالأنابيب Pipelines. تُصبح حصيلة الأمر الموجَّه (المُخرَج) معطى (مُدخَلا) للأمر الموجَّه إليه. توجد حيلة أخرى تُعرف بإعادة التوجيه Redirecting تتمثّل في حفظ نتيجة أمر في ملفّ، أو أخذ محتوى ملفّ وجعله مُدخلا للأمر. سنحتاج حتى نستوعب مفهوميْ الأنابيب وإعادة التوجيه إلى فهم تدفّقات الإدخال والإخراج Input and Output Streams. ملحوظة: التدفقات Streams هي سلسلة من المحارف تنتقل من مَصدر إلى وِجهة. المُدخَل Input هو البيانات التي يتلقّاها الأمر أما المُخرَج Output فهو البيانات التي تنتج عن تنفيذ الأمر. الإدخال المعياري Standard input, stdin: وهو المَصدر المبدئي الذي يتلقّى منه الأمر المُدخلات؛ أي لوحة المفاتيح. الإخراج المعياريّ Standard output, stdout: وهو الوجهة المبدئية التي يُرسل إليها الأمر مُخرجاته؛ أي سطر الأوامر (الشّاشة). الخطأ المعياريّ Standard erro, stderr: وهو الوجهة التي يُرسل إليها الأمر رسائل الخطأ في حال حدوثها؛ أي سطر الأوامر. نأخذ الأمر التالي مثالا: $ ls /var /hsoub ls: cannot access /hsoub: No such file or directory /var: account adm cache crash db empty games gopher kerberos lib local lock log mail nis opt preserve run spool tmp yp يطلُب الأمر السابق عرض محتويات المجلديْن var/ و hsoub/. يسير التدفّق من الإدخال المعياري (لوحة المفاتيح) إلى الإخراج المعياري (سطر الأوامر، الشّاشة)؛ أي أن الأمر ls يأخذ المُدخَل var/ من لوحة المفاتيح (الضّغط على زرّ Enter) ثم يرسل نتيجة التنفيذ (المُخرَج، أي لائحة بالمجلّدات والملفّات الموجودة في المجلّد var/) إلى الشاشة لعرضها. بالنّسبة لـ hsoub/ فالمجلّد غير موجود لذا تظهر رسالة خطأ بذلك؛ في هذه الحالة يسير التدفّق من الإدخال المعياري (لوحة المفاتيح) إلى الخطأ المعياري (سطر الأوامر، الشّاشة) الذي يعرض رسالة الخطأ. ربما تطرح السّؤال؛ ما علاقة التدفقات المعياريّة بالأنابيب وإعادة التوجيه؟ الجواب هو أننا أثناء إعادة التوجيه نجعل ملفّا مكان أحد التدفقات المعيارية. مثلا؛ بدل أن تظهر نتيجة الأمر على الشاشة (الإخراج المعياري، stdout) "نوجّهها" إلى ملف. أي أننا نقول للأمر "لا تستخدم الإخراج المعياري، استخدم ملفا مكانه" (ينطبق نفس المبدأ على التدفقات الأخرى). بالنسبة للأنابيب فنطلب من الأمر الأول إرسال مخرجاته ليس إلى الإخراج المعياري بل إلى أمر ثان؛ ونقول للأمر الثاني "خذ مدخلاتك ليس من الإدخال المعياري بل من الأمر الذي قبلك". أعد قراءة الجمل الأخيرة بتأنّ. توجد عوامل Operators للتّوجيه؛ وذلك على النّحو التالي: العامِل العمل < يعيد توجيه الإخراج المعياري (مُخرَج الأمر) إلى ملف. إن كان الملف موجودا فسيُبدَل محتواه وإن لم يكن موجودا فسيُنشَأ. << يعيد توجيه الإخراج المعياري ويلصقه في نهاية ملف. <2 يعيد توجيه الخطأ المعياري إلى ملف. إن كان الملف موجودا فسيُبدَل محتواه وإن لم يكن موجودا فسيُنشَأ. <<2 يعيد توجيه الخطأ المعياري ويلصقه في نهاية ملف <& يعيد توجيه كلّ من الإخراج والخطأ إلى ملف. إن كان الملف موجودا فسيُبدَل محتواه وإن لم يكن موجودا فسيُنشَأ. > يستخدم الملفّ المحدّد مكان الإدخال المعياري (معطى، مُدخَل). <> يُستخدَم الملف المحدّد مكان للإخراج والإدخال يُرمَز للأنبوب بـ | الذي يوضَع بين أمرين (أو أكثر) كما سنرى. إليك أمثلة على إعادة التوجيه واستخدام الأنابيب: إعادة توجيه مخرج أمر إلى ملف نفترض أنك تريد سرد جميع الملفات والمجلدات الموجودة في مجلّد ثم حفظ النتيجة في ملف. يمكن إنجاز هذه المهمّة بالأمر التالي: $ ls -1 /var/mail > mail.txt يسرُد الأمر ls -1 /var/mail محتويات المجلّد var/mail/؛ يطلُب الخيّار 1- من أمر ls طباعة ملف واحد في كل سطر. نستخدم عامل إعادة التوجيه < لنحيل التدفق من الإخراج المعياري (stdout) إلى الملف mail.txt. إعادة توجيه المخرج ورسائل الخطأ في نفس الوقت يوجد على الأنظمة الشبيهة بيونكس ملفّ خاص يسمّى ملفّ العدم (أو الثّقب الأسود). الملفّ موجود على المسار dev/null/ ويتميّز بكونه "يبتلع" كلّ ما يُكتَب فيه فلا يبقى له أثر في النظام. يُستخدَم هذا الملفّ عادة للتخلّص من تدفق مخرجات عمليّة على لينكس عبر توجيهها إليه. $ ls /var /hsoub ls: cannot access /hsoub: No such file or directory /var: account adm cache crash db empty games gopher kerberos lib local lock log mail nis opt preserve run spool tmp yp $ ls /var/hsoub &> /dev/null لاحظ أن تنفيذ الأمر الثاني لا تنتج عنه أية مخرجات ولا رسائل خطأ؛ على عكس الأول الذي يظهر رسالة خطأ بالنسبة للمجلّد غير الموجود ومحتوى المجلّد الآخر. استخدام ملف مدخلا لأمر يُستخدَم أمر cat لطباعة محتوى ملفّ يمرّر اسمه في معطيات الأمر على النحو التالي: $ cat file غير أنه يمكننا استخدام إعادة التوجيه مع الأمر cat؛ مثلا: $ cat < mail.txt جعل مخرج أمر مدخلا لآخر نفترض أنك تريد حساب عدد الملفات والمجلّدات الفرعيّة في المجلّد الحالي. أحد الحلول هو سرد محتويات المجلّد باستخدام الخيّار 1- مع ls ثم استخدام أنبوب | لتمرير هذا المُخرَج إلى أمر wc الذي يحسب عدد الأسطر إذا استُخدم معه الخيار l-؛ كالتالي: $ ls -1 | wc -l راجع مقال مقدمة إلى إعادة توجيه الإدخال/الإخراج (I/O) في لينكس للمزيد حول الموضوع. تجميع الملفات وضغطها يُستخدَم التجميع (أو الأرشفة) لجمع أكثر من ملفّ معا؛ مثلا لإرسالها عبر البريد أو لنقلها إلى وسيط تخزين آخر. تُطبَّق غالبا على الملفّات المجمّعة (الأرشيفات) خوارزميّات ضغط للتقليل من حجم الملفّ. الأمر الأشهر للتّجميع على لينكس هو tar. بالنّسبة للخوارزميّات فالثلاثة التالية هي الأكثر شيوعا على غنو/لينكس: gzip، bzip2 وxz. يعدّ gzip الأقدم من بينها والأقل كفاءة، bzip2 أحدث منه وأحسن؛ أما xz فهو الأحدث من بين الثلاثة والأكثر كفاءة. يشير امتداد الملفّات المضغوطة إلى الخوارزميّة المستخدمة gz. بالنسبة لـgzip، وbz2. بالنسبة لـbzip2 وxz. بالسبة لخوارزميّة xz. يجمع الأمر التالي الملفّين file1 و file2 في أرشيف باسم archive.tar: $ tar -cf archive.tar file1 file2 يُخبر الخيّار c- الأمر tar أننا بصدد إنشاء ملف مجمَّع؛ أما الخيّار f- فيحدّد اسم ملف التجميع؛ الذي يسبق اسمُه اسمَ الملفات التي نريد جمعها. ملحوظة 1: إن كنت تريد استخدام أكثر من خيار في نفس الوقت فيمكنك كتابتها ملتصقة مع وجود الشرطة - أمامها. تنطيق هذه الملاحظة على الخيارات المختصرة . ملحوظة 2: غالبا توجد أكثر من طريقة لكتابة الخيّار، واحدة مختصرة مثل c- وأخرى مسهبة مثل create--. تشير صفحة التوثيق إلى الاثنين. ملحوظة 3: ابدأ عند كتابة خيارات tar بتلك التي تحدّد الوضع (الإنشاء، الاستخراج، …إلخ) واجعل الخيار f هو الأخير. في مايلي بعض الخيارات المهمة المستعملة مع أمر tar لتجميع الملفات. ينبغي أولا تحديد ما نريده من الأمر tar؛ هل نريد إنشاء أرشيف أو استخراج ملفات من أرشيف أم شيئا آخر. تحدّد الخيارات التاليّة الأوضاع الأساسيّة التي يعمل عليها tar. الخيار العمل c إنشاء ملف تجميع A إضافة ملفات تجميع إلى ملف تجميع آخر r إضافة ملفّات (ليست ملفات تجميع) إلى ملفّ تجميع u وضع النسخ الأحدث من الملفاّت مكان النّسخ القديمة ضمن ملفّ التجميع d مقارنة ملفات ضمن الأرشيف بتلك بتلك الموجودة في مجلّد t سرد محتوى الأرشيف x استخراج ملفّات من الأرشيف ملحوظة: لا يمكن استخدام خيّاريْن من القائمة أعلاه في نفس الوقت. تأتي بعد تحديد وضع العمل خيّارات تكيّف عمل tar؛ ومن أهمها التاليّة. الخيار العمل C الانتقال إلى مجلّد معيَّن قبل بدء عمل الأمر p المحافظة على أذون الملفّات v سرد جميع الملفّات المقروءة أو المستخرجة. يُظهر هذا الخيار عند استخدامه في الوضع t- المشار إليه حجمَ الملفّات، مالكها والتاريخ. '--exclude='FILE يستبعد الملفّ FILE من الأرشيف z يستعمل خوارزميّة gzip لضغط الأرشيف j يستعمل خوارزميّة bzip2 لضغط الأرشيف J يستعمل خوارزميّة xz لضغط الأرشيف ملحوظة: يأخذ tar مبدئيا مسارات نسبية، يظهر الخطأ tar: Removing leading / from member names عند إعطاء مسار مطلق. هذا السلوك معد لأسباب أمنية، لذا ينصح بالالتزام بمسارات نسبية، وإن كان لابد من استخدام مسارات مطلقة يمكن استخدام الخيار P-؛ مثلا على النحو التالي: $ tar -cPf archive.tar /home/academy/ أمثلة على استخدام أمر tar إنشاء ملف تجميع وضغطه: ينشئ الأمر التالي ملف تجميع لجميع الملفات الموجودة في المجلّد hsoub/academy: $ tar cf academy.tar hsoub/academy/* نختار خوارزميّة ضغط إن أردنا ضغط الملفّ أثناء التجميع (لاحظ امتداد الملف والخيّار المستخدم): خوارزميّة gzip: $ tar czf academy.tar.gz hsoub/academy/* خوارزميّة bzip2: $ tar cjf academy.tar.bzp2 hsoub/academy/* خوارزميّة xz: $ tar cJf academy.tar.xz hsoub/academy/* المحافظة على الأذون والملكيّة أثناء تجميع الملفات: ترغب أحيانا في ترك أذون الملفّات وملكيتها كما هي أثناء تجميعها أو ضغطها؛ مثلا أثناء النسخ الاحتياطي لمجلدات مستخدمي النظام. يحمل ملف التجميع في السلوك المبدئي لأمر tar أذونَ وصلاحياتِ المستخدِم الذي ينفذ الأمر. نستخدم الخيّارين same-permissions-- و same-owner-- في المثال التالي للمحافظة على الصلاحيّات والأذون: $ tar cJf academy.tar.xz hsoub/academy/* --same-permissions --same-owner إنشاء الوصلات الصلبة والرمزية توجد في لينكس نوعيّة من الملفات تسمى الوصلات Links وهي مؤشرات تحيل إلى ملفّ آخر. تنقسم الوصلات إلى صلبة Hard ورمزيّة Symbolic (أو ليّنة Soft). تشير الوصلات الصّلبة إلى نفس مساحة القرص التي يستغلها الملف؛ بينما تشير الوصلات اللينة إلى أسماء الملفات. يعني هذا أنك عند حذف وصلة صلبة فأنت تحذف الملف من القرص الصّلب؛ بينما عندما تحذف وصلة رمزيّة فالمحذوف هو المؤشر فقط. الخلاصة هي أن الوصلة الصّلبة تحيل لبيانات على القرص بينما الوصلة الرمزيّة تحيل لاسم الملف فقط. من الفروقات بين النوعين أن الوصلة الصلبة لا تأخذ مساحة من القرص (هذه المساحة موجودة أصلا وأخذها الملف الذي تشير إليه الوصلة) بينما تأخذ الوصلة الرمزية مساحة صغيرة. يسهل نقل الوصلات الرمزيّة بين نظم الملفات على عكس الوصلات الصّلبة. يُستخدم الأمر ln لإنشاء الوصلات. إن لم نحدّد خيارا مع الأمر فسينشئ وصلة صلبة. لإنشاء وصلة لينة نستخدم الخيار s-. نمرّر للأمر معطيَيْن؛ الأول هو الملف الهدف (الذي نريد إنشاء وصلة له) والثاني اسم الوصلة. وصلة صلبة باسم LINK_NAME تشير إلى الملف TARGET: $ ln TARGET LINK_NAME وصلة رمزية باسم LINK_NAME تشير إلى الملف TARGET: $ ln -s TARGET LINK_NAME أمثلة على الوصلات لا توجد طريقة أفضل من إنشاء الوصلات لفهم كيفيّة عملها. نبدأ بإنشاء مجلد ننشئ فيه ملفات هذا المثال، ثم ننتقل إليه: $ mkdir links_folder $ cd links_folder ثم ننشئ ملفا باسم links_test ونكتب فيه بضعة كلمات: $ touch links_test $ echo "Testing links..." > links_test نستخدم الآن الأمر ln لإنشاء وصلة صلبة باسم hard_link تشير إلى الملف links_test: $ ln links_test hard_link ثم وصلة رمزية باسم soft_link تشير لنفس الملفّ: $ ln -s links_test soft_link نسرُد محتوى المجلد: $ ls -l total 8 -rw-rw-r--. 2 meyil meyil 17 Apr 29 16:57 hard_link -rw-rw-r--. 2 meyil meyil 17 Apr 29 16:57 links_test lrwxrwxrwx. 1 meyil meyil 10 Apr 29 16:57 soft_link -> links_test لاحظ أن معلومات الملفيْن hard_link وlinks_test متطابقة تماما. على عكس الملف soft_link الذي توجد أمامه علامة تدلّ على الملفّ الذي يشير إليه. نجرّب الآن عرض محتويات الملفّات الثلاثة: $ cat hard_link Testing links... $ cat soft_link Testing links... $ cat links_test Testing links... لا فرق من هذه الناحية، نفس المحتوى. نجرّب حذف الملفّ الأصلي: $ rm links_test ثم نعرض محتوى الوصلة الصّلبة: $ cat hard_link Testing links... نفس المحتوى، لم يتغيّر شيء. ماذا لو عرضنا محتوى الوصلة الرمزيّة؟: $ cat soft_link cat: soft_link: No such file or directory تقول رسالة الخطأ إن الملف soft_link غير موجود؛ ولكنه يظهر عند عرض محتويات المجلّد: ls -l total 4 -rw-rw-r--. 1 meyil meyil 17 Apr 29 17:07 hard_link lrwxrwxrwx. 1 meyil meyil 10 Apr 29 17:08 soft_link -> links_test يعود السبب في ذلك إلى أن الملفّ soft_link يشير إلى اسم الملف links_test الذي لم يعد موجودا؛ أما الوصلة الصلبة فلديها إمكانيّة الوصول المباشر إلى البيانات على القرص الصّلب. يكثُر استخدام الوصلات الرمزية للإشارة إلى ملفّات تتغيّر باستمرار. لنفرض مثلا أن برنامجا ما يحتاج لمكتبة برمجيّة تُحدّث باستمرار؛ بدلا من كتابة اسم المكتبة وإصدارها مباشرة في البرنامج وتحديثه عند كل تحديث للمكتبة، بدلا منذ ذلك ننشئ وصلة رمزية نستخدمها في البرنامج وعند تحديث المكتبة نحدّث الوصلة الرمزية لتشير إلى الإصدار الجديد. هذه الطريقة أسهل، أسرع وآمَن؛ خصوصا إذا كان رابط المكتبة يظهر عشرات المرات في البرنامج. خلاصة تحدّثنا في هذا المقال عن الأوامر الأهم في إدارة الملفّات والمجلدات علي Red Hat Enterprise Linux ولينكس عموما. تأكد من مراجعة ما ورد في هذا المقال لاستيعابه ومتابعة الدروس الأخرى في السّلسة. إن كانت لديك إضافات فاستخدم مربّع التعليقات. يوجد أيضا قسم للأسئلة استخدمه لطرح استشكالاتك. ترجمة -وبتصرّف- للمقال RHCSA Series: How to Perform File and Directory Management – Part 2 لصاحبه Gabriel Cánepa.