16

Я знаю, что могу установить "Оболочки открытыми" в настройках терминала, но мне любопытно, есть ли какой-либо общесистемный способ установки этого (аналогично обновлению /etc /passwd в некоторых Unixes).

4 ответа4

22

Используйте утилиту chsh следующим образом:

chsh -s bash

Apple немного изменила chsh в Mac OS X по сравнению с chsh вы видите в Linux, например. Вы можете прочитать их на странице chsh Mac OS X Man.

16

Обратите внимание, что вам будет разрешено перейти только на оболочку, указанную в /etc/shells . Обычно это нормально, но это означает, что если вы хотите установить Bash 4 (из Homebrew, MacPorts или самостоятельно), вам нужно добавить строку в /etc/shells . (Я столкнулся с этим несколько недель назад и подумал, что это может помочь другим узнать ...)

Редактировать: Тим Смит указывает, что вы можете обойти ограничение /etc/shells если вы запустите chsh от имени root через sudo . Например, sudo chsh -s /usr/local/bin/my_shell $USER будет работать, даже если my_shell не указан в /etc/shells . Я предпочитаю редактировать /etc/shells , но в конце концов, это один из способов использования sudo так как вы не можете редактировать /etc/shells как обычный пользователь. Так что, возможно, шесть из одного, полдюжины из другого.

10

Чтобы сделать это с помощью Mac OS X GUI:

  1. Откройте «Системные настройки».
  2. Откройте панель настроек «Аккаунты» /«Пользователи и группы» и разблокируйте панель настроек, если это применимо.
  3. На пользователя, которого вы хотите изменить оболочку, удерживая нажатой клавишу « Control»+ щелкните или щелкните правой кнопкой мыши на пользователе и выберите «Дополнительные параметры ...»
  4. Там, где написано «Login Shell:», измените его на оболочку, которую вы хотите использовать.

Следует отметить, что это место, где вы можете изменить свой домашний каталог, UUID, ID пользователя, ID группы и короткое имя, если вам не нравится терминал. Существует аналогичный вопрос здесь находится также.

4

Используя ответы выше, я получил сообщение об ошибке:

$ chsh -s zsh
Changing shell for myuser.
Password for myuser:
chsh: zsh: non-standard shell

Чтобы обойти это:

sudo chsh -s zsh $(whoami)

whoami в подоболочке - это изменение оболочки для вашего пользователя, а не рута.

Еще одна вещь, если вы используете доморощенный. Когда вы запускаете команды от имени пользователя root (используя sudo), zsh указывает на /bin /zsh, который поставляется с OSX и может быть устаревшим. Чтобы использовать последнюю версию, установленную с помощью homebrew, используйте следующее:

sudo chsh -s $(which zsh) $(whoami)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .