fbpx
باش ضد Zsh

Bash vs Zsh: مقارنة بين قذائف سطر أوامر

إذا سبق لك استخدام سطر الأوامر في نظام * nix (مستند إلى Unix أو يشبه Unix) ، فمن المحتمل أنك استخدمت bash shell. Bash (اختصار لـ "Bourne-again shell") هو الغلاف الافتراضي للعديد من أنظمة التشغيل الشبيهة بـ Unix. 

تتضمن الأمثلة الشائعة لأنظمة التشغيل الشبيهة بيونكس GNU / Linux و macOS. على الرغم من وجود العديد من القذائف الأخرى للمحطة الطرفية ، إلا أن أحد أكثر القذائف شيوعًا هو zsh أو "Z shell".

في حين أن bash و zsh عبارة عن قذائف قوية تشترك في العديد من الميزات البارزة ، إلا أنهما يمتلكان أيضًا اختلافات قد يكون للمستخدمين تفضيلات مختلفة. ستعرض هذه المشاركة نظرة عامة على الميزات والمقارنة بين bash و zsh ، وكيفية تعيين كلاهما كصدفة افتراضية ، وبعض اقتراحات التكوين.

تاريخ قصير من bash و zsh

في عام 1971 ، جاء الإصدار الأول من نظام التشغيل Unix مع غلاف Thompson كغلاف افتراضي. على الرغم من افتقارها إلى إمكانات البرمجة النصية ، فقد أنشأت هذه القشرة الأولى العديد من معايير إعادة توجيه الإدخال / الإخراج. مع إصدار الإصدار 7 من نظام التشغيل Unix في عام 1979 ، تم توزيع نظام التشغيل الجديد مع غلاف Bourne باعتباره غلافه الافتراضي.

إنشاء باش

لاحقًا في عام 1989 ، أنشأ Brian Fox قذيفة Bash لمشروع GNU كملف برنامج بديل قابل للتطبيق لقذيفة بورن. أدخلت Bash تحسينات كبيرة على سابقتها. كان أبرز هذه التحسينات قدرتها كلغة برمجة نصية ، ويمكن لمستخدمي bash كتابة برامجهم لأتمتة المهام.

كانت البرامج النصية "shell" قابلة للتنفيذ عن طريق كتابة اسم الملف (عادةً بامتداد .sh). بالنسبة للجزء الأكبر ، يمكن أن تدعم bash معظم ميزات Bourne و C shell والفروع الفريدة ، بما في ذلك تحرير سطر الأوامر وحسابات الأعداد الصحيحة.

إنشاء zsh

بعد فترة وجيزة من ظهور Bash ، ابتكر طالب في جامعة برينستون Z shell أو "zsh". جنبًا إلى جنب مع هذا النظام التشغيلي هو عبارة عن منصة عبر الإنترنت تعتمد على المجتمع تسمى Oh My Zsh ، والتي تتميز بامتدادات مهمة مثل المكونات الإضافية والسمات الخاصة بـ zsh. اعتبارًا من يونيو 2019 ، أعلن macOS Catalina عن اعتماده zsh كصدفة افتراضية ليحل محل bash - وهو "فوز" مهم لعشاق zsh.

استضافة محرك الفسفور الابيض

Bash مقابل zsh: السمات المشتركة بين bash و zsh

بالنسبة للجزء الأكبر ، تشترك bash مقابل zsh في العديد من الميزات المريحة التي تعتبر كلاهما قذائف عالية الكفاءة.

الأمر z

إحدى الميزات المفيدة التي تتمثل في أن كلا المشاركات هما الأمر z ، والذي يسمح للمطورين بتتبع أدلةهم. باستخدام الأمر z ، يمكنك الانتقال إلى دليل متكرر / تمت زيارته مؤخرًا عن طريق كتابة z ، متبوعًا باسم الدليل. على سبيل المثال ، لنفترض أن لديك دليل newProject موجودًا في ~ / src / 2018 / projects / newProject. باستخدام هذه الأداة ، يمكنك كتابة z newProject.

