环境变量之执行文件路径的变量PATH

当我们执行一个命令时,系统会依据PATH的设置去PATH定义的每个目录下查寻该命令的可执行文件,如果在PATH定义的目录中含有多个文件名为我们要执行的命令的可执行文件时,那么先查询到的同名命令先被执行。

  #echo  $PATH    查看PATH定义了哪些目录

  PATH(一定是大写),这个变量的内容是由一堆目录所组成的,每个目录中间用冒号(:)隔开,每个目录是有顺序之分的。

  #PATH=$PATH:/root  将/root加入PATH当中

  不通身份用户默认的PATH不同,默认能够随意执行的命令也不同

  PATH是可以修改的

  使用绝对路径或相对路径直接指定某个命令的文件名来执行,会比查询PATH来的正确

  命令应该放到正确的目录下,执行才会比较方便

  本目录(.)最好不要放到PATH当中  

 

以下内容转自:http://blog.sina.com.cn/s/blog_4b1e4fe90100pnpp.html

 

比如要把/etc/apache/bin目录添加到PATH中,方法有三:

 

1.#PATH=$PATH:/etc/apache/bin
       使用这种方法,只对当前会话有效,也就是说每当登出或注销系统以后,PATH 设置就会失效

 

2.#vi /etc/profile
       在适当位置添加 PATH=$PATH:/etc/apache/bin (注意:= 即等号两边不能有任何空格)这种方法最好,除非你手动强制修改PATH的值,否则将不会被改变

 

3.#vi ~/.bash_profile
       修改PATH行,把/etc/apache/bin添加进去这种方法是针对用户起作用的

 

注意:想改变PATH,必须重新登陆才能生效,以下方法可以简化工作:

如果修改了/etc/profile,那么编辑结束后执行source profile 或 执行点命令 ./profile,PATH的值就会立即生效了。这个方法的原理就是再执行一次/etc/profile shell脚本,注意如果用sh /etc/profile是不行的,因为sh是在子shell进程中执行的,即使PATH改变了也不会反应到当前环境中,但是source是在当前 shell进程中执行的,所以我们能看到PATH的改变。

一般情况下在用户工作目录下的bin目录会包含在PATH路径中,所以只要把用户自己写的shell脚本放在用户的bin目录下就可以了,不需要修改配置文件。

 

关于/etc/profile和~/.bash_profile的介绍可参考http://www.cnblogs.com/nufangrensheng/p/3478393.html。

posted @ 2013-11-16 16:58  ITtecman  阅读(3188)  评论(0编辑  收藏  举报