
تُعَد صدفة Fish واحدة من أكثر أنواع الصدفات shell تميزًا رغم كونها بذات الوقت من أقل الصدفات شيوعًا، بالرغم من أنّها مناسبة للمبتدئين والمحترفين في تطوير البرمجيات الحرّة ومفتوحة المصدر على حدٍ سواء.
توفّر Fish مجموعةً من الميزات التي تجعلها خيارًا جاذبًا، انطلاقًا من تمييز الصيغة لونيًا أي تلوين التعليمات البرمجية لتمييزها بناءً على صيغتها، ووصولًا إلى الاختصارات المفضّلة لدى العديد من المستخدمين، ومرورًا بالعديد من الإضافات المبتكرة.
لذا سنعرض بهذا المقال بعضًا من أبرز ميزات صدفة Fish.
1. تمييز الصيغة لونيا
يعدّ المبدأ من الأفضل اكتشاف الأخطاء قبل تنفيذها أساسيًا، إذ يوفًر الكثير من الوقت والجهد ويجنبنا الإحباط، فرغم دعم معظم محرّرات النصوص الحديثة لتمييز الصيغة لونيًا كميزة مُدمجة فيها، إلّا أنّ وجه التميز في Fish يتمثّل في توفيرها لهذه الميزة ضمن الصدفة نفسها، وكونها تعمل حتى مع أوامر لينكس Linux.
ستظهر الأوامر باللون الأحمر في حال كونها غير صحيحة، والأمر ذاته ينطبق على الخيارات والوسطاء التي لا تتناسب مع السياق.
2. الاقتراحات التلقائية
توفّر صدفة Fish اقتراحات للأوامر أثناء كتابتنا لها، ويمكننا تطبيقها بكل سهولة باستخدام مفتاح Tab كما يتضح بهذا الشكل بنسخة SVG.
ستظهر الاقتراحات بلون باهت أثناء الكتابة لتسهيل آلية الاستفادة منها، وفي حال كان سطر الاقتراح مناسبًا بالكامل، فيمكننا الضغط على مفتاح السهم الأيمن لاستكماله تلقائيًا.
3. صفحة المساعدة التفاعلية لخيارات الأوامر
تُعدّ من المزايا الرائعة التي تُتيح إمكانية استكمال خيارات الأوامر بالاستعانة بصفحة المساعدة الخاصة بالبرنامج أو الأداة التي نستخدمها على نحوٍ تفاعليّ.
سنحتاج بدايةً إلى قراءة المعلومات من صفحة المساعدة لتحليل النصوص وتنظيمها في صيغة تجعل الصدفة قادرةً على عرض الاقتراحات التفاعلية وعرض خيارات الأوامر بناءً على المعلومات المستخرجة، ويمكننا القيام بذلك عبر تشغيل الأمر التالي:
fish_update_completions
إذ سيُحلّل هذا الأمر محتوى صفحات المساعدة.
وبذلك وعند كتابة أمر معين، ما علينا سوى وضع إشارة الشرِطة (-) لإضافة الخيارات ثم الضغط على مفتاح Tab، وستظهر اقتراحات كما هو واضح هنا من صفحة المساعدة للخيارات المُتاحة للأمر مع توصيف مختصر لكل منها.
يمكننا التمرير عبر الخيارات وقراءة وصفها ضمن أداة عرض النصوص التفاعلية pager التي تظهر، ثم اختيار المناسب منها بناءً على وظيفته.
تُسهّل هذه الميزة العمل مقارنةً بحالة استخدام أمر من قبيل command -h
.
4. استخدام الاختصارات بدلًا من الأسماء البديلة
تشبه الاختصارات في صدفة Fish أدوات توسيع النصوص تلقائيًا، إذ يمكننا تعيين شيفرة مُستخدمة على نحوٍ متكرّر إلى اختصار يسهل الوصول إليه.
فعلى سبيل المثال، سنعين فيما يلي المقطع sch
كاختصار للأمر pacman -Ss
المُتعلّق بالبحث عن الحزم:
abbr -a sch pacman -Ss
وبذلك في كل مرة نكتب فيها sch
ونضغط على مفتاح المسافة، سيتم استبداله تلقائيًا بالأمر pacman -Ss
.
تجدر الإشارة إلى أن هذه الاختصارات مؤقتة وتقتصر على جلسة العمل الحالية، ولجعل الاختصار دائمًا، يمكننا كتابته في ملف التهيئة Config.
ملاحظة: يكمن الفرق بين الأسماء البديلة والاختصارات في كون الاسم البديل يعمل في الخلفية دون أن يظهر الأمر الفعلي الذي يشير إليه; أمّا الاختصار, فيُظهر الأوامر الفعلية، كما تُسجّل بشكلها الصحيح في سجل الأوامر.
5. مساعدة شاملة قائمة على الويب
يميل المستخدمون المتمرسون في لينكس إلى الاعتماد على صفحات المساعدة كمصدر للدعم حول الأوامر، في حين ينصبّ أكثر اعتماد الجيل الجديد من مستخدمي لينكس على الإنترنت للحصول على مثل هذه المعلومات.
وفي هذا الصدد، تُقدّم صدفة Fish مزيجًا من الطريقتين من خلال ميزة المساعدة الشاملة القائمة على الويب، والمتوفّرة بسهولة على النظام حتى في حال عدم الاتصال بالإنترنت، إذ تُخزّن محليًا. وللحصول على المساعدة أثناء استخدام صدفة Fish، نكتب الأمر التالي:
help
وسيؤدي ذلك إلى فتح صفحة المساعدة في متصفح الويب.
ومنها يُمكن الرجوع إلى التوثيق الشامل بكل سهولة.
6. الإعدادات المعتمدة على الويب
توفّر Fish ميزةً أخرى تعتمد على الويب، فلتغيير لون الموجّه أو إجراء تعديلات أخرى على الإعدادات مثلًا، لسنا مُضطرين إلى تعديل ملفات الضبط يدويًا عبر واجهة أسطر الأوامر؛ إذ من الممكن استخدام الإعدادات المعتمدة على الويب.
يمكن كتابة الأمر التالي أثناء تشغيل صدفة Fish:
fish_config
وسيؤدي ذلك إلى فتح صفحة الإعدادات كواجهة رسومية ضمن متصفح الويب.
يمكننا من خلال هذه الصفحة تغيير الألوان، أو اختيار موجّه مختلف من الخيارات المُتاحة وضبط غيرها من التعديلات.
7. الانتقال التلقائي إلى المجلدات كبديل عن الأمر CD
لسنا بحاجة إلى كتابة الأمر cd إذا أردنا الانتقال إلى مجلد معيّن، إذ يكفي كتابة اسم المجلد، وهذا كل ما في الأمر!
فعلى سبيل المثال، إذا كنا في المجلد Home ورغبنا بالانتقال إلى المجلد الفرعي Downloads، فيكفي أن نكتب كلمة Downloads، كما ستعرض الصدفة اقتراحات للإكمال التلقائي أثناء الكتابة.
أمّا إذا كنا في دليل معيّن ورغبنا بالانتقال إلى فرع مختلف تمامًا، فسنحتاج إلى استخدام المسار المطلق.
8. تنقل أسهل بين المسارات
إذا كنا بحاجة للتنقّل مرارًا بين المجلدات التي زرناها مؤخرًا، فما من داعٍ لإعادة كتابة المسار أو استخدام أمر cd
، إذ يكفي الضغط على مفتاح Alt مع السهم اليميني للانتقال إلى المسارات السابقة أو السهم اليساري لهذه المسارات.
وكبديل، يمكننا كتابة الأمر cdh
والضغط على مفتاح Enter، وستظهر أداة عرض نصوص تفاعلية تتيح لنا اختيار المجلد الذي نريد العودة إليه باستخدام الرقم المقابل له.
9. البحث التفاعلي في السجل
يمكننا البحث عن أمر معيّن في سجل الأوامر على نحوٍ تفاعليّ في صدفة Fish، وللقيام بذلك نستخدم الاختصار المعروف وهو مفتاح CTRL مع حرف R.
سيُظهر ذلك أداة عرض النصوص التفاعلية هذه تطلب إدخال نص البحث، فما علينا سوى كتابة اسم الأمر الذي نحتاجه، وستظهر النتائج مباشرةً.
10. المتغيرات العمومية
في حال تعيّين متغير على أنّه متغير عمومي في صدفة Fish، فسيبقى مُتاحًا حتى في حال إعادة تشغيل الصدفة أو حتى النظام بأكمله.
ولإنشاء متغير عمومي، سنستخدم الأمر التاليك
set -U my_variable 10
ستُحفظ قيمة المتغير my_variable
لتكون 10، وستبقى محفوظةً حتى بعد إعادة تشغيل النظام.
ولا حاجة لإضافتها إلى ملف تهيئة بيئة الصدفة RC أو ملف التكوين الشخصي Profile.
11. الوضع الخاص
توفّر صدفة Fish وضعًا خاصًا، وفيه لا تُحفظ الأوامر التي نُدخلها في سجل الأوامر ولا تُخزّن على القرص.
وللانتقال إلى الوضع الخاص، نستخدم الأمر التالي:
fish -P
وبمجرد الانتهاء من العمل، يمكننا الخروج من الوضع الخاص بكتابة الأمر:
exit
الخلاصة
لا يُعدّ ما قدمناه في هذا المقال إلّا غيضًا من فيض لاستكشافه في صدفة Fish، إذ توفّر صدفة Fish العديد من الميزات التي تُسهّل الاستخدام، من قبيل:
- تحرير الأوامر مُتعدّدة الأسطر بسهولة بالضغط على مفتاح ALT مع مفتاح ENTER
- التبديل بين أنماط اختصارات لوحة المفاتيح الخاصّة بمحرّريّ النصوص Emacs (الافتراضي) وVim
- صيغة بسيطة وواضحة لكتابة النصوص البرمجية
ولاشكّ أنّه من الممكن تحقيق معظم الميزات التي ناقشناها في هذا المقال ببذل بعض الجهد الإضافي في صدفاتٍ أخرى، ولكن وجودها مفعّلة افتراضيًا في Fish يجعل الأمر مختلفًا تمامًا.
فمن الممكن أن تساعدنا Fish على أن نكون أكثر إنتاجية وفعالية في عملنا كمطوّرين، لاسيما في حال كنا نتحكّم في بيئة التطوير الخاصّة بنا.
ولا يُنصح عمومًا بكتابة نصوص برمجية خاصّة بصدفة Fish على نحوٍ حصريّ إذا كان من المتوقّع أن يعمل الآخرون عليها في صدفة Bash، إذ قد نواجه مشكلات في التوافق بين الصدفات في البيئات المشتركة مُتعدّدة المستخدمين.
ننصحكم بتجربة صدفة Fish ومراقبة سير الأمور، فربما ستجعلونها صدفتكم الافتراضية!
ترجمة -وبتصرف- للمقال 11 Fish Shell Features That Make it More Awesome Than Bash لصاحبيه Abhishek Prakash وSreenath.
تعليقات
إرسال تعليق