环境变量配置文件
对所有用户都起作用
/etc/profile
/etc/profile.d/*.sh
/etc/bashrc
用户家目录,只对当前用户起作用
~/.bash_profile
~/.bashrc
注意:必须要通过输入用户名和密码登录(包括SSH);或不登入系统,但使用su命令切换用户,相应的环境变量才生效。所以当服务器重启后,在未登入情况下,环境变量是不生效的(因此有服务程序调用环境变量,这里需要注意).
环境变量详解
启动过程
正常登录配置文件顺序加载过程,所谓正常登录指用户通过输入用户名和密码登录的状态。
不正常启动(su命令切换用户)
/etc/profile.d和/etc/profile区别
1、都用来设置环境变量文件
2、/etc/profile.d/ 高度解耦, 比 /etc/profile 好维护,不想要什么变量直接删除 /etc/profile.d/ 下对应的 shell 脚本即可
3、/etc/profile 和 /etc/profile.d 同样是登录(login)级别的变量,当用户重新登录 shell 时会触发。所以效果一致。
4、设置登录级别的变量,重新登录 shell,或者 source /etc/profile,变量生效。
在 /etc/profile.d/ 目录下新建对应的 sh 文件即可,比如:
vi /etc/profile.d/django.sh
export NAME="bruce"
export AGE="18"
立即刷新使变量可用:
source /etc/profile
查看:
echo $NAME
使用场景:
当部署Django等业务系统时,settings.py等文件里涉及数据库等密码信息,当部署的文件内容比较敏感时,将敏感信息放在环境变量里.然后使用python3的os.environ,调用环境变量,存放进settings.py对应的代码里.
注意:必须要通过输入用户名和密码登录(包括SSH);或不登入系统,但使用su命令切换用户,相应的环境变量才生效。所以当服务器重启后,在未登入情况下,环境变量是不生效的(因此有服务程序调用环境变量,这里需要注意).
python3调用环境变量
python3使用os.environ[“变量名”]来获取变量名对应的值.但需要注意,使用pycharm以及visual studio code等IDE,运行代码会提示无法找到对应的变量名.需要直接在系统shell模式,使用python3 XXX.py,可以看到调用变量成功.