我的目标是安装 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