gpt4 book ai didi

linux - 如何可靠地为用户添加或附加到 PATH

转载 作者:太空狗 更新时间:2023-10-29 12:38:59 28 4
gpt4 key购买 nike

有 .bashrc、.profile 和 .bash_profile。我知道它们用于不同的情况。

我想将 ~/bin 添加到 PATH always 之前,例如不管它是否是交互式 session 。我希望它在有人像我一样 sudo 时也能工作。

我该怎么做?当有人像我一样使用 sudo 时,我发现以上 3 个文件都没有被使用。当我的用户帐户被使用时,我希望始终可靠地将 ~/bin 添加到 PATH 之前,包括当有人像我一样使用 sudo 时。

编辑:澄清:不,与某些重复问题的怀疑相反,这不是让爱丽丝的路径/环境在爱丽丝运行“sudo bob some-program”时转移到鲍勃。这是关于让 bob 总是有一个路径,每当 bob 新用于运行一个进程时,前面有/home/bob/bin ,包括但不一定限于交互式 session 、非交互式 session 和被 sudo,但是特别是当被 sudo 时,因为这似乎是最有问题的情况。

最佳答案

我一直在使用以下脚本 ( canonical copy ),其中包含路径列表。诚然,我不使用 sudo

# Significant care is taken to be sh-compatible; if bash or zsh could be
# required, it could be made simpler or more generic.

# Known source'rs:
# ~/.profile
# ~/.zshrc
# ~/.xprofile
# ~/.xsessionrc
# ~/.bashrc
# ~/.config/plasma-workspace/env/*.sh

has_PATH () {
local tmp=":$PATH:"
[ "${tmp}" != "${tmp#*:$1:}" ]
}

prepend_PATH () {
has_PATH "$1" || PATH="$1:$PATH"
}

append_PATH () {
has_PATH "$1" || PATH="$PATH:$1"
}

prepend_PATH /usr/local/bin
prepend_PATH ~/.local/bin
prepend_PATH ~/bin
prepend_PATH /usr/lib/ccache
append_PATH /usr/sbin
append_PATH /sbin
append_PATH /usr/local/games
append_PATH /usr/games
export PATH

关于linux - 如何可靠地为用户添加或附加到 PATH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56555819/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com