Обычно 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, и загружаются в том случае, если они
новее исходного файла.