استخدام zsh كمكوّن Shell الافتراضي على Mac

بدءًا من الإصدار macOS Catalina، فإن Mac يستخدم zsh باعتباره مكوّن Shell الافتراضي الخاص بالدخول ومكوّن Shell التفاعلي. ويمكنك تعيين zsh كمكوّن افتراضي للإصدارات الأقدم من macOS أيضًا.

بشكل افتراضي، يستخدم Mac إما zsh أو bash كمترجم لسطر الأوامر لمكوّن Shell الخاص بالدخول ومكوّن Shell التفاعلي:

  • يُعدّ zsh‏‎ ‏(Z shell) مكوّن Shell الافتراضي لجميع حسابات المستخدمين التي تم إنشاؤها مؤخرًا، وذلك بدءًا من macOS Catalina.

  • يُعدّ bash مكوّن Shell الافتراضي في macOS Mojave والإصدارات الأقدم.

zsh متوافق بشدة مع ‎Bourne shell (sh)‎ ومتوافق في الغالب مع bash، ولكن مع وجود بعض الاختلافات. ولمعرفة المزيد عن zsh ونظام إكمال سطر الأوامر الشامل، أدخل man zsh في "الوحدة الطرفية".

كيفية تغيير مكوّن Shell الافتراضي

سواء تم تكوين حساب المستخدم على استخدام zsh (موصى به) أو bash أو مكوّن Shell آخر، يمكنك تغيير مكوّن Shell الافتراضي من سطر الأوامر أو إعدادات المستخدمين والمجموعات.

من سطر الأوامر

في "الوحدة الطرفية"، أدخل $ chsh -s path، حيث يكون المسار أحد مسارات shell المدرجة في /etc/shells، مثل /bin/zsh أو /bin/bash أو /bin/csh أو /bin/dash أو /bin/ksh أو /bin/sh أو /bin/tcsh.

من إعدادات المستخدمين والمجموعات

في macOS Ventura أو الأحدث:

  1. اختر قائمة Apple  > إعدادات النظام، ثم انقر فوق "المستخدمين والمجموعات" في الشريط الجانبي.

  2. انقر مع الضغط على مفتاح التحكم على اسم المستخدم أو صورة المستخدم في قائمة المستخدمين على اليسار، ثم اختر خيارات متقدمة.

  3. أدخل اسم المستخدم وكلمة السر عندما يُطلب منك ذلك.

  4. اختر مكوّن Shell من قائمة "مكوّن Shell الخاص بالدخول"، ثم انقر على "موافق" لحفظ التغييرات.

في الإصدارات السابقة من macOS:

  1. اختر قائمة Apple‏  > "تفضيلات النظام"، ثم انقر على "المستخدمون والمجموعات".

  2. انقر على القفلNo alt supplied for Image، ثم أدخل اسم المستخدم وكلمة السر.

  3. انقر على اسم المستخدم مع الضغط على مفتاح التحكم في قائمة المستخدمين على الجانب الأيمن، ثم اختر "خيارات متقدمة".

  4. اختر مكوّن Shell من قائمة "مكوّن Shell الخاص بالدخول"، ثم انقر على "موافق" لحفظ التغييرات.

كيفية استخدام مكوّن Shell دون تغيير المكوّن الافتراضي

إذا كنت لا ترغب في استخدام "الوحدة الطرفية" لمكوّن Shell الافتراضي الخاص بالدخول في نوافذ وعلامات تبويب "الوحدة الطرفية" الجديدة:

  1. افتح "الوحدة الطرفية"، ثم اختر "إعدادات الوحدة الطرفية" (أو تفضيلات).

  2. من القسم "عام"، اختر "أمر (مسار كامل)."

  3. في الحقل المجاور، أدخل أحد مسارات Shell المدرجة في ‎/etc/shells، مثل ‎/bin/zsh أو ‎/bin/bash أو ‎/bin/csh أو ‎/bin/dash أو ‎/bin/ksh أو ‎/bin/sh أو ‎/bin/tcsh.

إذا قمت باستدعاء مكوّن bash shell أثناء تكوين macOS على استخدام مكوّن Shell آخر، فستظهر رسالة تفيد بأن مكوّن Shell التفاعلي الافتراضي هو zsh الآن. وللتخلص من هذا التنبيه، يمكنك إضافة هذا الأمر إلى ‎~/.bash_profile‎ أو ‎~/.profile‎:

تصدير BASH_SILENCE_DEPRECATION_WARNING=1

كيفية التبديل إلى مطالبة وملف تعريف zsh

إذا كنت تستخدم ملف تعريف bash لتعيين متغيرات البيئة أو الأسماء المستعارة أو متغيرات المسار مثلاً، ينبغي التبديل إلى استخدام مكافئ لـ zsh. على سبيل المثال:

  • .zprofile هو مكافئ .bash_profile ويتم تشغيله عند تسجيل الدخول، وله الأولوية على SSH

  • .zshrc هو مكافئ .bashrc ويتم تشغيله مع كل جلسة جديدة في "الوحدة الطرفية"

إذا كنت تستخدم .profile (ملف تعريف متوافق مع POSIX)، يمكنك ضبط zsh على قراءة إعداداته تلقائيًا عن طريق إضافة هذا الأمر إلى .zprofile:

[[ -e ~/.profile ]] && emulate sh -c 'source ~/.profile'

ويمكنك أيضًا نقل بعض الإعدادات من ملف تعريف bash إلى ملف تعريف zsh دون إجراء تعديل. على سبيل المثال، لتعيين متغيرات البيئة: قم بتصدير MY_SETTING=1.

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

قم بتصدير PS1="\[\e[92;40m\]\h\[\e[m\]:\[\e[93m\]\W\[\e[m\] \\$ "

لتحويل مطالبة bash إلى مطالبة zsh عند استخدام .zprofile أو .zshrc:

قم بتصدير PS1="%10F%m%f:%11F%1~%f \$ "

لمزيد من التفاصيل، راجع الصفحة الرئيسة لـ zsh.

كيفية اختبار البرامج النصية لمكوّن Shell

لاختبار توافق البرنامج النصي مع مكوّنات Shell المتوافقة مع Bourne في macOS Catalina أو إصدار أحدث، يمكنك تغيير ‎/var/select/sh إلى ‎/bin/bash أو ‎/bin/dash أو ‎/bin/zsh. وإذا قمت بتغيير ‎/var/select/sh إلى مكوّن Shell غير bash، فلاحظ أن البرامج النصية التي تستخدم bash قد لا تعمل بشكل سليم.

يمكن ضبط zsh على محاكاة sh من خلال تنفيذ الأمر zsh --emulate sh.

يتم تقديم المعلومات حول المنتجات التي لم تُصنّعها Apple أو مواقع الويب المستقلة التي لا تخضع للمراقبة أو الاختبار من جانب Apple بدون توصيات أو موافقة. ولا تتحمّل Apple أية مسؤولية فيما يتعلق باختيار مواقع الويب والمنتجات التابعة لجهات خارجية أو أدائها أو استخدامها. ولا تُقدّم Apple أية ضمانات فيما يتعلق بدقة أو موثوقية مواقع الويب التابعة لجهات خارجية. اتصل بالبائع للحصول على المزيد من المعلومات.

تاريخ النشر: