总之,我的数据库中有一些条目$PATH
我不知道它们被添加到哪里了。救命!
$PATH
我的一般问题是:启动终端时,我的变量在哪些地方被修改?我的具体问题是,/usr/local/games
文件夹在哪里被引入到我的$PATH
变量中。
到目前为止我发现 ('相信'):在/etc/login.defs
的第一个定义中$PATH
发生。默认情况下,games
文件夹会添加到此处,但当我在此处删除它们时,它们仍会保留下来。我在其中有以下几行:
# *REQUIRED* The default PATH settings, for superuser and normal users.
# (they are minimal, add the rest in the shell startup files)
ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin # note i removed games here
然后是/etc/environment
我还不确定它何时发挥作用以及它与什么相关logins.defs
。它读到
~$ cat /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
然后,正如在回答中很好地呈现的那样这和这问题,有~/.profile
和~/.bashrc
,我都控制得很好。后者包含两行
PATH=${PATH/":/usr/games"/""} # remove games from $PATH
PATH=${PATH/":/usr/local/games"/""}
当注释掉后,我的 中会出现两个游戏文件夹$PATH
。那么,这两个文件夹是从哪里来的?$Path
在启动时修改变量的地方解析了哪些地方?
答案1
默认情况下,/etc/environment
登录时读取的 包括/usr/games
和/usr/local/games
。因此看起来您也编辑了该文件,这应该足以删除这些目录。我不清楚为什么您需要为此目的涉及~/.profile
和/或。~/.bashrc
编辑:
以上内容基于标准 Ubuntu 上的运行方式。WSL 默认设置可能略有不同。