我在哪里设置了我的 bash PATH?

Pet*_*r.O 9 bash path environment-variables

我想~/bin从我的 PATH 中删除。几个月前,当 Linux (Ubuntu) 对我来说还很陌生时,我就设置了它,但我不知道我是如何添加它的...

当我搜索下面列出的所有文件时,没有任何显示。
还能在哪里设置?它在$HOME/.profile前缀 PATH之后被前置$HOME/bin

如果它有任何区别,我会从命令提示符和正在运行的脚本中获得相同的 PATH。

#!/bin/bash
{
  echo "first dir of PATH is: '${PATH%%:*}'"
  shopt -s nullglob
  cat \
    /etc/profile \
    /etc/bash.bashrc \
    /etc/profile.d/*.sh \
    $HOME/.bashrc \
    $HOME/.bash_aliases \
    /etc/bash_completion \
    $HOME/.bash_completion* \
    $HOME/.profile \
    $HOME/.profile_zap \
    $HOME/.bash_profile* \
    $HOME/.bash_login* \
  | sed -rne '/~\/bin/p'
}
Run Code Online (Sandbox Code Playgroud)

输出是:

first dir of PATH is: '~/bin'
Run Code Online (Sandbox Code Playgroud)

hmo*_*liu 10

您可能希望在登录时跟踪完整的环境负载。只是一个想法。

由于 /etc/profile 是第一个来源的文件,您可以在最顶部添加:

set -x
exec 2> /tmp/debug.log
Run Code Online (Sandbox Code Playgroud)

然后打开一个新终端并执行bash -l; 之后转到原始终端并删除添加的行(您想要一个工作环境,不是吗?)。

您应该以 /tmp/debug.log 中 loading_the_bash_environment 的所有步骤的完整跟踪结束。这将是一个 loooong 文件。

有了它,您必须能够找到“~/bin”进入路径的位置

我会首先查找所有来源文件的 grep。从您的帖子中,我敢打赌路径中的 ~/bin 设置在您列出的文件的不同文件中。

  • 我不得不在第二行用 `exec` 替换 `set`,然后它对我来说非常有效:) (3认同)