تكملة

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

تصحيح تلقائي

بالإضافة إلى ذلك ، تعتبر أداة مفيدة لملف شركة تصميم مواقع إلكترونية  في كلتا الصدفتين ، في معظم الأحيان ، هو التصحيح التلقائي. في الصدفة Z ، إذا قمت بعمل خطأ مطبعي بريء أثناء كتابة موقع ملف ، فإن التصحيح الإملائي مضمّن وسيكتشف الخطأ المطبعي تلقائيًا. في حين أن هذا ليس مخصصًا لـ bash ، يمكنك بسهولة إجراء التعديلات اللازمة للسماح بالتصحيح التلقائي باستخدام أوامر shopt cdspell و dirspell.

تخصيص اللون

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

في حين أن هذه ليست سوى بعض الأدوات المختلفة التي تقدمها كلتا الصدفتين ، إلا أنها تقدم لمحة عن كيفية تشابه bash و zsh مع بعضهما البعض. ومع ذلك ، يمتلك كلاهما بعض الفروق التي يمكن أن تخلق تفضيلًا لأحدهما على الآخر بين المطورين.

باش مقابل zsh

Bash vs. zsh: أسباب للتفكير في التبديل بين الأصداف

الأوامر والتفاعل العام ل bash مقابل zsh متطابقة بشكل أساسي. يمكن بسهولة ترجمة المعرفة والإلمام بقذيفة واحدة إلى أخرى دون معالجة منحنى تعليمي حاد. ومع ذلك ، تتمتع كلتا الصدفتين بميزات فريدة قد تدفع المطورين إلى إعلان تفضيل واضح.

على سبيل المثال ، تتمتع zsh بنفوذ مجتمع قوي على الإنترنت يسمى يا بلدي Zsh. أوه ، My ZSH هو أحد أقدم الخيارات وأكثرها شيوعًا لإدارة تكوينات zsh. يقدم أكثر من 250 مكونًا إضافيًا و 140 سمة مختلفة مقدمة من المجتمع ، يعد Oh My ZSH مكانًا رائعًا لبدء تخصيص z shell ؛ حتى أنه يأتي مع وظيفة التحديث التلقائي التي تحافظ على تحديث الغلاف الخاص بك. يتيح ذلك للمستخدمين العمل في غلاف بواجهة أكثر تخصيصًا ، وزيادة مساحة العمل الخاصة بهم بمختلف أدوات، والوصول إلى نظام دعم مناسب خارج الصندوق. على سبيل المثال ، الخيار المفضل للغاية للواجهة هو موجه الجانب الأيمن أو موجه جانبي يخفي تلقائيًا عند الكتابة في مسارات أو أوامر ملف طويلة. حتى هذا المستوى الدقيق من المرونة يوجه رؤوس المطورين نحو zsh.

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

باش مقابل zsh

تثبيت zsh

إذا كنت تستخدم OS X ، فهذا يعني أنك قمت بالفعل بتثبيت zsh على نظامك. للتحقق ، قم بتشغيل الأمر التالي:

التي zsh

إذا كان مثبتًا بالفعل ، يجب أن تتلقى رسالة إخراج تنص على / bin / zsh كمسار ملف للقذيفة. هناك احتمال ضئيل أنه قد يعرض مسار ملف آخر إذا قمت ، لسبب ما ، بنقل دليل التثبيت الافتراضي. إذا تلقيت مخرجات تفيد بأن zsh غير موجود ، فيجب عليك تثبيته عبر البيرة. يمكنك القيام بذلك عن طريق تشغيل الأمر التالي:

الشراب تثبيت zsh

بالنسبة لتوزيعات CentOS و Redhat و Fedora Linux ، يمكنك تثبيت zsh عن طريق تشغيل yum install zsh.

