Как изменить оболочку входа в Mac OS X с bash на zsh?


90

Я пытаюсь изменить Войти скорлупа Mac OS X от bashдо zsh. Я вижу, что это возможно в Mac OS X Leopard , но для OS X Lion я не могу найти способ. Я действительно надеюсь, что можно изменить оболочку входа с bash на что-то другое. Я не совсем уверен, где искать.


После смены оболочки на zsh мне все равно пришлось запускать zsh вручную. Выход из системы не помог. Затем я изменил zsh на верхнюю оболочку входа в систему. Выйти из системы и там это было.

1
Если ничего другого, вы всегда можете изменить .bashrc, чтобы найти и выполнить zsh. if [ -x /usr/local/bin/zsh ] ; then exec /usr/local/bin/zsh fi, Подсказка, при изменении сценариев запуска оболочки, убедитесь, что оболочка запущена и запустите новую в другом окне - если вы сломаете ее, у вас все еще будет простое место для ее исправления.
— Дэн Притц

Ответы:


101

Вы можете изменить пользовательскую оболочку с помощью следующей команды:

chsh -s /bin/zsh

Примечание: чтобы изменить его для нестандартной оболочки, убедитесь, что его путь был добавлен в /etc/shellsфайл.


4
Я установил более новую версию Zsh с Homebrew, который вставил Zsh /usr/local/bin/zsh. К сожалению, chsh не позволяет этого сказать chsh: /usr/local/bin/zsh: non-standard shell. Ответ Даниэля Бека является подходящим решением в этом случае.
— adam_0

43
Если у вас возникают проблемы с нестандартными оболочками, я думаю, вы должны быть в состоянии добавить /usr/local/bin/zshк ним, /etc/shellsи это должно решить эту проблему.
— Майк Майерс

13
Информация по установке homebrew zsh действительно рекомендует добавить ее в / etc / shells: ==> Caveats To use this build of Zsh as your login shell, add it to /etc/shells.
— George

Иногда не работает Ответ @
— Фрэнка

1
@Awesome_girl По умолчанию /etc/shellsпринадлежит и доступен для записи только пользователю root (суперпользователь). Вы можете, например, использовать sudo vi /etc/shellsдля использования sudo( s uper u ser do ), чтобы запустить viредактор для редактирования /etc/shells. Я только что проверил свою систему и подтвердил, что она НЕ защищена Системной защитой целостности, поэтому вы должны иметь возможность редактировать ее как root, не перепрыгивая через обручи, чтобы отключить SIP.
— Spiff

54

Как ни странно, тот же метод, на который вы ссылаетесь в своем вопросе, все еще работает в OS X Lion через Sierra (10.12). Единственное отличие: панель настроек называется « Пользователи и группы», а не « Учетные записи» .

  1. Откройте «Системные настройки» → «Пользователи и группы».
  2. Если значок замка уже не разблокирован, нажмите значок замка и выполните аутентификацию.
  3. Нажмите Controlправой кнопкой мыши на пользователя в списке имен пользователей (удерживайте нажатой клавишу во время щелчка или щелкните правой кнопкой мыши с двумя кнопками).
  4. В контекстном меню выберите «Дополнительные параметры…».
  5. Выберите «Оболочка входа» в появившемся листе.

В примечании в верхней части экрана «Дополнительные параметры» утверждается, что вам нужно перезагрузить компьютер, чтобы изменения вступили в силу, но на самом деле вам просто нужно выйти и снова войти в систему.

введите описание изображения здесь


1
Подтвердили, что это работает в Mountain Lion, а также работает с «нестандартными оболочками», которые вы можете установить самостоятельно (или установить Homebrew).
— adam_0

2
Подтверждено, что все еще работает в 10.10 Йосемити.
— ecnepsnai

4
щелкните правой кнопкой мыши на имени пользователя, чтобы вызвать меню, содержащее «дополнительные параметры». Это заняло у меня пару минут, чтобы найти.
— pdwalker

1
Зачем заставлять кого-то уходить за пределы площадки, чтобы собрать всю информацию, прежде чем сможет ответить? Отсюда и комментарий в случае, если кто-то еще делает то же самое предположение, что ответ здесь, а не здесь и там.
— pdwalker

1
@jvriesem На самом деле это так. Я думаю, вы пропустили шаг 2.
— Даниэль Бек

11

Или же:

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

3
Можете ли вы объяснить, почему это отвечает на вопрос?
— ChrisF

Обязательно запустите это после brew install zsh .
— Запах

3
Кроме того, будьте осторожны, чтобы путь zsh, установленный через homebrew, был другим. Я делаю это так:sudo dscl . change /users/$USER UserShell /bin/bash $(which zsh)
— metakermit

1
ВНИМАНИЕ: Это сломает вашу оболочку, если вы скопируете / вставите ее без предварительной проверки пути zsh. Делай то, что сказал метакермит вместо этого.
— radixhound

1

Если кто-то задается вопросом, такая же проблема возникает в macOS Sierra, и следующая команда позволила мне без проблем изменить оболочку:

chpass -s /usr/local/bin/zsh

1
Это дублирует другой ответ и не добавляет новый контент. Пожалуйста, не публикуйте ответ, если у вас нет чего-то нового. "chfn и chsh - синонимы для chpass."
— DavidPostill
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.