环境变量配置文件的作用-L63
来源:互联网 发布:易语言攻击集群源码 编辑:程序博客网 时间:2024/05/17 08:26
环境变量配置文件的作用
上节课讲了五种配置文件,分为两类,一类是放到/etc目录下的对所有用户生效。
一类是放到~/目录下(~代表家目录),也就是每个用户家目录下的,只对当前用户生效。
一、环境变量配置文件的执行流程图。
好,我们就按照这个流程图来进行演示一下。
1、/etc/profile的作用
上图所示在我们登录系统还没有拿到提示符之前,也就是还没有显示让我们操作命令的提示符之前,首先进入的就是/etc/profile这个文件。我们打开这个文件看一下,如图:
可以说这个配置文件是所有环境变量配置文件当中最复杂的一个。我们来介绍一下:
USER变量:
LOGNAME变量:
MAIL变量:
PATH变量:
HOSTNAME变量:
HISTSIZE变量:
umask:
调用/etc/profile.d/*.sh文件
首先是判断USER用户,LOGNAME当前登录用户名,登录邮箱。
然后我们看配置文件里的这段判断语句:
这就是定义环境变量PATH的判断语句,首先判断登录的EUID变量值,如果是0就代表是超级用户,那么就在下面三段超级用户的路径/sbin去搜索命令,而如果EUID不是0就代表是普通用户,于是就跳过超级用户的搜索命令而执行else后面的语句。这个判断语句我们后面会学到,如果…否则…的意思,我们这里先了解个大概就可以,知道配置文件调用的顺序就好。
执行完PATH后继续定义
HOSTNAME变量:
HISTSIZE变量:
umask:
最后调用/etc/profile.d/下所有以*.sh结尾的文件
2、我们再来看看/etc/profile.d下都有哪些配置文件。
那么这么多文件并没有一下全部都调用,最主要的是他先调用lang.sh文件,也就是语言包,用来调用系统语言,我们再回到最开始的那个流程图看看,是不是调用完/etc/profile.d/后就继续调用里面的lang.sh配置文件。
我们来看看lang.sh配置文件的内容:
然后又调用了/etc/sysconfig/i18n
那么这个文件里又是存放什么内容呢?继续打开看一下,如图:
存放的是我们系统默认的语言环境。
到这里最下面一路已经完事了,从/etc/profile开始,到/etc/profile.d/lang.sh最后到/etc/sysconfig/i18n结束。
3、最下面这组调用完后把调用到的值传递给上面一路,也就是用户家目录的配置文件。
我们打开这个配置文件看看,我们现在是root用户,我们就去root的家目录看下这个文件内容。
[root@localhost ~]# vim /root/.bash_profile
如图:
看,首先他判断家目录下.bashrc配置文件是否存在,存在就直接调用,同时给环境变量PATH追加”:$HOME/bin”目录。
并且把PATH声明为环境变量。
那么也就是说如果我们想让哪个用户的一些命令或脚本能够直接执行,而不用写路径的话,那就写入这个配置文件就会永久生效了。
这就是~/.bash_profile配置文件的作用。
那么他调用了家目录下的.bashrc配置文件,我们打开来看看。
[root@localhost ~]# vim /root/.bashrc
如图:
这个文件内容是不是很熟悉啊,其实是设置系统命令别名的配置文件。
那么其实这些命令我们还可以写在上面的文件~/.bash_profile配置文件里,甚至可以写在/etc/profile配置文件里,但是呢,这样一来就不单单是在家目录生效了,而是全局都生效,因为前面说了/etc下的配置文件是针对全局的。
所以大家一定要弄清除/etc目录和~/目录下的配置文件的作用范围是不同的。
也就是说我们一定要弄明白优先级。
那么.bashrc文件的作用,一方面是定义系统命令别名,一方面继续调用下一个配置文件/etc/bashrc。
我们继续看一下最后一个配置文件,如图:
这个文件里面的内容作用,首先是调用变量PS1,然后输出到提示符结束。
那么大家再仔细的去看文章最开始的配置文件流程图,你会发现这个文件又返回一路调用/etc/profile.d/*.sh.
为什么/etc/profile和这个文件都去调用/etc/profile.d/*.sh呢?
大家仔细可以发现这两个文件里的内容,其中/etc/profile是配置登录用户的变量,而/etc/bashrc是配置不用登录的shell的变量环境的。
也就是说我们有的时候是不用登录就直接切换用户的情况,比如用su命令切换到其他用户,这时候呢调用的就是/etc/bashrc这个文件的内容了。
大家可以看看里面的说明:
提示未登录用户的变量在这里配置生效。
其实我们想要开机就能执行某个命令或变量,我们直接写入这些配置文件任意一个里面都行,但要注意的是作用范围,还要注意写到后面的变量会覆盖前面的变量的值,除非你用变量叠加的方式。
这个也好理解,比如:
[root@localhost ~]# a=2
[root@localhost ~]# a=3
那么生效的是哪个啊?肯定是后面的呗。所以写入配置文件的道理也相同。
本教程原创作者:mageo,出自每集博客,尊重作者劳动,转载请注明出处:http://www.ql2015.cn,谢谢!
- 环境变量配置文件的作用-L63
- Shell基础-环境变量配置文件-作用
- Shell的环境变量配置文件
- DISPLAY环境变量的作用
- Java环境变量的作用
- Java环境变量的作用
- 环境变量的作用范围
- JAVA环境变量的作用
- 关于环境变量的作用
- 环境变量的作用
- path环境变量的作用
- Java环境变量的作用
- 关于环境变量的作用
- 环境变量的作用
- 环境变量的作用
- 系统环境变量与个人环境变量的配置文件
- 环境变量的作用,为什么要设置环境变量
- 环境变量的作用,为什么要设置环境变量
- Android - (Afinal)框架使用
- Volley 添加Cookie和获取服务器返回的一条或多条Cookie
- Android学习笔记之:实现树形层级ListView
- Swift 类型的检査与转换(is,as,AnyObject,Any)
- 微信公众平台开发 zhphpweixinApi.class.php api-php接口类@真实可用@带案例教程
- 环境变量配置文件的作用-L63
- perl 散列
- MySQL自带的性能压力测试工具mysqlslap详解
- 【精】Photoshop抠图全方位攻略
- SQLite的使用和数据库的创建
- xcode 更新问题
- Http请求连接池 - HttpClient 连接池
- ASP.NET 资源
- APP登录界面UI设计欣赏