PATH 环境变量查看和修改

含义

linux下,当在终端输入某个命令时,系统会自动到PATH所指的位置去查找该命令执行。

没有PATH,就得输入该命令的绝对路径,很麻烦。

查看PATH的值

#echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

 

每个路径用冒号隔开。

 

添加路径到PATH

如将/etc/apache/bin添加到PATH中。

1、只对本次登录有效。

在终端,

#PATH=$PATH:/etc/apache/bin

 

注:网上很多加了#export PATH这句,实际多余。

export的作用是显示或设置环境变量,即在shell中定义的变量只对当前shell有效,而通过export 命令可以将变量设置为环境变量从而使变量对以后的shell进程也有效。

因为PATH已经是环境变量了,再用export PATH画蛇添足,

2、永久全局有效。

在文件/etc/profile最后添加PATH=$PATH:/etc/apache/bin

然后重启或者source /etc/profile

再清晰的理下过程:

(1)#sudo gedit /etc/profile

(2)在文件/etc/profile最后添加PATH=$PATH:/etc/apache/bin

(3)重启永久生效

有的文章第三步用source /etc/profile 这只是对当前的终端有效。

当然,如果懒得重启而且又只是使用当前终端并且希望下次永久有效,source /etc/profile是个不错的选择。

注:source filename是执行filename文件中的命令。

为什么要修改该文件,这得看该文件什么时候被执行,经分析,是输入密码登录进用户界面后。

3、永久当前用户有效。

文件~/.bashrc最后添加PATH=$PATH:/etc/apache/bin

详细同2.

 

修改PATH(删除某路径)

添加路径上面说过了,那么删除PATH中的某条路径呢?

触类旁通,直接PATH=[路径]:[路径]:[路径]……

 

PAHT变量存在哪个文件中?

网上很多说存在/etc/profile或~/.bashrc (ubuntu)中,但我没找到,我们可以在/etc/profile或~/.bashrc中修改PATH,但并不是说PATH必须存在该路径下。

这个涉及到bash及系统启动时环境变量读取的问题,到哪读就存在哪。

经过find /etc -name '*' | xargs grep 'PATH'搜索出来一大堆,

分析系统读PAHT读了多次,如进入不同用户环境还要读取该环境下的PATH。

 

最后成功登录进用户界面时要读/etc/profile文件,因此在/etc/profile文件中修改PATH是可行的。

posted @ 2012-10-08 17:50  helloweworld  阅读(872)  评论(0编辑  收藏  举报