وبالمثل ، فإن sudo apt-get install zsh سيُثبِّت الصدفة على توزيعات دبيان وأوبونتو. يمكنك البدء في استخدام zsh حتى لو كانت bash هي قشرتك الافتراضية. لتجربته مؤقتًا ، قم بتشغيل zsh على سطر الأوامر. سيؤدي هذا إلى تبديل الغلاف مؤقتًا لجلستك الحالية. لتحقيق أقصى استفادة من zsh ، يوصى بشدة بترقية جهازك بدلاً من استخدام الإعداد الافتراضي.

المحطة هي الإعداد الافتراضي في نظام التشغيل Mac OS X. بينما تعمل بشكل جيد ، فإن الخيارات مثل iTerm 2> or فرط تقدم تخصيصًا هائلاً. أنا أستخدم iTerm 2 ، على الرغم من أن Hyper هو خيار ممتاز متاح عبر الأنظمة الأساسية.

ضبط zsh كصدفة افتراضية

الآن بعد أن قمت بتثبيت zsh ، كل ما عليك فعله لتعيينه كصدفة افتراضية هو تشغيل الأمر التالي:

chsh -s / bin / zsh

لبدء استخدام zsh ، أغلق نافذة Terminal وافتح نافذة جديدة - ستعمل الآن zsh بدلاً من bash.

العودة إلى باش

إذا أردت ، لسبب ما ، العودة إلى bash كصدفة افتراضية ، اكتشف أولاً مكان تثبيت bash مع bash.

يجب أن يكون إخراج المسار الافتراضي هو / bin / bash.

للرجوع للخلف ، استخدم chsh -s / bin / bash.

سيؤدي تشغيل bash أيضًا إلى تبديل shell مؤقتًا لتلك الجلسة.

تكوين zsh

مثل bashrc. ، يستخدم zsh ملف نقطي لتخزين إعدادات تكوين المستخدم ، zshrc. محتجز في الدليل الرئيسي (~ / .zshrc). لن يكون هناك إعداد لملف التكوين بشكل افتراضي ، لذلك يجب عليك إنشاء واحد في الدليل الرئيسي الخاص بك (~ / .zshrc).

وبالمثل ، يمكنك إضافة ملف .zprofile إلى الدليل الرئيسي الخاص بك. .zprofile هو برنامج نصي يتم تشغيله عند تسجيل الدخول. يمكنك إضافة أي أوامر ترغب في تشغيلها عند بدء مثيل shell جديد. بالنظر إلى النطاق الواسع للتخصيص المتاح في zsh ، يمكن أن يكون استخدام مدير تكوين مخصص مفيدًا. توجد العديد من الخيارات ، بما في ذلك السعر،>يا بلدي ZSHو مولد المضاد.

يا بلدي ZSH

لتثبيت Oh My ZSH ، قم بتشغيل

curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | ش

سيؤدي هذا إلى تنزيل البرنامج النصي القابل للتنفيذ وتثبيته على نظامك. عند تثبيت Oh My ZSH ، تعد الإعدادات الافتراضية مكانًا رائعًا للبدء.

بشكل افتراضي ، سيقوم بتثبيت سمة "robbyrussell" (التي تحمل الاسم نفسه من المطور الأصلي للمشروع).

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

فروع جيت

على غرار ما سبق ، يضيف Oh My ZSH أيضًا مكونًا إضافيًا سيعرض الفرع الحالي الذي تعمل فيه في مشروع git. بعد ظهور دليل العمل في موجه الأوامر ، ستعرف دائمًا الفرع الذي تتصفحه. بهذه الطريقة ، لن تضطر أبدًا إلى الدخول إلى الفرع لمعرفة الفرع الحالي. يضيف المكون الإضافي git أيضًا العديد من الميزات القيمة الأخرى.

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

باش مقابل zsh

تعمل zsh على تحسين سير عمل Git بشكل كبير باستخدام هذه الأنواع من المؤشرات مباشرةً في موجه الأوامر.

تغيير المظهر الخاص بك

