بعض أوامر لينكس مألوفة للغاية، حتى أننا لا نلاحظ أننا نستخدمها. cd
يعد الأمر الخاص بتغيير الدلائل أحد هذه الأوامر. هناك بعض الحيل التي يمكن أن تساعدك على أن تصبح أكثر كفاءة في cd—
أو يمكنك التخلص منه تماما.
CD هو أمر نادرًا ما تفكر فيه
أنت ترمش طوال اليوم، كل يوم، ولكنك في أغلب الوقت لا تدرك ذلك. ما لم يدخل شيء في عينك، نادرًا ما تفكر في تلك الحركة الصغيرة المنتظمة. بعض أوامر لينكس تشبه ذلك. فهي تحوم على محيط وعيك. ورغم أنك تستخدمها يوميًا، إلا أنها لا تلفت انتباهك لأنها صغيرة وبسيطة للغاية.
خلال الساعة الأولى من استخدام جهاز كمبيوتر يعمل بنظام Linux، ستتعلم كيفية استخدام cd
أمر متضمن مع Bash وأغلفة أخرى. ربما كانت لديك خبرة سابقة في استخدامه على نظام تشغيل آخر ولم تكن بحاجة إلى شرح. إنه يغير دليل العمل الحالي، أليس كذلك؟ ما الذي يجب معرفته أيضًا؟
حسنًا، أكثر مما تظن. إليك بعض التلميحات والنصائح التي قد تساعد في تحسين كفاءتك.
عمليات القرص المضغوط القياسية
من أجل أن نكون كاملين، دعونا نلقي نظرة سريعة على الاستخدامات القياسية لـ cd
.
إذا كنا في الدليل الرئيسي، ولكننا نريد التغيير إلى الدليل الموجود في “/usr/lib/firefox/browser” بدلاً من ذلك، ثم العودة إلى الدليل الرئيسي، فيمكننا استخدام الأوامر التالية:
cd /usr/lib/firefox/browser/
cd /home/dave
لا يلزمك كتابة مسار الدليل بالكامل؛ يمكنك استخدام الإكمال التلقائي. لكل جزء من المسار، بعد كتابة عدد كافٍ من الأحرف لتمييز اسم الدليل عن غيره، اضغط على Tab لإكمال اسم الدليل تلقائيًا.
على سبيل المثال، اكتب ما يلي على سطر الأوامر:
cd /usr/lib/fire
الآن، اضغط على Tab وسيقوم shell بملء بقية مجلد “firefox” نيابةً عنك. إذا أضفت “/b” إلى المسار ثم ضغطت على Tab مرة أخرى، فسيؤدي ذلك إلى إضافة مجلد “browser” إلى الأمر.
تضيف shell شرطة مائلة للأمام حتى تتمكن من تكرار عملية إكمال علامة التبويب. وهذا هو السبب أيضًا وراء وجود شرطة مائلة للأمام في الأمر الأول. ولا يوجد واحد في الأمر الثاني لأنه تم كتابته.
يمكنك استخدام العلامة (~
) كطريقة مختصرة للعودة بسرعة إلى الدليل الرئيسي من أي مكان في نظام الملفات؛ فقط اكتب ما يلي:
قرص مضغوط ~
هذه أمثلة على المسارات المطلقة، حيث توفر المسار بالكامل من جذر نظام الملفات إلى الدليل المستهدف، cd
.
يتم الرجوع إلى المسارات النسبية من دليل العمل الحالي. في الدليل الرئيسي، يوجد دليل يسمى work
.يمكنك استخدام tree
أمر إلى انظر شجرة الدليل داخل work
الدليل—فقط اكتب ما يلي:
tree
ال work
يحتوي الدليل على دليل يسمى dev
. هناك أيضًا دليل يسمى dev
في الدليل الجذر لنظام الملفات. يمكنك استخدام ls
مع -d
(الدليل) للنظر في كل منها. -hl
يخبرك الخيار (القابل للقراءة من قبل الإنسان، القائمة الطويلة) ls
لاستخدام وحدات سهلة القراءة لأحجام الدليل، وقائمة التنسيق الطويلة.
إذا كتبت dev
يفترض shell أنك تقصد “dev” في الدليل الحالي. لإجباره على النظر إلى “dev” في الدليل الجذر، ما عليك سوى إضافة شرطة مائلة للأمام لتمثيل جذر نظام الملفات، كما هو موضح أدناه:
ls -d dev -hl
ls -d /dev -hl
ال cd
الأمر يتصرف مثل ls
في هذا الصدد. إذا قمت بالإشارة إلى الدليل على أنه dev
كما هو موضح أدناه، يفترض أنك تقصد الدليل الموجود في work
دليل:
cd dev
بدون شرطة مائلة للأمام، يُفترض أن المسارات الأطول تبدأ من دليل العمل الحالي أيضًا، كما هو موضح أدناه:
cd dev/mobile/android
تغيير الدليل باستخدام النقطة المزدوجة
يمثل معرف النقطة المزدوجة الدليل الرئيسي للدليل العامل الحالي. إذا كنت في دليل فرعي متداخل بشكل عميق، فيمكنك استخدام ..
مع cd
للانتقال إلى الدليل الرئيسي الذي تتواجد فيه.
يؤدي هذا إلى نقلك إلى أعلى دليلين في شجرة الدليل. إذا أضفت المزيد ..
من خلال الأمر، فإنه يسمح لك بنقل عدد عشوائي من المستويات إلى أعلى شجرة الدليل.
اكتب ما يلي:
cd ..
cd ../..
يمكنك أيضًا إنشاء مجموعة من الأسماء المستعارة لأداء هذه المناورات نيابةً عنك، وذلك عن طريق كتابة ما يلي:
alias .2="cd ../.."
alias .3="cd ../../.."
يمكنك استخدامها بنفس طريقة استخدام الأوامر نفسها.
لجعل الأسماء المستعارة متسقة عبر عمليات إعادة تشغيل الكمبيوتر، يجب عليك إضافتها إلى .bashrc
أو .bash_aliases
ملف.
التنقل بسهولة بين دليلين
الواصلة (-
) هو رمز آخر له وظيفة خاصة. فهو يغير الدليل الخاص بك إلى الدليل الذي أتيت منه للتو.
في هذا المثال، لنفترض أنك موجود في الدليل “c”. يمكنك استخدام cd
للتغيير إلى الدليل “forth”. بعد ذلك، يمكنك استخدام cd -
للتنقل ذهابًا وإيابًا بين الدليلين.
للقيام بذلك، اكتب ما يلي:
cd ../forth
cd -
cd -
يظهر اسم الدليل الذي تنتقل إليه قبل أن تنتقل إليه.
نوع آخر من الأقارب
يستخدم shell دليل العمل الحالي باعتباره “الجذر” أو الدليل الأساسي للمسارات النسبية. يمكنك استخدام CDPATH
متغير بيئة لتعيين موقع آخر كدليل أساسي للمسارات النسبية. إذا كنت تقضي معظم وقتك في قسم معين من شجرة نظام الملفات، فقد يوفر لك هذا الكثير من ضغطات المفاتيح (والوقت) كل يوم.
دعونا نكتب ما يلي لإنشاء work/dev/projects
الدليل الأساسي للمسارات النسبية:
export CDPATH=/home/dave/work/dev/projects
الآن، في كل مرة تستخدم فيها dc
الأمر، الموقع في CDPATH
يتم فحص متغير البيئة أولاً للتأكد من مطابقة أسماء الدليل. إذا تطابق أي منها مع الهدف الذي قدمته في cd
بمجرد تنفيذ الأمر، سيتم نقلك إلى هذا الدليل.
الآن، بغض النظر عن مكان وجودك في نظام الملفات، عندما تستخدم cd
باستخدام الأمر، يتحقق shell مما إذا كان الدليل المستهدف موجودًا في الدليل الأساسي. إذا كان الأمر كذلك، فسيتم نقلك إلى هذا الدليل المستهدف.
إذا كان دليل الهدف الخاص بك يبدأ بعلامة مائلة للأمام (/
)، مما يجعله مسارًا مطلقًا، ولن يتأثر بـ CDPATH
متغير البيئة.
ولإثبات ذلك، نكتب ما يلي:
cd c
cd prolog
cd /usr
cd forth
ال CDPATH
متغير البيئة هو في الواقع مسار، تمامًا مثل PATH
متغير البيئة. عند كتابة أمر، يبحث shell عن المواقع في PATH
للمباراة. عندما تستخدم CDPATH
، تبحث القذيفة عن المواقع في CDPATH
متغير البيئة للمطابقة. أيضًا، نفس الشيء PATH
, CDPATH
يمكن أن تحتوي على مواقع متعددة.
لجعل shell يبحث في الدليل الحالي قبل المواقع الأخرى في CDPATH
متغير البيئة، ما عليك سوى إضافة نقطة ( .
) في بداية المسار مثل هذا:
export CDPATH=.:/home/dave/work/dev/projects
لجعل إعداداتك دائمة، عليك إضافتها إلى ملف تكوين، مثل .bashrc
.
هناك أمر يجب الانتباه إليه: إذا قمت بتعيين دليل أساسي، فسيؤثر ذلك أيضًا على تغييرات الدليل التي يتم إجراؤها داخل البرامج النصية. لتجنب ذلك، يمكنك استخدام مسارات مطلقة في البرامج النصية الخاصة بك أو اختبار في .bashrc
الملف عندما تحدده CDPATH
كما هو موضح أدناه:
if test "${PS1+set}"; then CDPATH=.:/home/dave/work/dev/projects; fi
يؤدي هذا إلى إجراء اختبار لمعرفة ما إذا كان متغير موجه سطر الأوامر، $PS1
، تم تعيينه. CDPATH
سيتم تعيين متغير البيئة فقط في حالة نجاح الاختبار.
استخدام shopt مع القرص المضغوط
مع shopt
يأمريمكنك تعيين خيارات معينة للواجهة. يمكن لبعض هذه الخيارات تحسين استخدامك لـ cd
. لتعيينها، يمكنك استخدام -s
خيار (تمكين) مع shopt
لتمرير اسم الخيار إليه.
ال cdspell
يتحقق الخيار من أسماء الدليل ويصحح بعض الأخطاء الشائعة في الكتابة، بما في ذلك الأحرف المنقولة أو المفقودة، أو الأسماء التي تحتوي على عدد كبير جدًا من الأحرف. إذا وجد دليلًا يتطابق مع أي من التصحيحات، فسيتم طباعة المسار المصحح، cd
يحدث الفعل.
على سبيل المثال، نكتب ما يلي لتعيين cdspell
الخيار وأخطأ في كتابة “Desktop” لمعرفة ما إذا كان shell يصححها لنا:
shopt -s cdspell
cd Desktpo
اكتشفت القشرة الخطأ وقامت بتصحيحه، ثم قامت بتغييره إلى دليل “سطح المكتب”.
آخر shopt
الخيار الذي يمكنك استخدامه مع cd
يكون autocd
. فهو يلغي الحاجة إلى الكتابة cd
على الإطلاق. أي شيء تكتبه ليس أمرًا أو نصًا برمجيًا أو ملفًا قابلاً للتنفيذ (مثل الاسم المستعار) يتم استخدامه كدليل مستهدف. إذا كان بإمكانك النقل إلى هذا الدليل، فسيتم طباعته في نافذة المحطة الطرفية، ويتم تغييرك إلى هذا الدليل.
على سبيل المثال، نكتب ما يلي:
shopt -s autocd
/usr/local/games
/etc
~
انظر! يمكنك التنقل عبر نظام الملفات بأكمله دون حتى استخدام cd
!
الإعدادات التي يمكنك تغييرها باستخدام shopt
يؤثر فقط على الأصداف التفاعلية، وليس البرامج النصية.
مجموعة الاسطوانات المضغوطة
ربما لن تتبنى كل هذه الطرق. ولكن من المحتمل أنك وجدت هنا شيئًا مثيرًا للاهتمام أو مفيدًا. ففي النهاية، أي شيء يعمل على تسريع أو تبسيط عملية التنقل عبر سطر الأوامر هو أمر جيد!