将 ~/.local/bin 中的文件优先于 /usr/bin

Prioritize file in ~/.local/bin over /usr/bin

我正在尝试用 ~/.local/bin/ 中的脚本替换 whoami 命令。有没有办法让我的 whoami 获得优先权,这样当我 运行 whoami 我的脚本将 运行 代替?

您需要将 ~/.local/bin/ 放在 PATH 环境变量的第一位。然后将首先检查该目录,然后再检查任何其他目录以查找 运行.

的程序
export PATH=~/.local/bin:$PATH

这是我 ~/.profile 文件中的内容

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
    PATH="$HOME/.local/bin:$PATH"
fi

这有效!

在这个文件的顶部,写着

# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.

所以 如果你有 ~/.bash_profile~/.bash_login 删除它们或将它们与 ~/profile 合并。我没有这些文件。

这就是我的 $PATH 的样子(缩短...)

$ echo $PATH | sed -r 's/:/\n/g'| cat -n
     1  /home/shiplu/anaconda3/condabin
     2  /home/shiplu/.sdkman/candidates/gradle/current/bin
     3  /home/shiplu/.cargo/bin
     4  /home/shiplu/.local/bin
     5  /home/shiplu/bin
     6  /usr/local/sbin
     7  /usr/local/bin
     8  /usr/sbin
     9  /usr/bin
    10  /sbin
    11  /bin
    12  /usr/games
    13  /usr/local/games
    14  /snap/bin

检查第 4 行的路径。它在任何其他系统 bin 目录之前。