كما هو مذكور أعلاه ، يأتي zsh مع مئات من السمات المختلفة. سيكون robbyrussell هو السمة الافتراضية ، على الرغم من أنه يمكنك بسهولة تغيير هذا. للعثور على سمة جديدة تقدمها Oh My ZSH ، قم بمعاينة كل منها على صفحة السمات في ريبو المشروع. نظرًا للعديد من الخيارات المتاحة ، فمن المحتمل أن تجد واحدًا متاحًا به الميزات التي تبحث عنها بدقة تقريبًا.

بمجرد العثور على الملف الذي يعجبك ، افتح ملف .zshrc في الدليل الرئيسي. بعد ذلك ، ستحتاج إلى تحديث السطر بدءًا من ZSH_THEME. ضع الاسم الذي تريد استخدامه (داخل علامات الاقتباس) ، ثم احفظ الملف. يجب أن يؤدي فتح جلسة طرفية جديدة الآن إلى عرض الموضوع الجديد.

باش مقابل zsh

يمكنك حتى تعيين ZSH_THEME بشكل عشوائي. سيؤدي هذا إلى تحميل سمة عشوائية جديدة في كل مرة تفتح فيها جلسة جديدة في الغلاف.

قد تتطلب بعض السمات ، مثل خطوط Powerline الشائعة ، حزمًا أو خطوطًا إضافية. يجب أن تحدد تعليمات تثبيت السمة أي حزم أخرى مطلوبة ، بالرغم من ذلك.

وفي الختام

كما نظرنا في zsh مقابل bash post ، يشترك zsh و bash في مجموعة مماثلة ومثيرة للإعجاب من الميزات ولكن لديهم أيضًا أدواتهم الخاصة. إذا كنت تبحث عن قابلية للتوسعة وتخصيص أكبر وميزات متقدمة غير موجودة في bash ، فإن صدفة zsh المدمجة مع إطار عمل Oh My Zsh تعد خيارًا ممتازًا. بغض النظر عن الصدفة التي تختارها ، فإن الطلاقة المحسنة في سطر الأوامر توفر فوائد لا حصر لها في الكفاءة والأتمتة وفهم أفضل للأعمال الداخلية لجهاز الكمبيوتر الخاص بك.

للحصول على مقدمة لبعض أوامر shell الأساسية ، تحقق من منشورنا على استخدام سطر الأوامر الأساسي.

استضافة محرك الفسفور الابيض

 

أنجيلو فريزينا أشعة الشمس وسائل الإعلام

كاتب السيرة الذاتية

Angelo Frisina هو مؤلف ذو خبرة عالية وخبير تسويق رقمي مع أكثر من عقدين من الخبرة في هذا المجال. وهو متخصص في تصميم الويب وتطوير التطبيقات وتقنيات تحسين محركات البحث وتقنيات blockchain.

أدت معرفة Angelo الواسعة بهذه المجالات إلى إنشاء العديد من مواقع الويب الحائزة على جوائز وتطبيقات الهاتف المحمول ، فضلاً عن تنفيذ استراتيجيات تسويق رقمية فعالة لمجموعة واسعة من العملاء.

يعتبر أنجيلو أيضًا مستشارًا محترمًا ، حيث يشارك أفكاره وخبراته من خلال العديد من ملفات البودكاست وموارد التسويق الرقمي عبر الإنترنت.

بشغف للبقاء على اطلاع دائم بأحدث الاتجاهات والتطورات في العالم الرقمي ، يعد Angelo رصيدًا قيمًا لأي مؤسسة تتطلع إلى البقاء في المقدمة في المشهد الرقمي.

