zsh
我是和的新用户oh-my-zsh
。
在安装之前zsh
,oh-my-zsh
我将其配置~/.profile
为自动启动一些程序。例如,我的~/.profile
将guake
在 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 简介(强调我的)。
所以答案可能取决于您需要命令执行的操作。