الدرس 2 من 18 · المستخدم
التنقّل: pwd وls وcd والمسارات
الهدف
أن تعرف في كل لحظة أين أنت داخل مجلدات الجهاز، وما الموجود حولك، وكيف تنتقل إلى مكان آخر، باستعمال مسارات مطلقة أو نسبية.
أهم النقاط
- يرتّب Linux كل شيء في شجرة واحدة تنطلق من الجذر
/. لا يوجدC:أوD:. pwdيعرض المجلد الحالي، وlsيعرض محتواه، وcdينقلك إلى مجلد آخر.- المسار المطلق يبدأ بـ
/ويعمل من أي مكان:/srv/ecole/notes. - المسار النسبي ينطلق من المجلد الحالي:
notes،../notes. .= المجلد الحالي،..= المجلد الأب،~= مجلدك الشخصي.
1. شجرة واحدة وجذر واحد
في Windows، لكل قرص حرفه الخاص. أما في Linux، فـكل شيء ينطلق من مجلد وحيد يسمّى الجذر (root)، ويُرمز له بـ /. الأقراص ومفاتيح USB والمجلدات المشتركة عبر الشبكة «تُطعَّم» في مكان ما من هذه الشجرة.
/
├── etc/ الإعدادات
├── home/ مجلدات المستخدمين
│ ├── karim/
│ └── salma/
├── root/ المجلد الشخصي لـ root
└── srv/ البيانات التي يقدّمها الجهاز
└── ecole/
├── classes/
│ ├── 6A/
│ └── 6B/
└── notes/
لاحظ أن الفاصل في Linux هو الشرطة المائلة /، وليس الشرطة المائلة العكسية \ الخاصة بـ Windows.
2. pwd: أين أنا؟
pwd (print working directory) يعرض المسار الكامل للمجلد الذي توجد فيه.
pwd # → /home/karim (مباشرة بعد الاتصال، تكون في مجلدك الشخصي)
عند اتصالك، تصل إلى مجلدك الشخصي: /home/karim بالنسبة لكريم، و/root بالنسبة لـ root.
3. ls: ماذا يوجد هنا؟
ls # محتوى المجلد الحالي
ls /etc # محتوى مجلد آخر، دون الانتقال إليه
ls -l # الصيغة الطويلة: الصلاحيات، المالك، الحجم، التاريخ
ls -a # كل شيء، بما في ذلك الملفات المخفية (التي تبدأ بنقطة)
ls -A # مثل -a، لكن دون المدخلين . و..
ls -lh # أحجام سهلة القراءة: 4,0K، 12M، 1,5G
ls -lt # مرتّب حسب التاريخ، الأحدث أولًا
ls -ltr # مرتّب حسب التاريخ، الأحدث في الأخير (عملي لملفات السجلات)
ls -R # تكراري: المجلد وكل مجلداته الفرعية
ls -ld /srv # معلومات المجلد نفسه، وليس محتواه
لنقرأ سطرًا من نتيجة ls -l:
drwxr-xr-x 4 root root 4096 Oct 18 10:12 classes
-rw-r--r-- 1 root root 812 Oct 18 10:15 eleves.csv
│└───┬───┘ │ └┬─┘ └┬─┘ └┬─┘ └─────┬────┘ └─ الاسم
│ │ │ │ │ │ └────── تاريخ آخر تعديل
│ │ │ │ │ └─────────────── الحجم بالبايت (octets)
│ │ │ │ └──────────────────── المجموعة المالكة
│ │ │ └───────────────────────── المستخدم المالك
│ │ └──────────────────────────── عدد الروابط
│ └────────────────────────────────── الصلاحيات (درس خاص لاحقًا)
└─────────────────────────────────────── النوع: d = مجلد، - = ملف، l = رابط
الملفات المخفية. كل اسم يبدأ بنقطة (.bashrc، .ssh) يكون مخفيًا: الأمر ls وحده لا يعرضه. هذا ليس حماية، بل مجرد طريقة لعدم إثقال العرض بملفات الإعدادات.
في أغلب التوزيعات، ls هو اسم مستعار (alias) لـ ls --color=auto: تظهر المجلدات باللون الأزرق، والبرامج باللون الأخضر.
4. cd: تغيير المجلد
cd /srv/ecole # الانتقال إلى /srv/ecole (مسار مطلق)
cd classes # النزول إلى المجلد الفرعي classes (مسار نسبي)
cd .. # الصعود مستوى واحدًا → /srv/ecole
cd ../.. # الصعود مستويين → /
cd # بدون وسيط: العودة إلى المجلد الشخصي
cd ~ # الشيء نفسه
cd - # العودة إلى المجلد السابق (عملي جدًا للتناوب بين مجلدين)
cd لا يقول شيئًا عندما يسير كل شيء على ما يرام. وفي حالة الخطأ، يجيب مثلًا بـ No such file or directory (المجلد غير موجود) أو Not a directory (أعطيته ملفًا).
5. المسارات المطلقة والمسارات النسبية
هذا هو المفهوم الأهم في هذا الدرس.
لنأخذ مثال مدرسة: المدير موجود في المكتب /srv/ecole/classes/6A ويريد الوصول إلى مجلد النقط.
| النوع | مثال | ينطلق من… | يعمل… |
|---|---|---|---|
| مطلق | /srv/ecole/notes |
الجذر / |
من أي مكان |
| نسبي | ../../notes |
المجلد الحالي | فقط انطلاقًا من هذا المجلد |
كيف نقرأ ../../notes انطلاقًا من /srv/ecole/classes/6A:
/srv/ecole/classes/6A
.. → /srv/ecole/classes
../.. → /srv/ecole
../../notes → /srv/ecole/notes
الاختصارات التي يجب معرفتها:
| الرمز | المعنى |
|---|---|
/ في البداية |
الجذر |
. |
المجلد الحالي (./script.sh = «السكربت الموجود هنا») |
.. |
المجلد الأب |
~ |
مجلدك الشخصي (/home/karim) |
~salma |
المجلد الشخصي لسلمى (/home/salma) |
متى نستعمل هذا أو ذاك؟ في سكربت أو مهمة مجدولة، استعمل دائمًا مسارات مطلقة: فالسكربت لا يعرف من أي مجلد سيُشغَّل. أما على لوحة المفاتيح، فالمسارات النسبية تربحك الوقت.
6. مفتاح Tab، أفضل صديق لك
اكتب cd /sr ثم Tab: تُكمل bash إلى cd /srv/. اكتب cd /srv/ecole/c ثم Tab: classes/. إذا كانت هناك عدة احتمالات، فالضغط مرتين على Tab يعرضها. هكذا تتجنّب أخطاء الكتابة… وتتحقّق في الوقت نفسه من أن المسار موجود.
7. مثال كامل
السيدة بنعلي، كاتبة المدرسة، تستكشف الخادم:
pwd # /root
cd /srv/ecole # تنتقل إلى مجلد المدرسة
ls # classes notes
ls -a # . .. .secret classes notes ← ملف مخفي!
cd classes/6A # مسار نسبي
pwd # /srv/ecole/classes/6A
ls ../../notes # trimestre1.txt ← تنظر إلى مكان آخر دون أن تتحرّك
cd - # العودة إلى /srv/ecole
cd # العودة إلى مجلدها الشخصي
أخطاء متكررة
- نسيان
/في البداية:cd srv/ecoleيبحث عن مجلدsrvداخل المجلد الحالي، وليس في الجذر. - لصق
cdو..:cd..لا يعمل في bash، يجب وضع مسافة:cd ... - الاعتقاد بأن مجلدًا فارغ لأن
lsلا يعرض شيئًا: قد يحتوي على ملفات مخفية، تحقّق بـls -a. - المسافات في الأسماء:
cd Mes documentsيفشل؛ اكتبcd "Mes documents"أوcd Mes\ documents.
التطبيق العملي (Lab)
في مختبر Debian 12 هذا، تمّ إعداد شجرة صغيرة لمدرسة في /srv/ecole. ستقوم بما يلي:
- الانتقال إلى مجلد القسم 6B وحفظ مساره المطلق؛
- اكتشاف الملف المخفي في
/srv/ecole؛ - عرض المعلومات المفصّلة للمجلد نفسه؛
- إيجاد المسار النسبي الذي يوصل من 6A إلى مجلد النقط.
نصيحة: جرّب كل أمر cd قبل كتابة جوابك، واستعمل pwd للتحقّق من المكان الذي وصلت إليه.
اختبار قصير
- ماذا يفعل
cdعند كتابته وحده، دون وسيط؟ - أنت في
/var/log/nginx. إلى أين يوصلكcd ../..؟ - هل
/home/karim/facturesمسار مطلق أم نسبي؟ وماذا عنfactures/2026؟ - أي خيار للأمر
lsيعرض الملفات المخفية؟ - لماذا يجب تفضيل المسارات المطلقة داخل سكربت؟
الأجوبة
- يعيدك إلى مجلدك الشخصي (
~). - إلى
/var. - الأول مطلق (يبدأ بـ
/)؛ والثاني نسبي. -a(أو-A، الذي لا يعرض.و..).- لأننا لا نعرف من أي مجلد سيُشغَّل السكربت: قد يشير المسار النسبي إلى مكان خاطئ.
المصادر المرجعية: Debian Reference وCahier de l'admin Debian (رخص حرة)، Ubuntu Server Guide (CC BY-SA 3.0). نص أصلي من MasterLinux.