38 التعليقات

  • MSI سبتمبر 28، 2018 في 7: 58 مساء

    "bash (اختصار لـ" Bourne-again shell ") هو الغلاف الافتراضي لأنظمة التشغيل المستندة إلى Unix ..."

    هذا ليس صحيحا. Bash هي الصدفة التفاعلية الافتراضية في معظم توزيعات Linux و macOS ، نعم. ومع ذلك ، فهو ليس الإعداد الافتراضي - أو حتى مدرج في النظام الأساسي - في أي متغير BSD صادفته. أنظمة Unix التجارية ، مثل AIX ، لا تستخدم Bash أيضًا.

    أيضًا ، لا يعتمد Linux على Unix (استنادًا إلى كود Unix الأصلي) ، ولكنه يشبه Unix (مصمم وفقًا لطريقة Unix في القيام بالأشياء).

  • نيكولاس موريرا أكتوبر 13، 2018 في 9: 33 مساء

    شكرا لتوضيح ذلك. تم تحديث المنشور ليعكس هذا.

  • جون ف أكتوبر 25، 2018 في 3: 11 مساء

    تتوفر أيضًا الكثير من مزايا zsh المذكورة هنا لـ bash عبر bash-it https://github.com/Bash-it/bash-it

  • نيكولاس موريرا أكتوبر 25، 2018 في 6: 46 مساء

    هذا صحيح ، على الرغم من أنه كما يلاحظ README.md ، فإنه "تمزيق وقح لـ oh-my-zsh" 🙂

  • بلوز 71 ديسمبر 12، 2018 في 3: 33 صباحا

    ملاحظة ، يحتوي Bash أيضًا على بعض الميزات المذكورة أعلاه (عند التهيئة):

    - الأداة المساعدة 'z' غير مقيدة بالصدفة ، وهي تعمل على Bash و Zsh. أستخدمه طوال الوقت في باش. انظر هنا https://github.com/rupa/z/

    - مع تثبيت bash-complete وتكوين inputrc بشكل مناسب ، من الممكن إعداد Bash للحصول على Zsh AUTO_MENU مثل الإكمال (بما في ذلك خيار التدوير).

    - سيجري الخياران "cdspell" و "dirspell" التصحيح التلقائي لاسم نظام الملفات في Bash

    - يمكن تكوين الدلائل والملفات بألوان مختلفة عبر متغير LS_COLORS في Bash

    - تعد عناوين URL التي يتم النقر فوقها أمرًا طرفية. في iTerm2 يمكنني تنفيذ COMMAND + CLICK على عنوان URL وتشغيل المتصفح.

    أناقش العديد من إمكانات وإعدادات Bash هذه هنا: https://bluz71.github.io/2018/03/15/bash-shell-tweaks-tips.html

    يمكن لـ Bash القيام بـ 90٪ مما يمكن لـ Zsh القيام به ، فهو يتطلب فقط بعض التعديلات.

    تمتلك Zsh بعض الإمكانات الرائعة التي لا يمتلكها Bash ، وهي:

    - موجه الجانب الأيمن (إذا كنت تريد ذلك)

    - تسليط الضوء على بناء جملة الأوامر

    - إتمام علامة التبويب الوصفية (مشتق من صفحة الدليل)

    هتاف.

  • راي__ ديسمبر 21، 2018 في 3: 20 مساء

    "... ما لم تكتب pwd" ، هذا ليس صحيحًا تمامًا. ألق نظرة سريعة في صفحة الدليل عن bash / ksh وابحث (/ like vi) عن PROMPTING. ستجد هنا كيفية إعداد المطالبات الخاصة بك (PS1 هو الأساسي وهناك آخرون للاستخدامات المختلفة PS2..4). على وجه التحديد لوضع المعلومات التي تريدها - / w يعطي المسار.

    ومع ذلك ، فإن نطاق التخصيص محدود للغاية عند مقارنته بـ OMZ.

  • أدنى فبراير 14، 2019 في 1: 40 مساء

    هذا الشيء النقر والفتح هو وظيفة لمحاكي المحطة الطرفية ، وليس zsh. كما أن إكمال الخيار بالإضافة إلى الأمر z عبارة عن مكونات إضافية لـ zsh ، والتي تتوفر في شكل مماثل لـ bash أيضًا. تم دمج تمييز لون الملفات في bash أيضًا.

  • SHREYAS أبريل 1، 2019 في 6: 34 صباحا

    لماذا يمكنني تحرير هذه المدونة؟

  • فات تران أبريل 3، 2019 في 9: 06 صباحا

    شكرًا على المنشور ، أحب الأمر `z` كثيرًا ، لم أكن أعرف عن هذا المكون الإضافي!
    راجع للشغل ، أنت تقوم بتعيين contenteditable = "true" إلى div (s) ، لكن ليس العناوين مثل `h2`

  • أنجيلو فريزينا أبريل 9، 2019 في 8: 16 مساء

    كيف يمكنك تحرير المدونة؟

  • أنجيلو فريزينا أبريل 9، 2019 في 8: 25 مساء

    شكرا على ردود الفعل فات تران.

  • تريكس فارار أبريل 29، 2019 في 12: 34 مساء

    "مع إصدار الإصدار 7 من نظام التشغيل Unix في عام 1979 ، تم توزيع نظام التشغيل الجديد مع bash باعتباره غلافه الافتراضي."

    هذا البيان غير صحيح.

    الغلاف الافتراضي في الإصدار 7 (وأنظمة التشغيل اللاحقة التي تحمل علامة UNIX) هو Bourne Shell.

    تم إنشاء bash في عام 1989 ، بواسطة Brian Fox ، كجزء من مشروع GNU. (https://en.wikipedia.org/wiki/Bash_(Unix_shell))

  • باواموي مايو 10، 2019 في 4: 42 مساء

    شكرا جزيلا. كنت أقرأ المقال وأقول لنفسي: "هذا خطأ / غير صحيح / غير ذي صلة". أود أن يقوم المؤلف بتحديث المنشور وفقًا لتعليقك. وإلا فإنه يظهر ببساطة أنهم لا يعرفون الكثير عن القذائف ...

  • ستيفن يونيو 4، 2019 في 1: 56 صباحا

    "... ما لم تكتب pwd" ، فهذا ليس صحيحًا على الإطلاق! تأتي معظم توزيعات Linux و (أنا متأكد تمامًا) macOS مع PS1 مضبوطًا على شيء مفيد يتضمن cwd. إن كتابة "pwd" في كل مرة تحتاج فيها إلى معرفة مكانك ليس سير عمل فعالاً ولن يقوم أحد بذلك.

    هذه المقالة هي عبارة عن مقارنة بين التكوين الافتراضي في bash و zsh بدلاً من ميزات الصدفة نفسها.

  • جيم يونيو 4، 2019 في 12: 35 مساء

    حسنًا ، جربته ، لقد تم حجبه في كل سطر من ملفي الشخصي. ليس متوافقًا جدًا على ما أعتقد.

    أنا متأكد أيضًا من أن / bin / sh كان قابلًا للبرمجة تمامًا منذ أن استخدمته لمدة 15 عامًا. حسنًا ، هذا ksh.

  • بيت يونيو 4، 2019 في 4: 20 مساء

    دليل جميل! هذا الإدخال على وشك الانفجار بسبب إعلان Apple عن التبديل إلى ZSH في كاتالينا. 🙂

  • برونو يونيو 4، 2019 في 7: 35 مساء

    ما هو الموضوع المستخدم في الأمثلة؟

  • كريس يونيو 4، 2019 في 11: 59 مساء

    هذا هو مادة لطيفة. ومع ذلك ، لا يوجد سوى ميزتين من ميزات zsh مدرجة هنا غير متوفرة بالفعل في bash (إلا إذا كنت تستخدم الإصدار القديم من bash لنظام macOS).

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

    من المضلل أيضًا أن نقول إن bash لن يعرض دليل العمل الحالي في الموجه (افتراضيًا ، لا يفعل zsh أيضًا ، ولكن يمكن تعديل كليهما بسهولة لعرض تلك المعلومات) أو أن bash لا يعمل بشكل جيد مع git ، كما هو الحال حزم لذلك.

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

    من ناحية أخرى ، هناك بعض الأشياء التي يقوم بها zsh والتي ليست في الحقيقة جزءًا من bash ، والتي لم تلمسها حتى ، مثل توسيع المسار العودي الذي يسمح لك بكتابة "cd / u / sh / cal" وجعله تلقائي توسيع إلى "cd / usr / share / calendar".

    ويبدو أن الميزة البارزة لـ zsh هي المستوى الداخلي للتخصيص. على سبيل المثال ، إذا قمت بتشغيل شيء مثل “set -o | grep 'on | off' | wc "، ستجد أن هناك 179 خيارًا للصدفة معروضة في zsh مقارنة بـ 27 فقط في bash.

    كما قلت ، أشياء جيدة. في المرة القادمة ، ربما قم بتشغيل الأشياء الخاصة بك بعد أحد عشاق bash قبل قول ما لا يستطيع bash فعله.

  • مايك ماكسويل يونيو 5، 2019 في 1: 53 صباحا

    شيء أجده مفيدًا جدًا ، هو ضبط stderr باللون الأحمر ، والأسود stdout. هناك بالطبع طرق للقيام بذلك في bash (وأفترض في zsh) لأمر واحد ، لكن القيام بذلك لجلسة يبدو أنه أصعب. لدي برنامج نصي بيرل يبدأ عند بدء التشغيل ويقوم بذلك ، ولكن يبدو أن هذا يشبه استخدام مطرقة ثقيلة لقتل ذبابة. هناك بعض الحلول الأخرى هنا: https://unix.stackexchange.com/questions/12439/can-i-configure-my-shell-to-print-stderr-and-stdout-in-different-colors. لكنني مندهش من أن هذا لا يأتي بشكل قياسي مع بعض الصدفة أو غيرها (جئت إلى هنا على أمل أن يأتي مع zsh ...).

  • ستيف سيمونز يونيو 5، 2019 في 7: 27 مساء

    تم كتابة غلاف يونكس القديم بواسطة ستيف بورن ، وليس كين تومسون - ومن ثم أطلق على باش اسم قذيفة "بورن مرة أخرى".

  • بيتر بيرش يونيو 6، 2019 في 1: 59 صباحا

    تاريخك القصير لباش غير صحيح. القشرة التي حلت محل قذيفة طومسون في عام 1979 هي Bourne Shell (sh) ، وليس BASH. Bourne Shell (sh) الأصلي ليس هو نفسه BASH. لم يصل BASH حتى 1989 مع مشروع GNU. (https://en.wikipedia.org/wiki/Bourne_shell)

  • بادبانانا يونيو 6، 2019 في 3: 28 صباحا

    باستثناء الأمر "z filepath" ، كل شيء آخر متاح في bash.

    أيقظني عندما يكون هناك بديل حقيقي لباش.

  • روبرت اكستن يونيو 6، 2019 في 7: 29 مساء

    عدة أخطاء في درس التاريخ.

    لم يتم إطلاق Bash بالتأكيد في عام 1977. كما لاحظ آخرون ، لقد خلطت بين Bash و Bourne shell (ليس نفس الشيء). كانت قذيفة بورن التي تم إصدارها باستخدام Research UNIX. لم يتم ذكر Bash مطلقًا في بيئة برمجة UNIX ؛ تم نشر هذا الكتاب قبل 5 سنوات من ترميز باش.

    ملاحظة حول الأمان:

    ما هو تأكيدك على أن Zsh تقدم أمانًا أفضل بناءً على ذلك؟ كما ذكرت ، كان لدى Bash ثغرة أمنية غير مكتشفة لسنوات ، ولكن ما الذي يجعلك تعتقد أن Zsh ليس لديه ثغرات أمنية غير مكتشفة؟ لا أعتقد أنك قدمت أي أسباب وجيهة تجعل Zsh أكثر أمانًا من Bash.

  • كيت ابنتير يونيو 7، 2019 في 12: 08 صباحا

    بالتأكيد لم يتم إصدار Bash مع الإصدار 7 Unix. Bash هو أحد مشاريع GNU وتم إصداره لأول مرة في عام 1989.

  • عياض يونيو 9، 2019 في 10: 27 مساء

    ما هو موضوع اللون المستخدم في powerlevel9k؟

  • كريستال لي يونيو 21، 2019 في 8: 15 مساء

    شكرا لك على ملاحظاتك البناءة على هذا المنشور. تم تحديث المنشور ليعكس تعليقك.

  • كريستال لي يونيو 21، 2019 في 8: 16 مساء

    شكرا لتوضيح هذا الخطأ ، تريكس فارار. تم تحديث المنشور ليعكس تعليقك.

  • كريستال لي يونيو 21، 2019 في 8: 18 مساء

    شكرًا لك كريس على رؤيتك المفيدة حول باش ومشاركة مخاوفك. تم تحديث المنشور لتقديم bash و zsh بشكل أكثر دقة بناءً على تعليقك.

  • كريستال لي يونيو 21، 2019 في 8: 19 مساء

    شكرًا لك على توضيح هذا الخطأ ، بيتر بيرش. تم تحديث المنشور ليعكس تعليقك.

  • كريستال لي يونيو 21، 2019 في 8: 20 مساء

    شكرًا لك على الإشارة إلى هذا الخطأ ومشاركة مخاوفك مع المنشور ، روبرت Eksten. تم تحديث المنشور ليعكس تعليقك.

  • كريستال لي يونيو 21، 2019 في 8: 21 مساء

    شكرًا لك على توضيح هذا الخطأ يا كيت إيبنتير. تم تحديث المنشور ليعكس تعليقك.

  • كريستال لي يونيو 21، 2019 في 8: 22 مساء

    شكرا لك على ردود الفعل الإيجابية ، بيت! تم تحديث المنشور مؤخرًا ليعكس أيضًا هذا الإعلان الجديد بخصوص macOS Catalina.

  • أنجيلو فريزينا أكتوبر 11، 2019 في 6: 13 مساء

    ربما يمكن أن تقدم هذه المقالة بعض المساعدة؟
    https://github.com/Powerlevel9k/powerlevel9k/wiki/Show-Off-Your-Config

  • ROBER أكتوبر 19، 2019 في 9: 32 مساء

    هاها فقط استمتع بقراءة التعليقات ... نظرًا لأن جميع أدوات يونكس موجودة منذ ما يقرب من 40 عامًا ، فإن كل واحدة منها هي أسلوب حياة وليست أداة بسيطة. أنا متأكد من أنه يمكنك حتى نقل DOOM إلى bash أو ZSH أو SendMail أو Vi.

  • أنجيلو فريزينا أكتوبر 19، 2019 في 10: 02 مساء

    نعم ، هذه نقطة جيدة يا روبرت. شكرا لتقاسم أفكارك.

  • fsc137 فبراير 21، 2020 في 8: 52 مساء

    على الأقل لا يجعلون tcsh هو الخيار الافتراضي.
    كان من الأفضل لشركة آبل ألا تجعل باش غير متاح.

  • توم نوفمبر 3، 2021 في 12: 59 مساء

    لم يتم ذكر أحد الاختلافات الرئيسية بين bash و zsh هنا. إنها الطريقة التي يتم بها الاحتفاظ بسجل الأوامر.
    عندما يكون لديك العديد من الأوامر المفتوحة في bash ، يتم تسجيل الأوامر التي تم كتابتها في أول فتح في ملف المحفوظات (.bash_history) ، والذي تتم كتابته فقط على القرص بمجرد إنهاء الصدفة الأولى. (من فضلك صححني إذا كنت مخطئا هنا.)
    بمعنى آخر ، لن يتم تسجيل الأوامر المكتوبة في bash الثاني.
    يسجل zsh جميع الأوامر على جميع ملفات zsh المفتوحة إلى ملف المحفوظات (.zsh_history) جنبًا إلى جنب مع طابع زمني.
    هذه محاسبة مناسبة! 😉

    هذا و "الألوان الفاخرة" (أنا أستخدم oh_my_zsh :-D) كانت الأسباب التي دفعتني للتحويل.

  • أنجيلو فريزينا نوفمبر 4، 2021 في 6: 00 مساء

    شكرا على ملاحظاتك!