环境变量配置文件的作用-L63
环境变量配置文件的作用
上节课讲了五种配置文件,分为两类,一类是放到/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基础-环境变量配置文件 Shell基础-环境变量配置文件 source 配置文件 或者 . 配置文件: 把环境变量写入配置文件后,需要用户重新登陆才能生效,而是用source命令,则能直接生 ...
- 管道符、shell变量、环境变量配置文件
2019独角兽企业重金招聘Python工程师标准>>> 8.6 管道符和作业控制 管道符"|" 管道符的作用在于将符号前面的结果丢给符号后面的命令.管道符后面并不 ...
- Shell学习笔记 - 环境变量配置文件(转)
一.source命令 功能:在当前bash环境下读取并执行配置文件中的命令 1. 命令格式 source 配置文件 或 . 配置文件 2. 命令示例 [root@localhost ~]# sou ...
- imoocLinux环境变量配置文件笔记
Linux环境变量配置文件 1.修改配置文件 生效命令: source 配置文件 2.用户登录配置文件加载顺序 3.各配置文件中的作用 /etc/profile 定义了用户的umask值 注:普通用户 ...
- linux中环境变量及环境变量配置文件详解
环境变量:定义每个用户的操作环境 1. Source命令:修改配置文件后,必须注销重新登录才能生效,使用source命令后,立即生效环境变量配置文件: 命令如下:source 配置文件 或 ...
- L24 shell基础知识(二)管道符-作业控制-shell变量-环境变量配置文件
主要内容: 1管道符 2作业控制 3 shell变量 4 环境变量配置文件 1管道符和作业控制 管道符 "|", 就是把前面的命令运行的结果丢给后面的命令. 2作业控制 当运行一个 ...
- 03_Shell 基础 - 环境变量配置文件
环境变量配置文件 1. 环境变量配置文件简介 1.1 source 命令 [root@localhost ~]# source 配置文件[root@localhost ~]# .配置文件 1.2 环境 ...
- 系统的环境变量path的作用是什么
系统的环境变量path的作用是什么,本来不知道什么叫做环境变量的.但是自从学了Java之后就对path有点了解.然后设置了环境变量path,当然 也就知道按照网上的大侠给的方法照搬上去而已,根本不了解 ...
- 管道符和作业控制 shell变量 环境变量配置文件
8.6 管道符和作业控制 8.7/8.8 shell变量 8.9 环境变量配置文件 管道符和作业控制 管道符:表示把一个文件的输出内容传送到后面的命令 grep 用来过滤指定关键词的命令 " ...
最新文章
- 胶囊网络为何如此热门?与卷积神经网络相比谁能更胜一筹?
- Codeforces Round #665 (Div. 2) 题解( 小学奥数专场 )
- [导入]关于DataGrid等控件中的自动编号
- python网络编程—Socket
- 【ThinkPHP系列篇】Thinkphp框架的CURD操作(三)
- python结束循环_python中break、continue 、exit() 、pass终止循环的区别
- c#金额转换成中文大写金额
- [HDU 1015] Safecracker
- 【Flink】Flink 使用代码如何主动触发 SavePoint
- IDEA Junit测试
- 锐捷认证客户端常见问题解决及简介
- python学习笔记(xlsxwriter模块使用)
- Python入门教程!手把手教会你爬取网页数据
- 斐讯AI音箱怎么绑定扫地机器人_斐讯智能音箱常见问题解答
- 码农慌不慌?只因写了一段爬虫,大数据公司200多人被抓!
- 20190625——特征抽取 主成分分析
- 英飞凌TC264学习(三)定时器
- 服务器pe系统ghost系统安装教程,极速PE U盘安装GHOST系统详细图文教程
- vue-cli 项目打包后 代理接口报404错误 解决办法!
- 车路协同云/边缘云服务平台概要【原创】