### --- 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 文件,也就是历史命令保存文件。 ~~~ 这个文件已经讲过了,这里我们只是把它归入环境变量配置文件小节而已。