【问题标题】:How can I change the PATH for all users and all shells?如何更改所有用户和所有 shell 的 PATH?
【发布时间】:2014-02-28 09:06:19
【问题描述】:

我在 Linux Mint 系统上,我使用 bash 和 zsh 作为 shell。我刚刚手动安装了 Texlive,我希望它在我的路径中。

我认为将以下几行添加到 .profile 会很好,但 zsh 不会加载 .profile。

if [ -d "/usr/local/texlive/2013/bin/i386-linux" ] ; then
    PATH="/usr/local/texlive/2013/bin/i386-linux:$PATH"
fi

if [ -d "/usr/local/texlive/2013/bin/x86_64-linux" ] ; then
    PATH="/usr/local/texlive/2013/bin/x86_64-linux:$PATH"
fi

if [ -d "/usr/local/texlive/2013/texmf/doc/man" ] ; then
    MANPATH="/usr/local/texlive/2013/texmf/doc/man:$MANPATH"
fi

if [ -d "/usr/local/texlive/2013/texmf/doc/info" ] ; then
    INFOPATH="/usr/local/texlive/2013/texmf/doc/info:$INFOPATH"
fi

显然,所有提及“将其添加到 .zshrc / .bashrc”的内容都不正确,因为这只会影响我(仅一个用户)和那两个 ​​shell。

(我对我的机器拥有管理权限。)

【问题讨论】:

  • 对于zsh,请参阅man zsh 中的“启动/关闭文件”部分。 zsh 有一个冗长但定义明确的文件序列,它会在启动时读取。

标签: linux bash shell path zsh


【解决方案1】:

ZSH 读取 /etc/zsh/zprofile。所以改变那个文件。

【讨论】:

  • 它是/etc/zprofile,但用户可以通过在他/她的.zshenv 文件中设置NO_GLOBAL_RCS 来阻止读取此文件。
  • @chepner 在基于 debian(我现在在 Debian 7 上)的系统上,它是 /etc/zsh/zprofile 。没有 /etc/zprofile 文件。
  • 啊,必须有一个编译时选项来指定哪个目录。你有/etc/zsh/zshenv 而不是/etc/zshenv 吗?
  • @chepner 是的,我有 /etc/zsh/zshenv 。它是使用 apt-get 安装的软件包的默认位置。
【解决方案2】:

您可以更改/etc/profile/etc/bash_bashrc,适用于所有用户。

【讨论】:

  • 好的,但我很确定这不适用于 zsh。
  • 编辑:我刚刚用echo $PATH 尝试过。这不适用于zsh
【解决方案3】:

bashkshdashsh,以及其他与sh相关的shell都以/etc/profile开头。


对于zsh,我建议将更改放入/etc/zshenv。从好的方面来说,此文件保证由任何交互式zsh 获取并首先获取该文件。不利的一面是,这是有保证的:),所以不要在这里放任何耗时的东西。不过,向PATH 添加一些目录应该不会很耗时。

任何其他zsh 启动文件可能会或可能不会被读取,这取决于用户的私有.zshenv 文件中的设置,这是要获取的第二个文件。


对于csh 及其派生词,/etc/csh.cshrc 可能是最好的选择。

对于我可能遗漏的任何 shell,您必须查阅他们的文档。


对于任何 shell,请务必检查系统上的文档以验证 shell 文件的位置;根据 shell 的编译方式,它们可能会有所不同。

【讨论】:

  • 我已经把上面的行(就像我在那里写的一样!)放在/etc/zsh/zshenv/etc/zsh/zprofile/etc/profile。当我获取这些文件中的任何一个时,路径都可以。但是一旦我关闭 MATE 终端 1.6.1,路径就像以前一样。你知道如何解决这个问题吗? (对于 bash 也是如此)
  • 获取文件只会更改该外壳(或其任何子外壳)的环境。确保您正在编辑的文件是由新 shell 自动获取的文件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-28
  • 2015-12-11
  • 2022-10-17
  • 2022-09-28
  • 2020-05-20
  • 2022-01-07
相关资源
最近更新 更多