|NO.Z.00055|——————————|LinuxShell|——|Linux&Shell$变量.V12|——|环境变量|配置文件|
一、环境变量配置文件
### --- source 命令
~~~ 环境变量配置文件
~~~ 登录时生效的环境变量配置文件
[root@localhost ~]# source 配置文件
~~~ # OR
[root@localhost ~]# . 配置文件
### --- 在 Linux 系统登录时主要生效的环境变量配置文件有以下五个:
/etc/profile
/etc/profile.d/*.sh
~/.bash_profile
~/.bashrc
/etc/bashrc
二、环境变量配置文件调用过程

三、环境变量配置文件调用过程说明
### --- 在用户登录过程先调用/etc/profile 文件
### --- 在这个环境变量配置文件中会定义这些默认环境变量:
~~~ # USER 变量:
~~~ 根据登录的用户,给这个变量赋值(就是让 USER 变量的值是当前用户)。
~~~ # LOGNAME 变量:
~~~ 根据 USER 变量的值,给这个变量赋值。
~~~ # MAIL 变量:
~~~ 根据登录的用户,定义用户的邮箱为/var/spool/mail/用户名。
~~~ # PATH 变量:
~~~ 根据登录用户的 UID 是否为 0,判断 PATH 变量是否包含/sbin、/usr/sbin和/usr/local/sbin 这三个系统命令目录。
~~~ # HOSTNAME 变量:
~~~ 更加主机名,给这个变量赋值。
~~~ # HISTSIZE 变量:
~~~ 定义历史命令的保存条数。
~~~ # umask:
~~~ 定义 umask 默认权限。注意/etc/profile 文件中的 umask 权限是在“有用户登录过程
~~~ (也就是输入了用户名和密码)”时才会生效。
~~~ # 调用/etc/profile.d/*.sh 文件,
~~~ 也就是调用/etc/profile.d/目录下所有以.sh 结尾的文件。
~~~ # 由/etc/profile 文件调用/etc/profile.d/*.sh
~~~ 文件这个目录中所有以.sh 结尾的文件都会被/etc/profile 文件调用,
~~~ 这里最常用的就是 lang.sh 文件,而这个文件又会调用/etc/sysconfig/i18n 文件。
~~~ /etc/sysconfig/i18n 这个文件眼熟吗?就是我们前面讲过的默认语系配置文件啊。
### --- 由/etc/profile 文件调用~/.bash_profile 文件~/.bash_profile 文件就没有那么复杂了,
### --- 这个文件主要实现了两个功能:
~~~ 调用了~/.bashrc 文件。
~~~ 在 PATH 变量后面加入了“:$HOME/bin”这个目录。
~~~ 那也就是说,如果我们在自己的家目录中建立 bin 目录,
~~~ 然后把自己的脚本放入“~/bin”目录,就可以直接执行脚本,而不用通过目录执行了。
### --- 由~/.bash_profile 文件调用~/.bashrc 文件在~/.bashrc 文件中主要实现了:
~~~ 定义默认别名,所以超哥把自己定义的别名也放入了这个文件。
~~~ # 调用/etc/bashrc由~/.bashrc 调用了/etc/bashrc 文件在/etc/bashrc 文件中主要定义了这些内容:
~~~ # PS1 变量:
~~~ 也就是用户的提示符,如果我们想要永久修改提示符,就要在这个文件中修改
~~~ # umask:
~~~ 定义 umask 默认权限。这个文件中定义的 umask 是针对“没有登录过程(也就是不需要输入用户名和密码时,
~~~ 比如从一个终端切换到另一个终端,或进入子 Shell)”时生效的。
~~~ 如果是“有用户登录过程”,则是/etc/profile 文件中的 umask 生效。
~~~ # PATH 变量:
~~~ 会给 PATH 变量追加值,当然也是在“没有登录过程”时才生效。
~~~ # 调用/etc/profile.d/*.sh 文件,这也是在“没有用户登录过程”是才调用。
~~~ # 在“有用户登录过程”时,/etc/profile.d/*.sh 文件已经被/etc/profile 文件调用过了。
### --- 这样这五个环境变量配置文件会被依次调用,
~~~ 那么如果是我们自己定义的环境变量应该放入哪个文件呢?
~~~ 如果你的修改是打算对所有用户生效的,那么可以放入/etc/profile 环境变量配置文件;
~~~ 如果你的修改只是给自己使用的,
~~~ 那么可以放入~/.bash_profile 或~/.bashrc 这两个配置文件中的任一个。
~~~ 可是如果我们误删除了这些环境变量,比如删除了/etc/bashrc 文件,
~~~ 或删除了~/.bashrc 文件,
~~~ 那么这些文件中配置就会失效(~/.bashrc 文件会调用/etc/bashrc 文件)。
~~~ 那么我们的提示符就会变成:-bash-4.1#
四、注销时生效的环境变量配置文件
### --- 注销时生效的环境变量配置文件
~~~ 在用户退出登录时,只会调用一个环境变量配置文件,
~~~ 就是~/.bash_logout。这个文件默认没有写入任何内容,
~~~ 可是如果我们希望再退出登录时执行一些操作,
~~~ 比如清除历史命令,备份某些数据,就可以把命令写入这个文件。
五、其他配置文件
### --- 其他配置文件
~~~ 还有一些环节变量配置文件,最常见的就是~/bash_history 文件,也就是历史命令保存文件。
~~~ 这个文件已经讲过了,这里我们只是把它归入环境变量配置文件小节而已。
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
cdv008-shell
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」