Запуск

Обычно Zsh указывают в качестве интерактивной оболочки для входа в систему. Но, кроме этого, Zsh можно запускать и отдельно, с разными ключами, определяющими его поведение. Например, ключ -r заставляет Zsh работать в «ограниченном» (restricted) режиме, ключ -c указывает откуда читать команды для выполнения, а ключ -i заставляет работать в интерактивном режиме.

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

При запуске Zsh старается эмулировать sh или Ksh в зависимости от того, под каким именем его запустили. В режиме эмуляции не исполняются обычные скрипты инициализации и завершения работы Zsh. Для инициализации используются файлы /etc/profile и $HOME/.profile

Файлы, используемые при запуске

При запуске Zsh читается некоторое количество файлов, содержащих команды инициализации. В первую очередь читается файл /etc/zshenv, затем читается файл $ZDOTDIR/.zshenv. Затем, если запускаемый процесс используется для входа в систему, то читаются файлы /etc/zprofile и $ZDOTDIR/.zprofile. Затем, если оболочка является интерактивной, читаются файлы /etc/zshrc и $ZDOTDIR/.zshrc. И наконец, если процесс используется для входа в систему, то читаются файлы /etc/zlogin и $ZDOTDIR/.zlogin.

Когда происходит выход из оболочки, использовавшейся для входа в систему, то читаются файлы $ZDOTDIR/.zlogout и затем /etc/zlogout.

Если переменная ZDOTDIR не установлена, то вместо нее используется значение переменной HOME. Файл /etc/zshenv читается при запуске любого процесса Zsh, поэтому он должен быть настолько малым, насколько это возможно.

Все перечисленные файлы могут быть откомпилированы с помощью команд zcompile, что позволяет их загружать быстрее. Откомпилированные файлы имеют расширение .zwc, и загружаются в том случае, если они новее исходного файла.