真棒不认识PATH的变化


3

我使用zsh作为我的登录shell,lightdm作为登录管理器,并且作为窗口管理器很棒。

我改变了 PATH 在我的变量 ~/.zshrc 它可以在终端上运行,但很棒,它本身无法识别变量。我需要在哪里进行我可以使用的更改 PATH 太棒了?

我不想将一些PATH Stuff放入/etc/rc.local或类似的,因为它包含用户特定的文件夹。

Answers:


2

大概 lightdm 不执行交互式shell来启动 awesome。所以你的 ~/.zshrc 不是来源 - 只需使用 ~/.zshenv 相反,无论shell是登录shell和/还是交互式shell,都会获取源代码。

从手册页:

启动/关闭文件

首先读取命令 /etc/zshenv (......)

然后读取命令 $ZDOTDIR/.zshenv。如果shell是 登录shell ,从中读取命令 /etc/zprofile 然后 $ZDOTDIR/.zprofile。然后,如果壳是 互动 ,从中读取命令 /etc/zshrc 然后 $ZDOTDIR/.zshrc。最后,   如果          外壳是一个 登录shell /etc/zlogin$ZDOTDIR/.zlogin 正在阅读    (......)

如果 ZDOTDIR 未设置, HOME 用来代替。


1
这很有用,但它的缺点是干扰了所有zsh脚本,无论是否具有交互性。
Owen

@Owen:你是对的;你应该尽量少 zshenv 。但是,如果您通过更改来中断系统/脚本 $PATH (这是COP的问题),你应该考虑其他方法来实现你的目标而不要改变 $PATH 根本没有 zshenv 也不 zshrc
mpy
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.