7 د قراءة🟢 مبتدئ

أنواع الملفات وإدارتها في لينكس: الإنشاء والنسخ والنقل والحذف والاختصارات

أنواع الملفات وإدارتها في لينكس: الإنشاء والنسخ والنقل والحذف والاختصارات
📑 محتويات المقال
  1. لماذا نبدأ بالملفات؟
  2. أنواع الملفات في لينكس
  3. التنقل بين المجلدات
  4. ماذا يوجد في المجلد؟
  5. كيف تقرأ نتيجة ls -l؟
  6. إنشاء الملفات وقراءتها
  7. البحث داخل الملف بالأمر grep
  8. النسخ والنقل وإعادة التسمية
  9. النسخ بالأمر cp
  10. النقل وإعادة التسمية بالأمر mv
  11. إنشاء المجلدات وحذفها
  12. إنشاء المجلدات بالأمر mkdir
  13. الحذف بالأمرين rm و rmdir
  14. الاختصارات: Soft Link و Hard Link
  15. Soft Link: الاختصار المعروف
  16. Hard Link: اسم ثانٍ لنفس الملف
  17. جرّب بنفسك
  18. اختبر فهمك

في التدوينة الماضية ثبّتنا دبيان داخل جهاز وهمي، وجلسنا أمام شاشة سوداء فيها مؤشر يومض. ربما شعرت بشيء من الرهبة: من أين أبدأ؟ وماذا أكتب؟

اليوم نكسر هذه الرهبة. سنتعلم كيف تتجول داخل النظام، وتنشئ ملفاتك، وتنسخها وتنقلها وتحذفها، وتصنع لها اختصارات، وكل ذلك من الطرفية فقط. وفي آخر التدوينة اختبار قصير تقيس به ما فهمت.

لماذا نبدأ بالملفات؟

في لينكس قاعدة مشهورة تقول: كل شيء ملف (Everything is a file).

المستند الذي تكتبه ملف، وهذا متوقع. لكن المجلد أيضاً ملف، وإعدادات البرامج ملفات نصية تفتحها وتعدّلها، بل حتى القرص الصلب والفأرة ولوحة المفاتيح يمثّلها النظام بملفات خاصة يتعامل معها.

ولهذا فإن إدارة الملفات ليست مهارة جانبية في لينكس، بل هي الأساس الذي يقوم عليه كل شيء بعدها: تثبيت البرامج، وضبط الإعدادات، وإدارة الخوادم. من يتقن الملفات يتقن نصف الطريق.

أنواع الملفات في لينكس

يمكن أن نقسم الملفات في لينكس إلى ثلاثة أنواع رئيسية:

أنواع الملفات في لينكس
أنواع الملفات في لينكس
  • الملفات العادية (Normal Files): وهي ما تعرفه، مثل الملفات النصية، وملفات الإعدادات، والصور، والبرامج.
  • المجلدات (Directories): وهي في لينكس ملفات من نوع خاص، وظيفتها أن تحتوي ملفات أخرى.
  • الملفات الخاصة (Special Files): ومنها ملفات تمثّل قطع العتاد مثل الأقراص (تجدها في المجلد /dev)، والاختصارات (Links) التي سنتعلمها في آخر التدوينة.

التنقل بين المجلدات

قبل أن تعمل بالملفات يجب أن تعرف كيف تصل إليها. انظر إلى سطر الطرفية:

user@debian:~$

هذا السطر يخبرك بثلاثة أشياء: اسم المستخدم user، واسم الجهاز debian، ومكانك الحالي، وهو هنا الرمز ~ ويعني مجلد المستخدم (المجلد الرئيسي، أو "الهوم"). وكلما تنقلت تغيّر هذا الجزء ليخبرك أين أنت.

الأمر المسؤول عن التنقل هو cd (اختصار Change Directory):

cd Desktop     # ادخل إلى مجلد سطح المكتب
cd ..          # ارجع خطوة إلى المجلد الأعلى
cd ~           # اذهب إلى مجلد المستخدم مباشرة من أي مكان
cd             # بدون إضافات: يعيدك إلى مجلد المستخدم أيضاً
التنقل بين المجلدات بالأمر cd
التنقل بين المجلدات بالأمر cd

وإن أردت أن تعرف مسارك الكامل، فالأمر pwd يطبعه لك:

pwd
/home/user/Desktop

ماذا يوجد في المجلد؟

وصلت إلى المجلد، فكيف ترى ما بداخله؟ بالأمر ls (اختصار List):

ls        # عرض محتويات المجلد
ls -l     # عرض تفصيلي: النوع والصلاحيات والمالك والحجم والتاريخ
ls -la    # التفصيلي مع إظهار الملفات المخفية

والملفات المخفية في لينكس هي التي يبدأ اسمها بنقطة، مثل .config، وأغلبها ملفات إعدادات لا تحتاج إلى رؤيتها كل يوم، ولذلك يخفيها النظام.

كيف تقرأ نتيجة ls -l؟

حين تكتب ls -l تظهر لك سطور قد تبدو مخيفة أول مرة، لكنها منظمة جداً:

قراءة نتيجة الأمر ls -l
قراءة نتيجة الأمر ls -l

أهم ما يعنينا الآن هو الحرف الأول من كل سطر، فهو يخبرك بنوع الملف:

الحرفالنوعمثال
-ملف عاديnotes.txt
dمجلد (directory)Desktop
lاختصار (link)s.txt -> notes.txt
bجهاز يتعامل بالكتل، مثل الأقراص/dev/sda
cجهاز يتعامل بالحروف، مثل الطرفية/dev/tty

أما الحروف التي بعده مثل rwxr-xr-x فهي الصلاحيات، ولها تدوينة كاملة قادمة بإذن الله.

إنشاء الملفات وقراءتها

الآن جاء دور الصناعة. انتقل إلى سطح المكتب وجرّب:

cd ~/Desktop
touch notes.txt        # أنشئ ملفاً فارغاً
nano notes.txt         # افتح الملف للكتابة داخله
cat notes.txt          # اعرض محتوى الملف
  • touch ينشئ ملفاً فارغاً في لمح البصر.
  • nano محرر نصوص بسيط يعمل داخل الطرفية. اكتب ما تشاء، ثم احفظ بـ Ctrl+O واضغط Enter، واخرج بـ Ctrl+X. وإن لم يكن الملف موجوداً أنشأه لك.
  • cat يطبع محتوى الملف على الشاشة لتقرأه.

البحث داخل الملف بالأمر grep

تخيّل ملفاً فيه آلاف السطور وتريد سطراً فيه كلمة معيّنة. هنا يأتي grep، فهو يبحث داخل محتوى الملف ويعرض لك السطور التي فيها الكلمة فقط:

grep "Linux" notes.txt

ويمكنك أن تربط أمرين معاً بالخط العمودي | (ويسمى Pipe)، فيأخذ الأمر الثاني ناتج الأمر الأول:

cat notes.txt | grep "Linux"

هنا cat يعرض الملف، وgrep يصفّي ما عرضه ويبقي لك السطور المطلوبة فقط.

إنشاء الملفات وقراءتها والبحث فيها
إنشاء الملفات وقراءتها والبحث فيها

وإذا امتلأت الشاشة وأردت تنظيفها، اكتب clear أو اضغط Ctrl+L.

النسخ والنقل وإعادة التسمية

النسخ بالأمر cp

الأمر cp (اختصار Copy) يحتاج منك أمرين: ماذا تنسخ، وإلى أين:

cp notes.txt ~/Documents              # انسخ الملف إلى مجلد المستندات
cp notes.txt ~/Documents/copy.txt     # انسخه وسمِّ النسخة اسماً جديداً

لكن جرّب أن تنسخ مجلداً بنفس الطريقة وستتفاجأ:

cp projects ~/Documents
cp: -r not specified; omitting directory 'projects'

النظام يرفض نسخ المجلد، ويخبرك بالسبب بنفسه: لم تحدد الخيار -r. وهذا الخيار معناه النسخ بشكل متكرر (recursive)، أي انسخ المجلد وكل ما بداخله من ملفات ومجلدات:

cp -r projects ~/Documents
cp -rv projects ~/Documents     # الخيار v يعرض لك كل ملف وهو يُنسخ
نسخ المجلدات يحتاج إلى الخيار ‎-r
نسخ المجلدات يحتاج إلى الخيار ‎-r

النقل وإعادة التسمية بالأمر mv

والأمر mv (اختصار Move) يعمل بنفس طريقة cp، لكنه ينقل بدل أن ينسخ، فلا يبقى الأصل في مكانه:

mv notes.txt ~/Documents      # انقل الملف إلى المستندات
mv notes.txt hello.txt        # غيّر اسم الملف

