PATH 环境变量查看和修改

泄露秘密 提交于 2020-03-31 16:54:51

含义

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是可行的。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!