قوقعة السمك

مقدمة للمستخدم لقشرة السمك

لقد كنت أستخدم ملفقشرة السمكلأشهر ، وأعتقد أنها أفضل صدفة استخدمتها على الإطلاق. لعدة اسباب.

يبدو أن الناس متمسكونسحقوهو الإعداد الافتراضي في العديد من الأنظمة (التحديث: الآن macOS الافتراضي هو Zsh) أو استخدم Zsh ، بأداة رائعة مثليا بلدي Zshلجعلها أكثر روعة.

Bash ، على الرغم من كونها رائعة ، إلا أنها قذيفة أساسية للغاية ، مع مجموعة محدودة من الخيارات القابلة للتكوين. أميل إلى استخدامه في الغالب للتشغيلمخطوطات باش(وهو موضوع آخر) بدلاً من أن يكون غلافًا تفاعليًا. يوفر Zsh الكثير من الميزات ولكنه يتطلب القليل من التكوين للإعداد ، مما قد يخيف المبتدئين. أيضًا ، تعني الكثير من الخيارات والحرية أنه يمكنك الحصول على شلل في التكوين بسهولة تامة ، وينتهي بك الأمر بتغيير الخيارات 20 مرة في الأسبوع للتأكد من أنك لن تفوتك.

لا أرغب في "bash" على تلك المشاريع ، فهي مدهشة وكنت أستخدمها كثيرًا من الوقت وأحيانًا ما زلت أستخدمها. هذا الوصف هو محاولتي لتسليط الضوء على فوائد السمك

قذيفة السمك للإنقاذ! توفر هذه القشرة بيئة مذهلة ، وتكوينًا متميزًا بالكامل خارج الصندوق.

ميزاتي المفضلة في Fish هي:

  • يحتوي على ميزات إكمال تلقائي أفضل للأوامر التي نفذتها بالفعل وهذا وحده يجعل يومي أسرع وأقل إرهاقًا.
  • تبدأ في كتابة الأمر والضغط علىupمفتاح لرؤية جميع الأوقات في سجل الصدفة حيث استخدمت هذا الأمر من قبل.
  • يمكنك تثبيت Fish على أي نظام وهو يعمل بنفس الطريقة في كل مكان ، دون الحاجة إلى تخصيص الكثير للحصول على الأشياء الفاخرة.

عندما يتعلق الأمر بالبرمجة النصية ، فهي مختلفة تمامًا عن البرمجة النصية Bash (بطريقة أفضل IMHO) ، ولكن يمكنك تشغيل أي نص برمجي Bash بشرط أن يكون مسبوقًا بـ#!/bin/bash.

بعد التثبيت مباشرة تحصل على تلك الأشياء الجميلة:

  • تسليط الضوء على تركيب
  • موجه لطيف
  • الإكمال التلقائي
  • اقتراح المعلمة مع تلميحات صفحة الدليل
  • التكوين المستند إلى الويب

وفي رأيي هي الصدفة الأكثر صداقة للمبتدئين.

من الأشياء المضحكة التي أتذكرها والتي لاحظتها هي الصفحة الرئيسية. في البداية لم أستطع أن أفهم ما إذا كان هذا نوعًا من بقايا الماضي:

بالنسبة لأولئك المحظوظين الذين لديهم جهاز كمبيوتر رسومي ، يمكنك ضبط ألوانك وعرض الوظائف والمتغيرات والمحفوظات من صفحة ويب.

ثم أدركت أنها كانت دعابة المبرمج وجعلتني أضحك. يجب أن تكون التكنولوجيا ممتعة دائمًا ، أليس كذلك؟

أول الأشياء أولاً: ما هي الصدفة؟

القشرة هي واجهة لنظام التشغيل الأساسي. يسمح لك بتنفيذ العمليات باستخدام النصوص والأوامر ، ويوفر للمستخدمين ميزات متقدمة مثل القدرة على إنشاء البرامج النصية.

تثبيت

قم بتثبيت Fish عن طريق الجريbrew install fishعلى macOS.

تحقق من بلديدليل المحطة الطرفية macOS

fishمثبت في/usr/local/bin/fish.

نظرًا لأن هذا من المحتمل بالفعل في طريقك ، قم بتشغيلfishلبدء قذيفة الأسماك (اكتبexitللعودة إلى قوقعتك الافتراضية)

إعدادات

كان الشيء الجميل في Fish هو التكوين المستند إلى الويب. يركضfish_configلبدء عميل الويب.

configuration