لاحظ السطر الثاني: لا يوجد في لينكس أمر خاص لإعادة التسمية. فإعادة التسمية في الحقيقة ما هي إلا نقل الملف إلى نفس المكان باسم جديد. وهذه من اللمسات الذكية التي ستحبها في لينكس.

ونقل المجلدات لا يحتاج إلى -r، فالأمر mv ينقل المجلد بكل ما فيه مباشرة.

إنشاء المجلدات وحذفها

إنشاء المجلدات بالأمر mkdir

mkdir projects                 # أنشئ مجلداً
mkdir projects/project1        # أنشئ مجلداً داخل مجلد موجود

لكن ماذا لو أردت أن تنشئ عدة مجلدات متداخلة دفعة واحدة، وأولها غير موجود؟

mkdir folder/sub/deep
mkdir: cannot create directory 'folder/sub/deep': No such file or directory

الأمر يرفض، لأنه لا يجد المجلد folder ليضع داخله. والحل الخيار -p (اختصار parents)، الذي ينشئ كل المجلدات الناقصة في الطريق:

mkdir -p folder/sub/deep

الحذف بالأمرين rm و rmdir

rm notes.txt          # احذف ملفاً
rmdir folder          # احذف مجلداً فارغاً فقط
rm -r folder          # احذف مجلداً بكل ما فيه

والفرق بينها مهم:

  • rm للملفات، ومع الخيار -r يحذف المجلدات بمحتوياتها.
  • rmdir للمجلدات فقط، وبشرط أن تكون فارغة. فإن كان في المجلد شيء رفض حذفه.
إنشاء المجلدات وحذفها
إنشاء المجلدات وحذفها

في ويندوز تعرف "الاختصار" الذي تضعه على سطح المكتب ليفتح لك برنامجاً أو مجلداً بعيداً. وفي لينكس نفس الفكرة، لكن بنوعين، ويُنشآن بالأمر ln (اختصار Link).

ln -s notes.txt s.txt                       # اختصار لملف في نفس المجلد
ln -s /home/user/projects ~/Desktop/proj    # اختصار لمجلد بعيد، بالمسار الكامل

السوفت لينك سهم يشير إلى مكان الملف الأصلي. فإذا فتحته فتحت الأصل. ولو كتبت ls -l ستراه يبدأ بالحرف l، وبجانبه سهم يدلك على الأصل:

lrwxrwxrwx 1 user user 9 Nov 11 10:20 s.txt -> notes.txt

ومن صفاته:

  • يعمل مع الملفات والمجلدات.
  • إن حذفت الملف الأصلي تعطّل الاختصار، لأنه صار يشير إلى مكان فارغ.
ln notes.txt h.txt        # بدون الخيار -s

الهارد لينك ليس سهماً يشير إلى الملف، بل هو اسم آخر لنفس الملف. والسر هنا أن كل ملف في لينكس له رقم تعريف داخلي اسمه inode، وهو المكان الحقيقي للبيانات على القرص. أما الاسم الذي تراه فهو مجرد بطاقة معلّقة على هذا الرقم.

فالهارد لينك يعلّق بطاقة ثانية على نفس البيانات. ولذلك:

  • إن حذفت الاسم الأصلي يبقى الملف موجوداً وتصل إليه بالاسم الثاني، لأن البيانات لا تُحذف إلا بعد حذف آخر اسم يشير إليها.
  • لا يعمل مع المجلدات. ولو جرّبت سيرفض النظام:
ln /home/user/projects ~/Desktop
ln: /home/user/projects: hard link not allowed for directory
الفرق بين Soft Link و Hard Link
الفرق بين Soft Link و Hard Link

جرّب بنفسك

اختبر فهمك

في هذا القسم نختبر ما تعلمناه. لكل سؤال درجة واحدة، والدرجة الكاملة 8. اختر إجابتك ثم اضغط تحقق من إجاباتي.

🧠 الاختبار (8 أسئلة)

  1. للتنقل ما بين المجلدات نستخدم الأمر

  2. الأمر المسؤول عن إنشاء ملف فارغ

  3. يتم قراءة محتوى الملفات بالأمر

  4. الأمر المسؤول عن إعادة تسمية الملف أو المجلد

  5. الأمر المسؤول عن نسخ الملف أو المجلد

  6. ما هو الأمر الذي يحذف الملفات والمجلدات؟

  7. ما هو دور الأمر rmdir؟

  8. الأمر ln -s يقوم بإنشاء اختصارات من نوع

#دورة لينكس#لينكس#دبيان

0

مقالات قد تعجبك

التعليقات (0)

كن أول من يعلّق.