如何更改所有用户和所有shell的PATH?

时间:2014-02-28 09:06:20

标签: linux bash shell path zsh

我在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。

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

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

bashkshdashsh以及与sh相关的其他所有内容均以阅读/etc/profile开头。


对于zsh,我建议将更改添加到/etc/zshenv。从好的方面来说,这个文件是保证来源,并且首先由任何交互式zsh来源。在负面,它是有保证的:),所以不要在这里放任何耗时的东西。但是,将一些目录添加到PATH不应该非常耗时。

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


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

对于我可能错过的任何贝壳,你必须查阅他们的文件。


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