الشل والتنقّل في نظام الملفات
درس 2 من 11
2الشل والتنقّل في نظام الملفات
ماذا تشاهد في الرسم: كل أمر cd ينقل مكانك الحالي عقدة واحدة في الشجرة، والمحثّ يتغيّر معه.
كل كتلة كود هنا تعمل بضغطة زر داخل الصفحة. اقرأ، اضغط «شغّل»، قارن الناتج، ثم غيّر شيئًا وشغّل من جديد. من يعرف cd وls يقفز إلى التمارين.
خارطة هذا الجزء
المفاهيم بالترتيب، اضغط أيًّا منها للقفز إليه:
طريقان إلى نفس الفكرة
الطرفية مثل التحدّث مع موظف استقبال لا يرى إلا ما تكتبه. تسأله «أين أنا؟» فيقول اسم الغرفة، و«ماذا هنا؟» فيعدّد ما فيها، و«خذني إلى المطبخ» فينقلك. أربعة أسئلة فقط تكفي لتتنقّل في البيت كله دون أن تنظر.
الطرفية نافذة نصية، والشل (bash أو zsh) برنامج يفسّر ما تكتبه. pwd يطبع المجلد الحالي، وls -la يسرد المحتوى مع المخفي، وcd ينقلك (وcd .. يصعد مستوى)، وtouch وmkdir ينشئان ملفًا ومجلدًا. الملفات التي تبدأ بنقطة مخفية افتراضيًا.
قبل أن تبدأ
🗂️درس الملف والمسار
تعرف الشجرة والمسار المطلق والنسبي و...
⌨️الكتابة باللوحة
ستكتب أوامر قصيرة بالإنجليزية. لا تحتاج سرعة، تحتاج دقة في الحروف.
الفكرة الجوهرية
1الطرفية والشل والمحثّ
الطرفية نافذة سوداء تكتب فيها. والشل برنامج داخلها يقرأ ما تكتب وينفّذه. أشهر شل اسمه bash.
السطر الذي ينتظر كتابتك اسمه المحثّ، وغالبًا يعرض اسمك واسم الجهاز ومكانك الحالي ثم $. كل ما بعد $ من كتابتك.
الأمر كلمة، وبعدها خيارات تبدأ بشرطة، وبعدها الأشياء التي يعمل عليها. ls -a notes: الأمر ls، الخيار -a، والمجلد notes.
2أين أنا وماذا هنا وإلى هناك
لك دائمًا «مكان حالي» في الشجرة. pwd يطبعه، وls يعرض ما فيه، وcd ينقلك. تابع الرسم ثم شغّل الكود.
mkdir -p darb/notes أنشأ مجلدًا داخل مجلد دفعة واحدة. touch أنشأ ملفًا فارغًا. وbasename "$PWD" طبع اسم المجلد الحالي فقط دون مساره الكامل.
mkdir -p darb/notes cd darb basename "$PWD" ls touch notes/today.txt ls notes
الناتج:
darb notes today.txt
3الصعود والهبوط في الشجرة
cd .. يصعد خطوة واحدة. كرّره تصعد خطوتين. وcd وحده يعيدك إلى مجلدك الشخصي من أي مكان.
لاحظ أننا نزلنا ثلاث طبقات بأمر واحد بالمسار النسبي، ثم صعدنا طبقة طبقة. المسار النسبي يختصر، و.. يرجع.
mkdir -p city/street/house cd city/street/house basename "$PWD" cd .. basename "$PWD" cd .. basename "$PWD"
الناتج:
house street city
4الملفات المخفية
أي ملف يبدأ اسمه بنقطة مخفي: ls لا يعرضه، وls -a يعرض الجميع. الإعدادات غالبًا ملفات مخفية في مجلدك الشخصي.
لاحظ . و.. في القائمة: المجلد الحالي والأب موجودان فعلًا كمدخلين في كل مجلد، ولهذا تعمل cd ...
mkdir -p box cd box touch visible .hidden echo "--- ls ---" ls echo "--- ls -a ---" ls -a
الناتج:
--- ls --- visible --- ls -a --- . .. .hidden visible
كيف يعمل، خطوة بخطوة: ما يحدث عندما تضغط Enter بعد أمر
يقسّم الشل السطر إلى كلمات: الأمر ثم خياراته ثم أهدافه.
يبحث عن برنامج بهذا الاسم في مجلدات معروفة.
يشغّله ويمرّر له الكلمات، ويعرض لك ما يطبعه.
عندما ينتهي البرنامج يعود المحثّ، وهذه إشارتك لتكتب الأمر التالي.
مثال محلول
ideas.txt داخل ~/projects/darb وأنت في مجلدك الشخصي. الحل بسطرين: mkdir -p projects/darb ثم touch projects/darb/ideas.txt. ولم تحتج cd أصلًا، لأن المسار النسبي وصل من مكانك.خرافة مقابل حقيقة
| الخرافة | الحقيقة |
|---|---|
| الطرفية للخبراء وخطيرة. | أربعة أوامر تكفي لأغلب يومك، وما دمت لا تكتب أمر حذف فلا شيء يضيع. |
| cd يفتح المجلد كما يفعل النقر المزدوج. | cd يغيّر مكانك الحالي فقط، ولا يعرض شيئًا. ls هو الذي يعرض. |
| الملف المخفي سرّي. | مخفي يعني أن الأدوات لا تعرضه افتراضيًّا كي لا يزدحم المجلد. أي أحد يراه بـls -a. |
جرّب بنفسك
أنت في ~/darb/notes وكتبت cd ../code. أين تصير؟
.. تصعد إلى darb، ثم code تنزل إلى الأخ المجاور لـnotes. أمر واحد بمسار نسبي واحد، والنقطتان جزء منه لا مسار ثانٍ.
بطاقات مراجعة سريعة
pwd؟ls وls -a؟cd ../..mkdir -p a/b/c؟تحقق من فهمك
لماذا cd لا يطبع شيئًا عند النجاح؟
لأن أدوات Unix تصمت عند النجاح وتتكلّم عند الفشل؛ الصمت خبر جيد.
ما الفرق بين touch وmkdir؟
الأول ينشئ ملفًا فارغًا، والثاني مجلدًا.
لماذا توجد . و.. في كل مجلد؟
لأن النظام يخزّن إشارة إلى المجلد نفسه وإلى أبيه داخله، وهذا ما يجعل المسارات النسبية تعمل.
مصادر هذا الدرس
مرتّبة بالنوع. ابدأ بالتوثيق الرسمي إذا تبي المرجع الدقيق، وبالمقال أو الفيديو إذا تبي الشرح أولًا.
خلّصت الدرس؟
سجّل الدخول ليُحفظ تقدّمك.