![重复的路径条目 - 不知道它们是从哪里设置的](https://linux22.com/image/95922/%E9%87%8D%E5%A4%8D%E7%9A%84%E8%B7%AF%E5%BE%84%E6%9D%A1%E7%9B%AE%20-%20%E4%B8%8D%E7%9F%A5%E9%81%93%E5%AE%83%E4%BB%AC%E6%98%AF%E4%BB%8E%E5%93%AA%E9%87%8C%E8%AE%BE%E7%BD%AE%E7%9A%84.png)
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
通过注销并再次登录已修复,因此它一定是由我在会话早期所做的操作引起的。