Ответ 1
chsh -s $(which zsh)
Вам будет предложено ввести пароль, но как только вы обновите свои настройки, все новые сеансы iTerm/Terminal, которые вы начнете на этом компьютере, по умолчанию будут установлены на zsh.
Когда zsh устанавливается в качестве оболочки входа в Mac OS X, когда он запускается iTerm, zsh не считает, что он запускается как оболочка входа, хотя он начинался как '-zsh (' - помещается как первый символ arg [0]), который должен означать, что он должен начинаться как оболочка входа.
Итак, когда я устанавливаю оболочку входа в bash, bash распознает это первое '- в $0 и запускается как оболочка входа, но zsh не делает этого, хотя кажется, что он должен.
Есть ли способ заставить zsh распознать '- в arg [0] или заставить iTerm запустить оболочку с аргументом командной строки --login?
chsh -s $(which zsh)
Вам будет предложено ввести пароль, но как только вы обновите свои настройки, все новые сеансы iTerm/Terminal, которые вы начнете на этом компьютере, по умолчанию будут установлены на zsh.
В iTerm → Настройки → вкладка "Профили" → "Общий раздел". Команда:/bin/zsh --login
Перейдите в панель Пользователи и группы Системные настройки → Выберите пользователя → Щелкните блокировку, чтобы внести изменения (внизу левый угол) → щелкните правой кнопкой мыши текущего пользователя, выберите Дополнительные параметры... → Выберите оболочку для входа:/bin/zsh и ОК
Вы пробовали редактировать запись оболочки в настройках учетной записи.
Перейдите к настройкам учетных записей, разблокируйте и щелкните правой кнопкой мыши свою учетную запись для диалога "Дополнительные параметры". Ваша оболочка должна быть /bin/zsh, и вы можете соответствующим образом отредактировать этот вызов (т.е. Добавить аргумент --login).
Команда для изменения оболочки при запуске chsh -s <path_to_shell>
. По умолчанию оболочки в Mac OS X устанавливаются внутри каталога bin
, поэтому, если вы хотите изменить значение по умолчанию zsh
, вы должны использовать следующие
chsh -s /bin/zsh
Если вы используете другую версию zsh
, вам может потребоваться добавить эту версию в /etc/shells
, чтобы избежать сообщения нестандартной оболочки. Например, если вам нужна версия zsh
home- brew, тогда вы должны добавить /usr/local/bin/zsh
в вышеупомянутый файл, который вы можете сделать в одной команде sudo sh -c "echo '/usr/local/bin/zsh' >> /etc/shells"
, а затем запустите
chsh -s /usr/local/bin/zsh
Или, если вы хотите сделать все это в одной команде, просто скопируйте и вставьте это, если у вас уже установлен zsh
sudo sh -c "echo '/usr/local/bin/zsh' >> /etc/shells" && chsh -s /usr/local/bin/zsh
Используйте утилиту login
для создания оболочки входа. Предположим, что пользователь, к которому вы хотите войти, имеет имя пользователя Alice, и zsh устанавливается в /opt/local/bin/zsh
(например, более поздняя версия, установленная через MacPorts). В iTerm 2 перейдите в "Настройки", "Профили", выберите профиль, который вы хотите настроить, и введите команду "
login -pfq Alice /opt/local/bin/zsh
Подробнее о параметрах см. man login
.
Решение, которое сработало для меня, обрисовано в общих чертах в этом посте под названием: Используйте Homebrew zsh вместо OS X по умолчанию.
Решением было выполнить следующую команду в терминале
sudo dscl . -create /Users/$USER UserShell /usr/local/bin/zsh
Затем вы должны ввести свой пароль и вуаля.