重复的路径条目 - 不知道它们是从哪里设置的

重复的路径条目 - 不知道它们是从哪里设置的

TL;DR 有些东西改变了我的路径,即使在注释掉export PATH=bashrc 中的行时,也会使我的自定义目录重复三倍


最近我在 my 中添加了一行,.bashrc以将两个自定义目录添加到路径中:

export PATH=~/Documents/Code/Own/Scripts/:~/Misc/Applications/phantomjs-2.1.1-linux-x86_64/bin:$PATH

一切看起来都很好,没有问题。然而,今天,我检查了我的路径以查看我拥有哪些目录,并发现自定义目录出现了 3 次:

echo $PATH
/home/myusername/Documents/Code/Own/Scripts/:/home/myusername/Misc/Applications/phantomjs-2.1.1-linux-x86_64/bin:/home/myusername/Documents/Code/Own/Scripts/:/home/myusername/Misc/Applications/phantomjs-2.1.1-linux-x86_64/bin:/home/myusername/Documents/Code/Own/Scripts/:/home/myusername/Misc/Applications/phantomjs-2.1.1-linux-x86_64/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/home/myusername/.local/bin:/home/myusername/bin

奇怪,我心想。我将从我的 bashrc 中注释掉该行 - 由于某种原因它必须被获取 3 次。在终端中打开一个新选项卡 - 第一对自定义目录消失了,但另外两个消失了还在那儿

/home/myusername/Documents/Code/Own/Scripts/:/home/myusername/Misc/Applications/phantomjs-2.1.1-linux-x86_64/bin:/home/myusername/Documents/Code/Own/Scripts/:/home/myusername/Misc/Applications/phantomjs-2.1.1-linux-x86_64/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/home/myusername/.local/bin:/home/myusername/bin

所以,也许这只是 GNOME 终端保存每个会话路径的问题。通过 TTY 登录,路径正确 - 没有重复条目(我的 bashrc 仍然通过 bash_profile 行获取)。然而,使用 xterm 问题仍然存在 - 这意味着它不归结为 GNOME 终端的问题。

我不明白的是,当我注释掉 bashrc 中的行并且从未将其添加到其他地方时,哪个文件正在更改路径。有任何想法吗?

答案1

如果您在 GNOME 终端中打开一个新选项卡,它会将环境复制到新 shell,而不是创建一个新的空环境。就我个人而言,我认为这是一个错误(这也是我自己不会使用 GNOME 终端的原因之一),但我确信开发人员有他们的理由。启动新选项卡并复制环境后,它会启动您的 shell,该 shell 会执行正常的交互式启动例程,其中涉及采购.bashrc

如果您想避免多次添加,您有以下几种选择:

  • 切换到不同的终端模拟器
  • 不要在 中进行修改.bashrc,而是在 中.bash_profile进行修改,这是登录过程的一部分而不是交互式启动,因此不应该在新选项卡上使用(但显然 GNOME 终端可能比我想象的更糟糕)毕竟,它可能仍然以 source 的方式启动 shell .bash_profile;自从我上次使用它以来已经有一段时间了;
  • 在再次进行修改之前检查 PATH 变量是否已包含所需的修改。

答案2

通过注销并再次登录已修复,因此它一定是由我在会话早期所做的操作引起的。

相关内容