如何从 PATH 中永久删除目录路径?

如何从 PATH 中永久删除目录路径?

我正在使用 Ubuntu 16.04 LTS。我对 Linux 还很陌生。

我为所有软件在目录softwares中创建了一个目录,并将其添加到我的 PATH 中。然后有人建议我最好在你的主目录中创建一个目录,而不是将诸如下载之类的目录保留在 PATH 中。所以我就这么做了。现在,我的问题是,我在 PATH 中有两个目录,并且由于这个原因,我的一些工具无法运行。Downloadsbin

我确实尝试了这里帖子中给出的一些建议,但对我来说不起作用,而且由于我是新手,我有点害怕尝试,以免把所有事情都搞砸。

我自己的路

$ echo $PATH 
/home/gjjha/bin:/home/gjjha/bin:/home/gjjha/bin:/home/gjjha/Downloads/softwares/ncbi-blast-2.5.0+/bin:/home/gjjha/bin:/home/gjjha/.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://home/gjjha/Downloads/softwares/ncbi-blast-2.5.0+:/gjjha/Downloads/softwares/ncbi-blast-2.5.0+/bin:/home/gjjha/home/gjjha/Downloads/softwares/ncbi-blast-2.5.0+/bin:/gjjha/Downloads/softwares/ncbi-blast-2.5.0+/bin:/gjjha/Downloads/softwares/ncbi-blast-2.5.0+/bin:/gjjha/Downloads/softwares/ncbi-blast-2.5.0+/bin:/gjjha/Downloads/softwares/bowtie2-2.2.9/index:/home/gjjha/Downloads/softwares/tophat-2.1.1:/gjjha/Downloads/softwares/bowtie2-2.2.9/index:/home/gjjha/gjjha/Downloads/softwares/bowtie2-2.2.9/index:/home/gjjha/Downloads/softwares/tophat-2.1.1:/home/gjjha/bin:/home/gjjha/bin/blastdb:/home/gjjha/bin/blast+2.5:/home/gjjha/blast+2.5/bin:/home/gjjha/blast+2.5/bin:/home/gjjha/bin/ncbi-blast-2.5.0+/bin

我想删除软件目录和重复项,但想保留,/home/gjjha/bin因为现在所有软件都在 bin 目录中。

我尝试过的命令:

PATH=echo $PATH | sed -e 's/:\/home\/wrong\/dir\/$//'
PATH= echo $PATH | sed -e 's/:/home/gjjha/Downloads/softwares/ncbi-blast-2.5.0+/bin/$//'
PATH=${PATH/%:/home/wrong/dir//}
PATH=${PATH%:/home/gjjha/Downloads/softwares//}
PATH=${PATH%:/home/gjjha/Downloads/softwares/ncbi-blast-2.5.0+/bin/}

我检查过(即使重新启动后),软件目录仍然在那里。

答案1

在我安装的 16.04 中,PATH 变量是从 .profile 中设置的,用于登录 shell

首先将当前路径保存到文本文件中:

echo $PATH > currentpath.txt

我发现最简单的方法是打开一个新 shell 然后执行

sudo vi .profile

现在编辑或添加行来设置正确的路径

PATH="..."

将您想要的路径放在引号内。

默认路径:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

(并且它从左到右工作 - 如果在/usr/local/sbin和中存在同名的可执行文件,则当您键入名称时将调用/usr/bin中的版本)/usr/local/sbin

按下esc仪式和适合

:wq

如果你不知道你可以使用纳米编辑.profile文件。可能更容易。

重新开始。

我这样做是为了使我的本地 bin 文件夹位于可执行文件的路径中。不知道为什么默认情况下不是这样,但是嘿。

相关内容