WSL Ubuntu 18.04:启动时 $PATH 在哪里修改?

WSL Ubuntu 18.04:启动时 $PATH 在哪里修改?

总之,我的数据库中有一些条目$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 默认设置可能略有不同。

相关内容