Использование оболочки zsh в качестве оболочки по умолчанию на компьютере Mac

Начиная с macOS Catalina, в компьютерах Mac используется оболочка zsh в качестве оболочки входа в систему и интерактивной оболочки по умолчанию. Оболочку zsh можно использовать по умолчанию и в более ранних версиях macOS.

По умолчанию в качестве командного интерпретатора для оболочки входа в систему и интерактивной оболочки на компьютере Mac используется оболочка zsh или bash.

Оболочка 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 и более поздних версий:

  1. Перейдите в меню Apple  > «Системные настройки» и выберите «Пользователи и группы» в боковом меню.

  2. Удерживая клавишу Control, нажмите имя или картинку пользователя в списке пользователей в правой части экрана, затем выберите «Дополнительные параметры».

  3. При появлении запроса введите имя пользователя и пароль.

  4. Выберите оболочку в меню «Оболочка входа», затем нажмите «ОК», чтобы сохранить изменения.

В более ранних версиях macOS:

  1. Перейдите в меню Apple  > «Системные настройки» и нажмите «Пользователи и группы».

  2. Нажмите значок замкаАльтернативный текст для изображения отсутствует и введите имя пользователя и пароль.

  3. Удерживая клавишу Control, нажмите имя пользователя в списке пользователей в левой части экрана, затем выберите «Дополнительные параметры».

  4. Выберите оболочку в меню «Оболочка входа», затем нажмите «ОК», чтобы сохранить изменения.

Использование другой оболочки без изменения оболочки по умолчанию

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

  1. Откройте приложение «Терминал», затем выберите «Терминал» > «Настройки».

  2. На вкладке «Основные» выберите пункт «Командой (полный путь)».

  3. В соседнем поле введите один из путей оболочки, перечисленных в файле /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 также не несет ответственности за точность или достоверность данных, размещенных на веб-сайтах сторонних производителей. Обратитесь к поставщику за дополнительной информацией.

Дата публикации: