My aim is to install JAVA. But I think something went wrong during the installation so I started right from the beginning. I unset the JAVA_HOME variable and am trying to remove the path /opt/jdk-14/bin
. I tried a few things, but nothing seems to work out
sudo grep -rl "/opt/jdk-14/bin" /etc
I checked ~/.profile, ~/.bashrc, ~/.bash_profile, /etc/bashrc
. But none of the files have the path /opt/jdk-14/bin
in it.
Updated
I installed the java all over again. And same path is repeated twice now.
/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
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
This is what I did. I referred this java installation link, on setting the JAVA_HOME variable, the other path was removed.
См. здесь для опций, где могут быть установлены переменные среды. Может быть, вы можете удалить настройку избыточного пути и игнорировать остальную часть этого ответа.
Не все места, упомянутые в связанной статье, допускают выполнение сценария. Но один из вариантов - создать файл с расширением .sh в /etc/profile.d/. и добавьте туда следующий скрипт. Таким образом, он запускается в масштабе всей системы при запуске сеанса рабочего стола:
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
. Однако это не поможет, если вы попытаетесь удалить путь до того, как он был добавлен в другой файл, который обрабатывается позже.
Кредиты: улучшено с этого