مقدمة
في المقال السابق قمت بطرح أداة z للتنقل بذكاء بداخل الملفات و كان هناك نقاش في نهاية المقال عن ارائكم في استخدام أدوات اضافية لتحسين تجرِبة المستخدم في المهام اليومية و إكتشفت ان الغالبية تفضل تعلم الأدوات المدمجة مع النظام حتي يستطيع التحرك فيا ي توزيعه و تنمو خبراته في التعامل مع النظام في هذه المقاله سأكتب عن التنقل في الطرفيه باستخدام الأمر cd مع نقاش بعض الأمور المتعلقة بالملفات في نطام تشغيل لينكس
أداة cd ( change directory ) تقوم بتغير مجلد العمل الحالي (working directory ) و هي من اكثر الأدوات استخداما في الطرفية
مجلد العمل الحالي هو العنوان الذي تشير اليه الجَلسة الحالية
و تستطيع معرفته باستخدام الأمر pwd ) print working directory ( تستطيع تشبيهه بالمجلد المفتوح أمامك باستخدام متصفح الملفات الرسومي
بشكل افتراضي عند فتح طرفيه جديده يكون مجلد العمل الحالي هو المنزل للمستخدم الحالي
أداة cd تتيح لك التنقل بداخل الملفات عن طريق العناوين المطلقة و النسبية مع بعض الاختصارات للعناوين الشائعة مثل مجلد المنزل و مجلد العمل السابق
العناوين المطلقة وا لنسبيه
في نظام التشغيل لينكس و الأنظمة المشابهة ليونكس هناك نوعين من العناوين
- مطلقه و تكون عباره علي العنوان من مجلد الجذر و لا يعتمد علي مجلد العمل الحالي ودائما ما يبدأ بمجلد الجذر و رمزه /
` /home/mo/docuuments/pdf `
- نسبيه و تكون عباره عن عنوان المِلَفّ بالنسبة للعنوان الحالي
في حال كان مجلد العمل الحالي هو منزل المستخدم mo سيكون العنوان هو ` documents/pdf `
رمز المجلد الحالي و مجلد الأب
يرمز للمجلد الحالي ب . و المجلد الأب ب ..
إن كنت تريد الإنتقال من المجلد الحالي للمجلد الأب قم بإستخدام cd ../
قم بتجربة cd ../ ../ ماذا تلاحظ
بإمكانك دمج مجلد الأب مع أسماء المجلدات الأخري
فكر معي ما هو مجلد العمل بعد تنفيذ الأمر
cd /../../home/../usr/binبإعتبار أن مجلد العمل الحالي هو/var/logقم بالتجربه و شاركني الأجابه بالتعليقات
اختصارات الذَّهاب إلي مجلد المنزل
- عند استخدام cd دون أي إضافات تنقلك إلي مجلد المنزل تِلْقائيًا
- يمكنك أيضا استخدام علامة
~للرمز إلي مجلد المنزل cd ~ستنقلك إلي مجلد المنزل للمستخدم الحالي- cd ~user ستقوم بنقلك إلي مجلد المنزل للمستخدم المذكور اسمه مع تبديل user باسم المستخدم ( في حالة امتلاكك لصلاحيات الوصول للمجلد )
يمكنك أيضا استخدام الرمز ~ في العناوين النسبية cd ~/Documents سينقلك إلي مجلد المستندات للمستخدم الحالي
المسافات و العلامات الخاصة للمجلدات في لينكس
في الطرفية المسافة تعتبر فاصل بين المعطيات للأداه لذالك عند وجود مسافة فاصله تعتبر الأداة أن العنوان خيارين لذالك هناك حليين للوصول إلي ملف يحتوي علي مسافات
-
استخدام محرف الخلوص
محرف الخلوص\يستخدم لتخطي الأحرف ذات معني في الطرفية مثل المسافة
في حال أردت كتابه مسافات و التعامل معها كجزء من النص ضع قبلها محرف الخلوص -
استخدام العنوان بداخل علامة تنصيص
أيضا بإمكانك وضع النص بداخل علامة تنصيص و سيقوم البرنامج بالتعامل مع المسافات كجزء من النص
لاحظ في التجربة الأولي لم يتم تنفيذ الأمر لأن المسافة تجعله يظن أننا نود الإنتقال لمجلد Telegram الغير موجود بداخل العنوان الحالي بينما عند استخدام محرف الخلوص و علامة النصيص إعتبرت المسافة كجزء من النص
لنتأكد من فهمك
اخبرني ماذا ستفعل في حين احتوي اسم المجلد علي علامة التنصيص'
اختصار الذَّهاب إلي مجلد العمل السابق
-cd استخدام الرمز - ينقلك إلي مجلد العمل السابق
الرمز - يختلف عن.و .. و ~ حيث انه مخصص للأداة cd و لا يمكن تعميمه علي النظام مثل الرموز السابقة و السبب هو أن الرموز السابقة هي طريقه تعامل النظام مع عناوين الملفات النسبية
ما يحدث وراء الكواليس حين تنفذ الأمر cd - هو أن الأداة تنفذ الأمر
cd "$OLDPWD" && pwd
حيث إن $OLDPWD هو متغير صدفية يحتوي علي عنوان مجلد العمل السابق
- لاحظ ان هناك متغير صدفية يحتوي علي عنوان مجلد العمل السابق هل تستطيع التفكير في فائده لأستخدام هذا المتغير
- اذا كنت لا تعرف ما هو متغير البيئه و الفرق بينه و بين متغير الصدفية لا تقلق سأقوم بالكتابه عنهما قريبا حتي ذلك الحين بأمكانك قرائه هذه المقاله و التي تتحدث هن احد اهم متغيرات البيئة في نظام لينكس
خاتمة
فهم هيكلة الملفات في نظام تشغيلك و القدرة علي التحرك بحرية بداخل الطرفية سيفتح لك أفاق جديده للتحرك في النظام و استكشافه قد يبدو التنقل عن طريق الطرفية غير عملي في البداية مقارنه بمتصفح الملفات الرسومي و مع الوقت سيتغير رأيك حين تري الإمكانيات الحقيقية للطرفيه
بعد الاعتياد علي التنقل بداخل المجلدات بداخل الطرفية أنصحك بالاطلاع علي احد برامج المطابقة المبهمة ليسهل عليك التنقل مثل fzf
إجابة السؤال
الأول
هنا شرحت المسار, يبدو معقدا و أعدك مع قليل من تركيزك سيكون سهل الفهم
أنصحك بالتعلم عن طريق تجربة التنقل و استكشاف الملفات و لا تنسي أن كل شيء في نظام جنو \ لينكس هو ملف (مع الوقت ستفهم هذه الجملة )
الثاني
هنا قمت باستخدام محرف الخلوص قبل علامة التنصيص لتجاهلها كحرف خاص و معاملتها كجزء من النص ( مسار الملف النسبي )
المصادر
صفحة التوثيق الخاصة بالأداة man cd
الترخيص
هذا الموضوع يتبع ترخيص جميع مواضيع أسس: CC-BY-SA 4.0









