Nas páginas man:
STARTUP/SHUTDOWN FILES
Commands are first read from /etc/zshenv; this cannot be overridden. Subsequent be‐
haviour is modified by the RCS and GLOBAL_RCS options; the former affects all startup
files, while the second only affects global startup files (those shown here with an
path starting with a /). If one of the options is unset at any point, any subsequent
startup file(s) of the corresponding type will not be read. It is also possible for
a file in $ZDOTDIR to re-enable GLOBAL_RCS. Both RCS and GLOBAL_RCS are set by
default.
Commands are then read from $ZDOTDIR/.zshenv. If the shell is a login shell, com‐
mands are read from /etc/zprofile and then $ZDOTDIR/.zprofile. Then, if the shell is
interactive, commands are read from /etc/zshrc and then $ZDOTDIR/.zshrc. Finally, if
the shell is a login shell, /etc/zlogin and $ZDOTDIR/.zlogin are read.
When a login shell exits, the files $ZDOTDIR/.zlogout and then /etc/zlogout are read.
This happens with either an explicit exit via the exit or logout commands, or an
implicit exit by reading end-of-file from the terminal. However, if the shell termi‐
nates due to exec'ing another process, the logout files are not read. These are also
affected by the RCS and GLOBAL_RCS options. Note also that the RCS option affects
the saving of history files, i.e. if RCS is unset when the shell exits, no history
file will be saved.
If ZDOTDIR is unset, HOME is used instead. Files listed above as being in /etc may
be in another directory, depending on the installation.
As /etc/zshenv is run for all instances of zsh, it is important that it be kept as
small as possible. In particular, it is a good idea to put code that does not need
to be run for every single shell behind a test of the form 'if [[ -o rcs ]]; then
...' so that it will not be executed when zsh is invoked with the '-f' option.
então você deve ser capaz de definir a variável de ambiente ZDOTDIR
para um novo diretório para que o zsh procure por um conjunto diferente de dotfiles.
Como a página man sugere, RCS
e GLOBAL_RCS
não são caminhos para arquivos rc, já que você está tentando usá-los, mas sim opções que podem ser ativadas ou desativadas. Portanto, por exemplo, o sinalizador --rcs
ativará a opção RCS
, fazendo com que o zsh seja lido a partir de arquivos rc. Você pode usar os seguintes sinalizadores de linha de comando para zsh para habilitar ou desabilitar RCS
ou GLOBAL_RCS
:
--globalrcs
--rcs
-d equivalent to --no-globalrcs
-f equivalent to --no-rcs
Para responder à sua outra pergunta:
is it possible to start zsh, run "source /path/to/file", then stay in the same zsh session?
Sim, isso é muito fácil de acordo com as instruções acima. Basta executar zsh -d -f
e, em seguida, source /path/to/zshrc
.