من هنا يمكنك

  • اختر نظام ألوان من قائمة محددة مسبقًا
  • اختر موجهًا من قائمة محددة مسبقًا
  • فحص وظائف الأسماك والمتغيرات المكونة
  • رؤية تاريخ الأوامر

يتم تخزين التكوين في ملف~/.config/fishالمجلد ، حيث يمكنك تحريره دون الحاجة إلى استخدام التكوين المستند إلى الويب (اختياري).

ميزات الأسماك: تمييز بناء الجملة والإكمال التلقائي واقتراح المعلمات مع تلميحات صفحة الدليل

يتيح لك Fish تنفيذ أوامر Unix المعتادة المتوفرة على نظامك. عمليات نظام الملفات ، على سبيل المثال:

  • lsلسرد الملفات
  • cdلتغيير المجلد
  • rmلإزالة ملف أو مجلد
  • mvلنقل ملف إلى مجلد آخر ، أو تغيير اسم الملف
  • cpلنسخ ملف

إذا قمت بتشغيل أحد هذه الأوامر (أوanyالأمر ، حقًا) ستبدأ في رؤية الكلمات التي تكتبها تحصل على ألوان مختلفة. إنه يجعل من السهل حقًا قراءة وفهم الأوامر.

يضيف Fish أيضًا الإكمال التلقائي. إذا جريتcd ~/.config/fish/سابقًا ، والآن تكتبcd، سيقترح Fish أوامر قد ترغب في كتابتها ، وما عليك سوى الضغط على السهم الأيمن لقبول الاقتراح (أو يمكنك الاستمرار في الكتابة لتغيير الأمر). يعتمد هذا الاقتراح على محفوظات الأوامر ومسارات الملفات.

تعمل الاقتراحات المستندة إلى الإكمال التلقائي أيضًا مع الأوامر. أنا هنا كتبتcوعلامة تبويب مضغوطة:

autocomplete commands

يقترح Fish أيضًا المعلمات وكيفية استخدامها. اكتبls -و اضغطtab. فيما يلي قائمة بالمعلمات التي يمكنك استخدامها ومعناها:

autocomplete

يتم إنشاء هذه المساعدة المضمنة منصفحات الرجل، تساعد الصدفة المفيدة (حاول الجريman lsللحصول على المساعدة الكاملة).

تعيين السمك كصدفة افتراضية

إذا كنت تحب Fish بمجرد تجربته وترغب في جعله غلافك الافتراضي ، فافتح الملف/etc/shells. أنا أستعملpicoلإجراء تلك التعديلات الصغيرة على الملفات ، بامتدادpico /etc/shells، ولكن يمكنك استخدام أي محرر تفضله ، حتى VS Code معهcode /etc/shells.

يجب أن يحتوي على شيء مشابه لـ:

# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/bash /bin/csh /bin/ksh /bin/sh /bin/tcsh /bin/zsh

أضف هذا السطر في النهاية لإضافة قشرة السمكة:

/usr/local/bin/fish

next, run

chsh -s /usr/local/bin/fish

enter your password, and the shell will change for your user.

change shell

Plugins

You can install Fish plugins.

Fisher is a popular Fish package manager.

Install it using

curl https://git.io/fisher --create-dirs -sLo ~/.config/fish/functions/fisher.fish

and it’s available with the fisher command.

Now a package can be installed using fisher add <github-repository-path> and removed using fisher rm <github-repository-path>.

List all plugins installed using fisher ls.

Run fisher to update all the packages you installed.

Popular plugins are

Here is a list of packages you can install.

POSIX compliance

Various shells comply with the POSIX shell command standard.

POSIX means

  • Portable
  • Operating
  • System
  • Interface
  • X (for Unix)

and it’s a standard meant to unify the various Unix environment that were built over time. There is a shell command standard subset, which is meant as a way to unify how Unix shells work.

Unix is a specification/standard for a family of operating systems. Linux and macOS are based on Unix (Windows is not).

bash, ksh and others are POSIX compliant. Being POSIX compliant makes scripts written with POSIX compatibility work across POSIX compliant shells.

Fish (like sh or csh for example) is not compliant, so it’s not a POSIX shell, and this means that writing commands and scripts for Fish is different. Scripts written for Fish won’t work outside of Fish. Just like csh scripts only work on csh (and derivatives)

Why is it different? Various reasons, but I imagine having to support POSIX means the shell must adhere to a common language that might interfere with the shell philosophy and way of working. Not everyone want to have that baggage of tech to support forever.

This will very rarely be a problem with executing commands, but you need to keep it in mind when it comes to scripting and programming.

Download my free Linux Commands Handbook


More cli tutorials: