Linux环境变量

环境变量配置文件

对所有用户都起作用
/etc/profile
/etc/profile.d/*.sh
/etc/bashrc

用户家目录,只对当前用户起作用
~/.bash_profile
~/.bashrc

注意:必须要通过输入用户名和密码登录(包括SSH);或不登入系统,但使用su命令切换用户,相应的环境变量才生效。所以当服务器重启后,在未登入情况下,环境变量是不生效的(因此有服务程序调用环境变量,这里需要注意).

环境变量详解

启动过程
正常登录配置文件顺序加载过程,所谓正常登录指用户通过输入用户名和密码登录的状态。
Linux环境变量_第1张图片
不正常启动(su命令切换用户)
Linux环境变量_第2张图片

/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,可以看到调用变量成功.

你可能感兴趣的:(Linux)