博文背景
作者一直想知道原生的bash是自动加载了哪些变量,于是探究在不加载任何配置文件的情况下它是如何反应的
具体操作
1.将/etc下三个关键文件重命名避免加载
root@hangzhou:/etc# ls *.bak
bash.bashrc.bak environment.bak profile.bak
2.命令行清除环境变量并加载bash
root@hangzhou:~# env -i su - root -c bash -- --login --noprofile --norc
root@hangzhou:~# env
SHELL=/bin/bash
PWD=/root
LOGNAME=root
HOME=/root
LANG=en_US.UTF-8
LS_COLORS=
LESSCLOSE=/usr/bin/lesspipe %s %s
LESSOPEN=| /usr/bin/lesspipe %s
USER=root
SHLVL=1
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
MAIL=/var/mail/root
_=/usr/bin/env
由图可知纯净的SHELL只初始化上面几个变量。实验出真知,很爽。