更改 $PATH 变量

更改 $PATH 变量

我用它来添加到 PATH:

APXS2=/usr/local/apache/bin/apxs PATH=$PATH:/usr/local/apache/bin passenger-install-apache2-module

我的 PATH 现在如下所示:

/usr/local/jdk/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/lib/courier-imap/sbin:/usr/lib/courier-imap/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/X11R6/bin:/root/bin:

现在我想删除我添加的这个。该怎么做?

答案1

最好的方法可能是在改变路径之前简单地存储一份路径副本。

PATH_BAK=$PATH
PATH=...
...
PATH=$PATH_BAK

答案2

只需注销,重新登录,您的 PATH 就会被重置。

答案3

如果您忘记创建备份,您可以使用子字符串删除/替换。

子串删除

${string#substring}

子字符串替换

${string/substring/replacement}

请参考此链接http://www.museum.state.il.us/ismdepts/library/linuxguides/abs-guide/string-manipulation.html

答案4

假设 /usr/local/apache/bin 不在“...我的 PATH 现在看起来像这样...”中 - 您认为您添加了什么?假设您使用的是 bash 或 ksh - 您实际上并没有更改路径,因为您没有导出它。所以我怀疑您是否需要删除任何东西。

例如

$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
$ PATH=$PATH:/foo /bin/ls
aFile
$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
$ # PATH did not alter

相对:

$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
$ export PATH=$PATH:/foo
$ /bin/ls
aFile
$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/foo
$ #PATH modified.

因此,除非您将新的 PATH 导出到 shell,否则您从 PATH 调用的命令不会改变。

相关内容