الصفحة الرئيسية » howto » ما الفرق بين Bash و Zsh و Shell Linux الأخرى؟

    ما الفرق بين Bash و Zsh و Shell Linux الأخرى؟

    تشتمل معظم توزيعات Linux على shell bash افتراضيًا ، ولكن يمكنك أيضًا التبديل إلى بيئة shell أخرى. Zsh هو بديل شائع بشكل خاص ، وهناك قذائف أخرى ، مثل الرماد ، واندفاع ، والأسماك ، و tcsh. لكن ما الفرق ، ولماذا يوجد الكثير?

    ماذا تفعل القذائف?

    عند تسجيل الدخول في سطر الأوامر أو تشغيل نافذة طرفية على Linux ، يقوم النظام بتشغيل برنامج shell. تقدم Shells طريقة قياسية لتوسيع بيئة سطر الأوامر. يمكنك استبدال الغطاء الافتراضي بآخر ، إذا أردت.

    كانت بيئة shell الأولى هي Shell Thompson ، التي تم تطويرها في مختبرات Bell وتم إصدارها في عام 1971. وقد تم بناء بيئات Shell على هذا المفهوم منذ ذلك الحين ، مما أدى إلى إضافة مجموعة متنوعة من الميزات الجديدة والوظائف وتحسينات السرعة.

    على سبيل المثال ، تقدم Bash إكمال اسم الملف واسمه ، وميزات البرمجة المتقدمة ، وسجل الأوامر ، والألوان القابلة للتهيئة ، والأسماء المستعارة للأوامر ، ومجموعة متنوعة من الميزات الأخرى التي لم تكن متاحة في عام 1971 عندما تم إطلاق أول غلاف..

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

    الأصدارات تؤدي إلى Bash: sh و csh و tsh و ksh

    السلف الأبرز من الأصداف الحديثة هو قشرة بورن - المعروفة أيضًا باسم "sh" - والتي سميت باسم خالقها ستيفن بورن الذي كان يعمل في مختبرات AT & T's Bell. صدر في عام 1979 ، وأصبح مترجم الأوامر الافتراضي في يونكس بسبب دعمه لاستبدال الأوامر ، الأنابيب ، المتغيرات ، اختبار الحالة ، والتكرار ، جنبا إلى جنب مع ميزات أخرى. لم تقدم الكثير من التخصيص للمستخدمين ، ولم تدعم مثل هذه التفاصيل الحديثة مثل الأسماء المستعارة ، وإكمال الأوامر ، ووظائف shell (على الرغم من أن هذا الأخير قد أضيف في النهاية).

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

    وبمرور الوقت ، قام الكثير من الأشخاص بإصلاح الخلل في الميزات C المضافة وإضافتها إلى C ، وبلغت ذروتها في نسخة محسنة من csh تعرف باسم "tcsh". ولكن csh كان لا يزال الافتراضي في أجهزة الكمبيوتر المستندة إلى Unix ، وقد أضاف بعض الميزات غير القياسية. عمل ديفيد كورن من Bell Labs في KornShell ، أو "ksh" ، التي حاولت تحسين الوضع من خلال كونها متوافقة عكسياً مع لغة Bourne shell ولكنها أضافت العديد من الميزات من shell csh. صدر في عام 1983 ، ولكن بموجب ترخيص الملكية. لم يكن البرنامج مجانيًا حتى عام 2000 ، عندما تم إصداره بموجب تراخيص مفتوحة المصدر.

    ولادة باش

    كانت واجهة نظام التشغيل المحمول لـ Unix أو POSIX استجابة أخرى لعمليات تطبيق csh المحمومة الملكية. لقد نجحت في إنشاء معيار لتفسير الأوامر (من بين أشياء أخرى) وعكست في النهاية الكثير من الميزات في KornShell. في الوقت نفسه ، كان مشروع جنو يحاول إنشاء نظام تشغيل مجاني متوافق مع يونكس. طور مشروع جنو غلافًا حرًا من البرمجيات ليكون جزءًا من نظام التشغيل الحر وسماه "Bourne Again Shell" أو "bash".

    لقد تم تحسين باش في العقود منذ إصداره الأول في عام 1989 ، لكنه لا يزال هو الغلاف الافتراضي لمعظم توزيعات لينكس اليوم. إنها أيضًا هي القشرة الافتراضية على MacOS من Apple ، وهي متوفرة للتثبيت على Windows 10 من Microsoft.

    قذائف أحدث: الرماد ، اندفاعة ، زش ، والأسماك

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

    أنشأ Kenneth Almquist استنساخ قشرة Bourne المعروف باسم Shell Almquish أو Shell أو "ash" أو أحيانًا "sh". كان أيضا POSIX متوافق وأصبح شل الافتراضي في BSD ، فرع مختلف من يونيكس. تتميز طبقة الرماد بخفة الوزن أكثر من الباش ، مما يجعلها شائعة في أنظمة Linux المدمجة. إذا كان لديك هاتف Android متجذر مع BusyBox مثبتًا أو أي جهاز آخر مع مجموعة البرامج BusyBox ، فإنه يستخدم رمزًا من الرماد.

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

    واحدة من قذائف الأحدث الأكثر شعبية هي Z shell ، أو "zsh". تم إنشاؤها بواسطة بول فالستاد في عام 1990 ، وهي عبارة عن غلاف على نمط Bourne يحتوي على الميزات التي ستجدها في bash ، بالإضافة إلى المزيد. على سبيل المثال ، يحتوي zsh على التدقيق الإملائي ، والقدرة على مراقبة تسجيلات الدخول / logouts ، وبعض ميزات البرمجة المضمنة مثل bytecode ، ودعم التدوين العلمي في بناء الجملة ، والسماح للحساب العائم ، والمزيد من الميزات.

    ومن بين الأصداف الأحدث هي Shell Interactive Friendly Shell ، أو "fish" ، الذي تم إصداره في عام 2005. وهو يحتوي على صيغة سطر أوامر فريدة صممت لتكون أسهل قليلاً في التعلم ، ولكنها غير مشتقة إما من قشرة Bourne أو C shell. إنها فكرة مثيرة للاهتمام ، ولكن ما تتعلمه من خلال استخدام الأسماك لن يساعد بالضرورة في استخدام bash والأصداف الأخرى المشتقة من Bourne.

    التي يجب أن تختار؟ (ولماذا Zsh شعبية)

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

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

    تقريبا كل قذيفة ستواجهها بورن وتعمل بشكل مشابه-بما في ذلك zsh.

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

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

    "Oh My ZSH" هي أداة تساعدك على تمكين المكونات الإضافية zsh بسهولة والتبديل بين مظاهر البادئة ، بسرعة تخصيص غلاف zsh الخاص بك دون قضاء ساعات التغيير والتبديل في الأمور.

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

    كيفية التبديل بين القذائف

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

    على سبيل المثال ، لنفترض أنك تريد تجربة zsh على Ubuntu. يمكنك تشغيل الأوامر التالية للتثبيت ثم تشغيلها:

    sudo apt install zsh zsh

    كنت بعد ذلك يجلس في قذيفة زش. نوع " ىخرج "في الصدفة لتركها والعودة إلى صدرك الحالي.

    هذا مؤقت فقط عند فتح نافذة طرفية جديدة أو تسجيل الدخول إلى النظام الخاص بك في سطر الأوامر ، سترى shell الافتراضي الخاص بك. لتغيير الصدفة التي تشاهدها عند تسجيل الدخول المعروف باسم shell الخاص بك ، يمكنك استخدام chsh , أو "تغيير شل" ، الأمر.

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

    الذي zsh

    على Ubuntu ، يخبرنا هذا أن zsh ثنائي مخزّن في / usr / bin / zsh.

    قم بتشغيل الأمر التالي ، أدخل كلمة المرور الخاصة بك ، وستتم مطالبتك باختيار shell تسجيل دخول جديد:

    chsh

    وفقا للأمر أعلاه ، سوف ندخل / البيرة / بن / zsh . شل زش سوف يكون لدينا الافتراضي حتى ركضنا chsh الأمر وتغييرها مرة أخرى.