要查找设置路径的位置,请使用:

要查找设置路径的位置,请使用:

我的目标是安装 JAVA。但我认为安装过程中出了点问题,所以我从头开始。我取消设置了 JAVA_HOME 变量,并尝试删除路径/opt/jdk-14/bin。我尝试了一些方法,但似乎没有任何效果

sudo grep -rl "/opt/jdk-14/bin" /etc

我检查过了~/.profile, ~/.bashrc, ~/.bash_profile, /etc/bashrc。但没有一个文件包含该路径/opt/jdk-14/bin

更新

我重新安装了 Java。现在相同的路径重复了两次。

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/jdk-14/bin:/home/dell/flutter/bin:/opt/jdk-14/bin

答案1

这里对于可以设置环境变量的选项。也许您可以删除那里多余的路径设置,然后忽略此答案的其余部分。

链接文章中提到的并非所有位置都允许执行脚本。但有一种选择是在 /etc/profile.d/ 中创建一个带有 .sh 文件扩展名的文件,并在其中添加以下脚本。这样,当桌面会话启动时,它将在系统范围内执行:

rpath() {
    set -- $(printf '%s\n' "$@" | sed -e 's/[^^]/[&]/g' -e 's/\^/\\^/g')
    while [ "${1+x}" ]; do
        PATH=$(echo "$PATH" | sed -r -e 's#(^|:)'"$1"'/?(:|$)#\2#g' -e 's/^://')
        shift
    done
}
rpath '/opt/jdk-14/bin'
unset -f rpath

您甚至可以为该函数提供多个参数rpath。但是,如果您尝试在将路径添加到稍后处理的另一个文件之前删除该路径,则无济于事。

致谢:改进自

答案2

这是我做的。我提到了这一点java 安装链接,在设置 JAVA_HOME 变量时,另一个路径被删除。

答案3

要查找设置路径的位置,请使用:

sudo grep -rnw --exclude-dir={media,mnt,proc,root,run,sys,/tmp,tmpfs,var} '/' -e "/opt/jdk-14/bin"

暂时删除当前会话的路径

您可以使用sed搜索并将不需要的路径替换为空。首先查看您当前的$PATH变量内容:

$ echo $PATH

/home/rick/bin:/home/rick/.local/bin:/mnt/e/bin:/mnt/e/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin::/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin

假设要删除的路径是/snap/bin:使用:

$ NewPath=$(echo "$PATH" | sed 's#/snap/bin:##')

现在看看新路径是什么样的:

$ echo $NewPath

/home/rick/bin:/home/rick/.local/bin:/mnt/e/bin:/mnt/e/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games::/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin

如果你喜欢你看到的结果,最后一步是使用PATH=$NewPath

相关内容