1 linux中的每一个进程都有一个唯一的ID

可以通过 $$来获取。我们可以看到进程的pid都不一样。
image.png

2 source命令

这里需要引入一个新的命令——source 命令。source 是Shell 内置命令的一种,它会读取脚本文件中的代码,并依次执行所有语句。你也可以理解为,source 命令会强制执行脚本文件中的全部命令,而忽略脚本文件的权限。且他是在当前进程中运行shell脚本的。
用法: source 文件名 或者 . 文件名。.和文件名之间有一个空格

3 登录式的shell

~表示用户主目录。是通配符,/etc/profile.d/.sh 表示 /etc/profile.d/ 目录下所有的脚本文件(以.sh 结尾的文件)。判断是否为登录式也非常简单,只需要执行shopt login_shell即可,值为on表示为登录式,off为非登录式。 image.png

4 shell配置文件加载

如果是登录式的 Shell,首先会读取和执行 /etc/profiles,这是所有用户的全局配置文件,接着会到用户主目录中寻找 /.bash_login 或者 ~/.profile,它们都是用户个人的配置文件。
不同的 Linux 发行版附带的个人配置文件也不同,有的可能只有其中一个,有的可能三者都有,笔者使用的是 CentOS 7,该发行版只有 ~/.bash_profile,其它两个都没有。

如果三个文件同时存在的话,到底应该加载哪一个呢?它们的优先级顺序是 ~/.bash_profile > ~/.bash_login > ~/.profile。
如果 ~/.bash_profile 存在,那么一切以该文件为准,并且到此结束,不再加载其它的配置文件。
如果 ~/.bash_profile 不存在,那么尝试加载 /.bash_login 存在的话就到此结束,不存在的话就加载 ~/.profile。

如果以非登录的方式启动 Shell,那么就不会读取以上所说的配置文件,而是直接读取 ~/.bashrc。