当我安装 zsh 和 oh-my-zsh 时,是否应该将自定义命令从 ~/.profile 末尾移动到 ~/.zprofile 末尾?

当我安装 zsh 和 oh-my-zsh 时,是否应该将自定义命令从 ~/.profile 末尾移动到 ~/.zprofile 末尾?

zsh我是和的新用户oh-my-zsh

在安装之前zshoh-my-zsh我将其配置~/.profile为自动启动一些程序。例如,我的~/.profileguake在 4 秒延迟后启动:

`sleep 4; guake&`&

现在我已经安装了zsh,如果我将添加到我的自定义命令~/.profile移动到我的自定义命令中,它们会具有相同的效果~/.zprofile吗?

将命令添加到~/.zshrc似乎与将它们添加到 具有类似的效果~/.bashrc

答案1

看这里:

首先从/etc/zshenv读取命令;这不能被覆盖。后续行为由 RCS 和 GLOBAL_RCS 选项修改;前者影响所有启动文件,而第二个仅影响全局启动文件(此处显示的路径以 / 开头)。如果在任何时候未设置其中一个选项,则将不会读取相应类型的任何后续启动文件。 $ZDOTDIR 中的文件也可以重新启用 GLOBAL_RCS。 RCS 和 GLOBAL_RCS 都是默认设置的。

然后从 $ZDOTDIR/.zshenv 读取命令。如果 shell 是登录 shell,则从 /etc/zprofile 读取命令,然后从 $ZDOTDIR/.zprofile 读取命令。然后,如果 shell 是交互式的,则先从 /etc/zshrc 读取命令,然后从 $ZDOTDIR/.zshrc 读取命令。最后,如果 shell 是登录 shell,则读取 /etc/zlogin 和 $ZDOTDIR/.zlogin

手册(强调我的),这里:

除非设置了 -f 选项,否则所有 shell 调用都会源自“.zshenv”。它应该包含设置命令搜索路径的命令,以及其他重要的环境变量。 “.zshenv”不应包含产生输出的命令或假设 shell 连接到 tty。

“.zshrc”源自交互式 shell。它应该包含设置别名、函数、选项、键绑定等的命令。

“.zlogin”源自登录 shell。它应该包含仅在登录 shell 中执行的命令。 '.zlogout' 在登录 shell 退出时获取。 “.zprofile”与“.zlogin”类似,只不过它是在“.zshrc”之前获取的。对于 ksh 粉丝来说,“.zprofile”是“.zlogin”的替代品;两者并不打算一起使用,尽管如果需要的话当然可以这样做。'.zlogin' 不是别名定义、选项、环境变量设置等的地方;一般来说,它根本不应该改变 shell 环境。相反,它应该用于设置终端类型并运行一系列外部命令(fortune、msgs 等)。

Zsh 简介(强调我的)。

所以答案可能取决于您需要命令执行的操作。

相关内容