• 周蓬安.blog的博客—强国博客—人民网 2019-05-10
  • 紫光阁中共中央国家机关工作委员会 2019-05-10
  • 感触名家笔下的端午文化吃香粽原来可以这样文艺 2019-05-09
  • 追梦夺冠游行嘲讽詹皇 百万人面前穿订制T恤羞辱他 2019-04-27
  • 《瘟疫传说》:黑死病恐怖 姐弟在绝望中求生 2019-04-10
  • 陕西国防工业职业技术学院百名大学生志愿者敬老院慰问孤寡老人陕西国防工业职业技术学院百名大学生志愿者敬老院慰问-陕西教育新闻 2019-04-08
  • 西藏拉萨:新家园 新生活 2019-04-08
  • 尊重和保障宗教信仰自由的中国实践 2019-04-06
  • 一敬泯恩仇 俄罗斯队主帅这个动作太暖了 2019-03-20
  • 四大名著剧组首次同台忆往事 经典影视剧如何铸就? 2018-12-07
  • “天眼”凝望 探秘宇宙 2018-12-07
  • 0

    2.12Linux下$PATH环境变量详解

    Posted by 撒得一地 on 2015年10月24日 in Linux教程
    国外稳定加速器推荐    Express | Vypr

    在Linux下我们可以用ls这个命令查看文件的属性,而命令ls完整的命令路径一般是:/bin/ls,这是绝对路径。我们在任何地方都可以运行/bin/ls这个命令。当我们在任何目录下输入ls,其实最终找到的命令都是/bin/ls。那么为什么我们输入ls就可以找到/bin/ls命令呢,这个就是环境变量PATH起的作用了。

    当我们运行一个命令,如ls这个命令,系统会根据PATH环境变量事先的配置去每个PATH定义的目录下搜寻可运行命令,如果PATH定义的目录包含多个ls可执行文件,则先找到的命令先被运行。

    那么,$PATH环境变量存储的值是什么?我们可以用echo这个命令来输出这个环境变量的值,echo的作用是显示,输出。
    具体做法如下:

    超级管理员root执行
    
    [[email protected] ~]# echo $PATH
    /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
    
    [[email protected] ~]# echo $PATH
    /usr/local/bin:/bin:/usr/bin:/home/ppp/bin
    

    PATH(这个命令要大写)这个变量的内容是由一堆目录所组成的,每个目录中间用冒号(:)来隔开,每个目录有先后之分,放在越前面的目录越先被查找。超级管理员用户root和普通用户自行echo $PATH打印出的目录会有所不同。不过,无论是超级管理员root还是普通用户都有/bin这个目录,也就说任何普通用户也好或者超级管理员用户也好,都可以使用/bin/ls这个命令。注意:/sbin、/usr/sbin和/usr/local/sbin这三个目录是超级管理员特有的,也就是说里面的命令也是超级管理员特有的。一般来说普通用户可以用绝对路径的方法来操作这些命令,比如当普通用户想查看网卡配置信息时,可以使用/sbin/ifconfig ehto来进行查看。

    实例1:

    假设在root用户下,将ls由/bin/ls移动到/root/ls,那么root用户还可使用ls这个命令吗?
    
    [[email protected] ~]# mv /bin/ls /root
    
    [[email protected]~]# ls
    -bash: /bin/ls: No such file or directory
    
    [[email protected]~]# /root/ls
    sh-1.3.0-centos.zip
    

    这个答案是否定的,root不可以使用ls这个命令,即使在/root目录下也不行,因为系统是根据PATH这个环境变量指定的目录去查找命令位置的,而/root这个目录不在PATH这个目录中。不过我们可以通过绝对路径/root/ls、或相对路径./ls来执行这个命令。

    实例2:

    如果想让/root这个目录也加到环境变量PATH里面,那么如何操作?
    
    [[email protected] ~]# PATH="$PATH":/root
    
    [[email protected]~]# ls
    sh-1.3.0-centos.zip
    
    将ls重新放回/bin下
    [[email protected] ~]# mv /root/ls /bin
    

    把/root加到环境变量PATH中,那么在任何目录都可以运行ls命令。注意,实验完了不要忘了将ls命令重新放回到/bin目录下。

    实例3:

    	为什么PATH搜寻的目录不加入本目录(.)?
    
    	因为在Linux下/tmp是大家都能够写入的环境,如果一个黑客在/tmp底下做了一个命令,假设该命令可能会窃取使用者的一些数据,如果你使用root的身份来运行这个命令,那后果就很可怕。
    

    最后,关于PATH环境变量,总结下:

    1.不同用户默认的PATH不同,默认能够随意运行的命令也不同(如普通用户和超级管理员);

    2.PATH是可以修改的,所以一般使用者还是可以透过修改PATH来运行某些位于/sbin或/usr/sbin下的命令来查询;

    3.使用绝对路径或相对路径直接指定某个命令的可执行文件来运行,会比搜寻PATH来的正确;

    4.命令应该要放置到正确的目录下,运行才会比较方便;

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

     

    标签:,

    上一篇:

    下一篇:

    相关推荐

    发表评论

    电子邮件地址不会被公开。 必填项已用*标注

    4 + 8 = ?

    网站地图|广东快乐10分开奖直播

    Copyright © 2015-2019 广东快乐10分开奖直播 All rights reserved.
    闽ICP备15015576号-1,版权所有?psz.

  • 周蓬安.blog的博客—强国博客—人民网 2019-05-10
  • 紫光阁中共中央国家机关工作委员会 2019-05-10
  • 感触名家笔下的端午文化吃香粽原来可以这样文艺 2019-05-09
  • 追梦夺冠游行嘲讽詹皇 百万人面前穿订制T恤羞辱他 2019-04-27
  • 《瘟疫传说》:黑死病恐怖 姐弟在绝望中求生 2019-04-10
  • 陕西国防工业职业技术学院百名大学生志愿者敬老院慰问孤寡老人陕西国防工业职业技术学院百名大学生志愿者敬老院慰问-陕西教育新闻 2019-04-08
  • 西藏拉萨:新家园 新生活 2019-04-08
  • 尊重和保障宗教信仰自由的中国实践 2019-04-06
  • 一敬泯恩仇 俄罗斯队主帅这个动作太暖了 2019-03-20
  • 四大名著剧组首次同台忆往事 经典影视剧如何铸就? 2018-12-07
  • “天眼”凝望 探秘宇宙 2018-12-07
  • 重庆幸运农场柱形走势图 江西新时时彩定胆技巧 福彩3d藏机图 11选5复式票图片 新疆时时彩开奖号码查询下载 内蒙古时时彩跨度走势图 500彩票网地址 重庆时时彩走势 总进球数规则 黑龙江时时彩结果 中彩网走势图表走势图 重庆幸运农场破解技巧 七星彩杀号定胆彩乐乐 上必发北京pk10开奘结果查询 七乐彩杀号无错公式 今晚七星彩开奖结果i