Использование оболочки zsh в качестве оболочки по умолчанию на компьютере Mac
Начиная с macOS Catalina, в компьютерах Mac используется оболочка zsh в качестве оболочки входа в систему и интерактивной оболочки по умолчанию. Оболочку zsh можно использовать по умолчанию и в более ранних версиях macOS.
По умолчанию в качестве командного интерпретатора для оболочки входа в систему и интерактивной оболочки на компьютере Mac используется оболочка zsh или bash.
zsh (Z shell) — оболочка по умолчанию для всех новых учетных записей, начиная с macOS Catalina.
bash — это стандартная оболочка в ОС macOS Mojave и более ранних версий.
Оболочка zsh хорошо совместима с оболочкой Bourne (sh) и по большей части совместима с оболочкой bash, но с некоторыми отличиями. Чтобы узнать больше об оболочке zsh и ее универсальной системе набора команд для командной строки, введите запрос man zsh
в приложении «Терминал».
Изменение оболочки по умолчанию
Независимо от того, какая оболочка используется в учетной записи пользователя — zsh (рекомендовано), bash или другая, — оболочку по умолчанию можно изменить в командной строке или в настройках «Пользователи и группы».
В командной строке
В приложении «Терминал» введите команду $ chsh -s path
, где path — один из путей оболочки, перечисленных в файле /etc/shells, например /bin/zsh, /bin/bash, /bin/csh, /bin/dash, /bin/ksh, /bin/sh или /bin/tcsh.
В настройках «Пользователи и группы»
В macOS Ventura и более поздних версий:
Перейдите в меню Apple > «Системные настройки» и выберите «Пользователи и группы» в боковом меню.
Удерживая клавишу Control, нажмите имя или картинку пользователя в списке пользователей в правой части экрана, затем выберите «Дополнительные параметры».
При появлении запроса введите имя пользователя и пароль.
Выберите оболочку в меню «Оболочка входа», затем нажмите «ОК», чтобы сохранить изменения.
В более ранних версиях macOS:
Перейдите в меню Apple > «Системные настройки» и нажмите «Пользователи и группы».
Нажмите
и введите имя пользователя и пароль.Удерживая клавишу Control, нажмите имя пользователя в списке пользователей в левой части экрана, затем выберите «Дополнительные параметры».
Выберите оболочку в меню «Оболочка входа», затем нажмите «ОК», чтобы сохранить изменения.
Использование другой оболочки без изменения оболочки по умолчанию
Если вы не хотите, чтобы в новых окнах и вкладках приложения «Терминал» использовалась оболочка входа в систему по умолчанию, выполните следующие действия.
Откройте приложение «Терминал», затем выберите «Терминал» > «Настройки».
На вкладке «Основные» выберите пункт «Командой (полный путь)».
В соседнем поле введите один из путей оболочки, перечисленных в файле /etc/shells, например /bin/zsh, /bin/bash, /bin/csh, /bin/dash, /bin/ksh, /bin/sh или /bin/tcsh.
При вызове оболочки bash, когда macOS настроена на использование другой оболочки, появится сообщение о том, что интерактивной оболочкой по умолчанию теперь является zsh. Чтобы отключить это предупреждение, можно добавить следующую команду в файл ~/.bash_profile или ~/.profile.
export BASH_SILENCE_DEPRECATION_WARNING=1
Переключение на профиль zsh и командную строку
Если используется профиль bash, например для установки переменных среды, псевдонимов или переменных пути, следует переключиться на использование эквивалента zsh. Например:
.zprofile — эквивалент профиля .bash_profile, который запускается при входе в систему, в том числе при использовании протокола SSH.
.zshrc — эквивалент .bashrc, который запускается каждый раз при открытии новой сессии в приложении «Терминал».
Если используется профиль .profile (профиль, совместимый со стандартом POSIX), добавив следующую команду в файл .zprofile, можно добиться того, что оболочка zsh будет автоматически считывать настройки профиля:
[[ -e ~/.profile ]] && emulate sh -c 'source ~/.profile'
Некоторые настройки из профиля bash также можно перенести без изменений в профиль zsh. Например, чтобы установить переменные среды: export MY_SETTING=1
.
Оболочка zsh распознает набор спецификаторов командной строки, отличный от распознаваемого bash, и имеет более четкий синтаксис для задания подсветки выводимых данных. Таким образом исключается необходимость использования сложных управляющих последовательностей ANSI. Например, ниже представлена синтаксическая конструкция для стандартной командной строки bash в профиле .bash_profile:
export PS1="\[\e[92;40m\]\h\[\e[m\]:\[\e[93m\]\W\[\e[m\] \\$ "
Для преобразования данной командной строки bash в zsh при использовании .zprofile или .zshrc применяется следующая команда:
export PS1="%10F%m%f:%11F%1~%f \$ "
Для получения более подробной информации см. руководство по оболочке zsh.
Проверка скриптов оболочки
Чтобы в macOS Catalina или более поздней версии проверить совместимость скриптов и оболочек, совместимых с Bourne, можно изменить папку /var/select/sh на /bin/bash, /bin/dash или /bin/zsh. Если /var/select/sh меняется на оболочку, отличную от bash, учтите, что скрипты, использующие команды, специфичные для оболочки bash, могут работать неправильно.
При выполнении команды zsh --emulate sh
оболочка zsh может работать в режиме эмуляции sh.
Информация о продуктах, произведенных не компанией Apple, или о независимых веб-сайтах, неподконтрольных и не тестируемых компанией Apple, не носит рекомендательного или одобрительного характера. Компания Apple не несет никакой ответственности за выбор, функциональность и использование веб-сайтов или продукции сторонних производителей. Компания Apple также не несет ответственности за точность или достоверность данных, размещенных на веб-сайтах сторонних производителей. Обратитесь к поставщику за дополнительной информацией.