Linux环境变量与Python中os.environ模块

Linux 环境变量 (Linux 基础)

环境变量的存放

Linux 系统下的环境变量天然都会被保存在磁盘的文件中。只有登入系统时,bash/shell 进程才会存在,也就是说只有登入系统的时候,才会分配 bash/shell 程序,而环境变量就在 bash/shell 的上下文中。当开始登入系统时,所有的环境变量都是从磁盘中的某些脚本或配置文件中来的。因此,每当重启系统时,环境变量都会被更新。

通常,我们可以使用 set 指令显示本地定义的 shell 变量和环境变量,但要注意的是,本地定义的 shell 变量不能被子进程进行下去,它只在本地 bash 内部有效。

环境变量分类

按生命周期分:

  • 永久的:在环境变量脚本文件中配置,用户每次登录时会自动执行这些脚本,相当于永久生效。
  • 临时的:用户利用 export 命令,在当前终端下声明环境变量,关闭 Shell 终端失效。

按作用域分:

  • 系统环境变量:公共的,对全部的用户都生效。
  • 用户环境变量:用户私有的、自定义的个性化设置,只对该用户生效。

环境变量相关命令

  • env:查看当前用户全部的环境变量。
  • env|grep: 环境变量名:筛选包含的环境变量。
  • export:显示当前系统定义的所有环境变量。
  • printenv: 环境变量名:查看指定环境变量的值。
  • echo $环境变量名:查看指定环境变量的值。
  • unset 环境变量名:清除指定环境变量。

environgetenv 函数

环境变量表简称环境表,它是一个存储环境变量的数据结构,类似于一个数组,其中每个元素都是一个环境变量,而 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

欢迎指正、交流 ~ ~ ~

作者:Jaren
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0协议
转载请注明文章地址及作者哦 ~
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