从`$PATH`永久删除项目

我在论坛上四处搜索,试图找到一种方法来摆脱路径中的一些默认项,但是没有成功。这是它目前的情况:

/home/blaine/.rvm/gems/ruby-2.0.0-p247/bin:/home/blaine/.rvm/gems/ruby-2.0.0-p247@global/bin:/home/blaine/.rvm/rubies/ruby-2.0.0-p247/bin:/home/blaine/.rvm/bin:/home/blaine/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

而冒犯的物品就是其中两个带有games的物品:
:/usr/games:/usr/local/games

我并不使用其中任何一个,但这并不是我问题的核心。我想要摆脱这些项目(并且知道如何在将来做类似的操作),但我找不到这些默认设置在哪里被设定。当我在这些文件中使用grep命令时,并没有提到PATH

/etc/profile
/etc/profile.d/*
~/.bashrc
~/.bash_profile

我正在使用Ubuntu 13.04。

2它们确实是冒犯性的物品。当Ubuntu安装时,他们应该提示“您玩游戏吗?”,“您需要用于图片和视频的文件夹吗?”答案可以通过“是”和“当然不需要!为什么呢?”中的任意一个可点击选项提供。 - H2ONaCl
2个回答

PATH设置在/etc/environment文件中,但是如果你想从中删除一些项,最好在你的~/.bashrc文件中进行操作。所以,如果你想删除/usr/games/usr/local/games目录,请再次设置PATH如下:

PATH="/home/blaine/.rvm/gems/ruby-2.0.0-p247/bin:/home/blaine/.rvm/gems/ruby-2.0.0-p247@global/bin:/home/blaine/.rvm/rubies/ruby-2.0.0-p247/bin:/home/blaine/.rvm/bin:/home/blaine/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

1我对那个强制覆盖的解决方案有些担心。我觉得那样做可能会以一种难以预测的方式干扰系统。 - blaineh
更改/etc/environment文件会对系统造成影响吗? - blaineh
@Blaine 根据你对它的编辑方式,是的,它会影响到你的系统。为此,我告诉你如果你想改变你的路径,只需在~/.bashrc文件中进行设置。简单吧! - Radu Rădeanu
@blaineh 同时,对 /etc/environment 的更改是系统范围的。如果你不想搞乱它们,最好使用 ~/.bashrc~/.profile - Braiam

更改~/.bashrc将应用于每个新的shell。

编辑~/.bashrc并添加这两行:

PATH=${PATH/":/usr/games"/""}
PATH=${PATH/":/usr/local/games"/""}

解释:
${variable/find/replacement}

在这种表达中,/ 分隔了变量、要查找的字符串和要用作替换的字符串。在实际应用中,UNIX路径分隔符 / 会被解释,因此需要引用字符串 ":/usr/games" 以保持字面意义。"" 是空的替换内容。

稍微加点语法糖(省略模式的替换),变成了: PATH=${PATH/':/usr/games'/} PATH=${PATH/':/usr/local/games'/} - Flandraco