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

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

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

Оболочка zsh хорошо совместима с оболочкой Bourne (sh) и по большей части совместима с оболочкой bash, но с некоторыми отличиями. Чтобы узнать больше об оболочке zsh и ее универсальной системе набора команд для командной строки, введите запрос man zsh в программе «Терминал».
  

Изменение оболочки по умолчанию

Независимо от того, какая оболочка используется в учетной записи пользователя — zsh (рекомендовано), bash или другая, — стандартную оболочку можно изменить в настройках «Пользователи и группы» или в командной строке.

В настройках «Пользователи и группы»

  1. Перейдите в меню Apple () > «Системные настройки» и откройте вкладку «Пользователи и группы». 
  2. Щелкните значок замка , затем введите имя и пароль учетной записи.
  3. Удерживая клавишу Control, щелкните имя пользователя в списке пользователей в левой части экрана, затем выберите «Дополнительные параметры». 
  4. Выберите оболочку в меню «Оболочка входа», затем нажмите ОК, чтобы сохранить изменения.

В командной строке

В программе «Терминал» введите команду $ chsh -s path, где path — один из путей оболочки, перечисленных в папке /etc/shells, например /bin/zsh, /bin/bash, /bin/csh, /bin/dash, /bin/ksh, /bin/sh или /bin/tcsh.
  

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

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

  1. Откройте программу «Терминал», затем выберите «Терминал» > «Настройки».
  2. В панели «Основные» выберите пункт «Командой (полный путь)». 
  3. В появившейся строке введите один из путей оболочки, перечисленных в папке /etc/shells, например /bin/zsh, /bin/bash, /bin/csh, /bin/dash, /bin/ksh, /bin/sh или /bin/tcsh.

При вызове оболочки bash, когда ОС macOS Catalina настроена на использование другой оболочки, появится сообщение о том, что интерактивной оболочкой по умолчанию теперь является 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 также не несет ответственности за точность или достоверность данных, размещенных на веб-сайтах сторонних производителей. Помните, что использование любых сведений или продуктов, размещенных в Интернете, сопровождается риском. За дополнительной информацией обращайтесь к поставщику. Другие названия компаний или продуктов могут быть товарными знаками соответствующих владельцев.

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