Linux环境变量(Linux基础)
环境变量的存放
Linux系统下的环境变量天然都会被保存在磁盘的文件中。只有登入系统时,bash/shell
进程才会存在,也就是说只有登入系统的时候,才会分配bash/shell
程序,而环境变量就在bash/shell
的上下文中。当开始登入系统时,所有的环境变量都是从磁盘中的某些脚本或配置文件中来的。因此,每当重启系统时,环境变量都会被更新。
通常,我们可以使用 set
指令显示本地定义的shell变量和环境变量,但要注意的是,本地定义的shell变量不能被子进程进行下去,它只在本地bash内部有效。
环境变量分类
按生命周期分:
- 永久的:在环境变量脚本文件中配置,用户每次登录时会自动执行这些脚本,相当于永久生效。
- 临时的:用户利用
export
命令,在当前终端下声明环境变量,关闭Shell终端失效。
按作用域分:
- 系统环境变量:公共的,对全部的用户都生效。
- 用户环境变量:用户私有的、自定义的个性化设置,只对该用户生效。
环境变量相关命令
env
:查看当前用户全部的环境变量。env|grep
: 环境变量名:筛选包含的环境变量。export
:显示当前系统定义的所有环境变量。printenv
: 环境变量名:查看指定环境变量的值。echo $环境变量名
:查看指定环境变量的值。unset 环境变量名
:清除指定环境变量。
environ
和getenv
函数
环境变量表简称环境表,它是一个存储环境变量的数据结构,类似于一个数组,其中每个元素都是一个环境变量,而environ
指针指向的就是存放环境变量的数据结构,而getenv
指向表中指定名称的环境变量。
Python中os.envrion
模块
在python 中,通过 os.environ 获取环境变量。
key 字段
import os
os.environ.keys()
这段指令可以查看主目录下的key
常见的key字段
- linux:
os.environ['USER']:当前使用用户。 os.environ['LC_COLLATE']:路径扩展的结果排序时的字母顺序。 os.environ['SHELL']:使用shell的类型。 os.environ['LAN']:使用的语言。 os.environ['SSH_AUTH_SOCK']:ssh的执行路径。
- windows:
os.environ['HOMEPATH']:当前用户主目录。 os.environ['TEMP']:临时目录路径。 os.environ["PATHEXT"]:可执行文件。 os.environ['SYSTEMROOT']:系统主目录。 os.environ['LOGONSERVER']:机器名。 os.environ['PROMPT']:设置提示符。
os.environ.get()
用法
os.environ
是一个环境变量的字典,可以通过 get()
方法获取键对应的值。如果有这个键,返回对应的值,如果没有,则返回 none
import os
print(os.environ.get("HOME"))
也可以设置默认值,当键存在时返回对应的值,不存在时,返回默认值
print(os.environ.get("HOME", "default")) #环境变量HOME不存在,返回 default
环境变量的增删改查和判断是否存在
-
新增环境变量
os.environ['环境变量名称']='环境变量值' #其中key和value均为string类型 os.putenv('环境变量名称', '环境变量值') os.environ.setdefault('环境变量名称', '环境变量值')
-
更新环境变量
os.environ['环境变量名称']='新环境变量值'
-
获取环境变量
os.environ['环境变量名称'] os.getenv('环境变量名称') os.environ.get('环境变量名称', '默认值') #默认值可给可不给,环境变量不存在返回默认值
-
删除环境变量
del os.environ['环境变量名称'] del(os.environ['环境变量名称'])
-
判断环境变量是否存在
'环境变量值' in os.environ # 存在返回 True,不存在返回 False
参考资料
https://blog.csdn.net/weixin_48896613/article/details/127170565?fromshare=blogdetail&sharetype=blogdetail&sharerId=127170565&sharerefer=PC&sharesource=L_JLun&sharefrom=from_link
https://blog.csdn.net/ad72182009/article/details/116117744?fromshare=blogdetail&sharetype=blogdetail&sharerId=116117744&sharerefer=PC&sharesource=L_JLun&sharefrom=from_link