سؤال كيفية تغيير Shell Login على نظام التشغيل Mac OS X من bash إلى zsh؟


أحاول تغيير Shell تسجيل الدخول لنظام التشغيل Mac OS X من bash إلى zsh. أنا أرى من الممكن في نظام التشغيل Mac OS X Leopardولكن بالنسبة لنظام التشغيل OS X Lion لا أستطيع العثور على طريقة. آمل حقا أنه من الممكن تغيير shell تسجيل الدخول من bash إلى شيء آخر. لست متأكدا بالضبط من أين تبحث عنه.


82
2017-11-28 21:34


الأصل


بعد تغيير shell إلى zsh ، كان لا يزال بإمكاني تشغيل zsh يدويًا. تسجيل الخروج لم يساعد. ثم قمت بتغيير zsh إلى shell تسجيل الدخول الأحدث. خرجت وكان هناك.
إذا لم يكن هناك أي شيء آخر ، فيمكنك دائمًا تعديل .bashrc للعثور على zsh و exec. if [ -x /usr/local/bin/zsh ] ; then exec /usr/local/bin/zsh fi. تلميح ، عند تعديل البرامج النصية لبدء تشغيل shell ، تأكد من تشغيل shell وبدء تشغيل واحد جديد في إطار آخر - إذا قمت بتفتيته فلا يزال لديك مكانًا سهلاً لإصلاحه. - Dan Pritts


الأجوبة:


يمكنك تغيير shell المستخدم عن طريق الأمر التالي:

chsh -s /bin/zsh

ملاحظة: لتغييرها في غلاف غير قياسي ، تأكد من إضافة مساره إلى /etc/shells ملف.


90
2017-11-28 21:38



لقد قمت بتثبيت إصدار أحدث من zsh مع Homebrew ، والذي وضع zsh فيه /usr/local/bin/zsh. للأسف ، لا يسمح chsh هذا ، قائلا chsh: /usr/local/bin/zsh: non-standard shell. جواب دانيال بيك هو الحل المناسب في هذه الحالة. - adam_0
إذا كنت تواجه مشاكل مع القذائف غير القياسية ، أعتقد أنه يجب أن تكون قادرًا على الإضافة /usr/local/bin/zsh إلى /etc/shells ويجب أن تحل هذه المشكلة. - Mike Meyers
إن معلومات تثبيت zh الخاصة بالبنزين في المنزل توصي فعليًا بإضافتها إلى / etc / shells: ==> Caveats To use this build of Zsh as your login shell, add it to /etc/shells. - George
لا يعمل في بعض الأحيان. @ الجواب صريح يضمن ذلك على الرغم من - oliverbarnes
Awesome_girl افتراضيًا ، /etc/shells مملوكة ، وصالحة للكتابة فقط ، الجذر (المتميز). يمكنك ، على سبيل المثال ، استخدام sudo vi /etc/shells ليستخدم sudo (الصورةUPER شسر فعل) لتشغيل vi محرر للتحرير /etc/shells. لقد اختبرت للتو على نظامي وأكدت أنه غير محمي بواسطة "سلامة تكامل النظام" ، لذا يجب أن تكون قادرًا على تحريره كجذر دون القفز عبر الأطواق لتعطيل SIP. - Spiff


ما يكفي من المتعة ، نفس الطريقة التي ترتبط بها في سؤالك ما يزال يعمل في OS X Lion عبر Sierra (10.12). الاختلاف الوحيد: يسمى جزء التفضيل المستخدمون والمجموعات بدلا من حسابات.

  1. افتح "تفضيلات النظام" → "المستخدمون والمجموعات".
  2. ما لم يتم إلغاء قفل رمز القفل بالفعل ، انقر فوق رمز القفل والمصادقة بنفسك.
  3. انقر فوق السياق على مستخدم في قائمة أسماء المستخدمين   (ابق على مراقبة أثناء النقر ، أو انقر بزر الماوس الأيمن على ماوس بزر الأيمن اثنين زر.
  4. في قائمة السياق ، اختر "خيارات متقدمة ...".
  5. اختر "تسجيل الدخول إلى shell" في الورقة التي تظهر.

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

enter image description here


48
2017-12-01 17:21



أكدت أن هذا يعمل في Mountain Lion ، بالإضافة إلى العمل مع "الأصداف غير القياسية" التي قد تقوم بتثبيتها بنفسك (أو تثبيت برنامج Homebrew). - adam_0
أكدت لا تزال تعمل في 10.10 يوسمايت. - ecnepsnai
انقر بزر الماوس الأيمن على اسم المستخدم لإظهار القائمة التي تحتوي على "خيارات متقدمة". استغرق ذلك مني بضع دقائق للعثور عليه. - pdwalker
لماذا يجبر شخص ما على الخروج من الموقع لجمع كل المعلومات قبل أن يتمكن من الإجابة؟ ومن هنا يأتي هذا التعليق في حال قام شخص آخر بنفس الافتراض بأن الإجابة هنا أكثر من هنا وهناك. - pdwalker
jvriesem في الواقع ، لا. تخميني هو أنك تخطي الخطوة 2. - Daniel Beck♦


أو:

sudo dscl . change /users/$USER UserShell /bin/bash $(which zsh)

10
2017-11-25 09:52



هل يمكن أن تشرح لماذا هذا يجيب على السؤال؟ - ChrisF
تأكد من تشغيل هذا بعد  brew install zsh. - mmell
أيضاً ، كن حذراً أن مسار zsh المثبتة عبر homebrew مختلف. أفعل ذلك على النحو التالي: sudo dscl . change /users/$USER UserShell /bin/bash $(which zsh) - metakermit
تحذير: هذا سوف يكسر shell الخاص بك إذا قمت بنسخ / لصقه دون التحقق من مسار zsh أولاً. هل ما قاله metakermit بدلا من ذلك. - radixhound


إذا كان أي شخص يتساءل نفس المشكلة يحدث على نظام التشغيل MacOS Sierra وسمح الأمر التالي لي بتغيير shell دون مشاكل:

chpass -s /usr/local/bin/zsh

1
2017-11-25 07:02



هذا تكرار إجابة أخرى ويضيف أي محتوى جديد. من فضلك لا نشر إجابة ما لم يكن لديك بالفعل شيء جديد للمساهمة. "chfn و chsh مترادفات لـ chpass". - DavidPostill♦