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