梳理下Linux系统变量,用户环境变量,用户自定义变量

简介: 对Linux下变量有了新的认识

设置了两个变量xy  最后通过export   导入了y,但没有对x做同样的操作

在当前shell中,通过echo可以读取xy  的值

[root@izbp152ke14timzud0du15z ~]# x="enable"[root@izbp152ke14timzud0du15z ~]# echo $xenable
[root@izbp152ke14timzud0du15z ~]# y="disable"[root@izbp152ke14timzud0du15z ~]# echo $ydisable
[root@izbp152ke14timzud0du15z ~]# export y

这是一段Python脚本read.py

importosimporttimeprint(os.getenv("x"))
print(os.getenv("y"))
time.sleep(1800)

执行脚本后输出,x的值没有读取出来,y的值被读取出来了

[root@izbp152ke14timzud0du15z ~]# python read.pyNone
disable


查看下Python进程

[root@izbp152ke14timzud0du15z ~]# ps -ef|grep readroot         200 Nov01 ?        00:00:00 [kthreadd]
root     2450623905011:19 pts/2    00:00:00 python read.py
root     2525820532011:20 pts/1    00:00:00 grep--color=auto read

查看下Python的父进程

[root@izbp152ke14timzud0du15z ~]# ps -ef|grep 23905root     2390523903010:50 pts/2    00:00:00 -bashroot     2450623905011:19 pts/2    00:00:00 python read.py
root     2651320532011:21 pts/1    00:00:00 grep--color=auto 23905

再重新开一个终端,执行脚本后,xy 的值都没有被读取出来

[root@izbp152ke14timzud0du15z ~]# python read.pyNone
None

我管x为用户自定义变量,y 为用户环境变量(临时),子进程可以读取当前用户环境变量,但是无法读取用户自定义变量,用户自定义变量只在当前进程中生效


设置用户永久环境变量

vim ~/.bash_profile
exportz=auto

刷新环境变量

[root@izbp152ke14timzud0du15z ~]# source ~/.bash_profile

改下Python脚本

importosimporttimeprint(os.getenv("x"))
print(os.getenv("y"))
print(os.getenv("z"))
time.sleep(1800)

再开一个新的终端执行Python脚本,

[root@izbp152ke14timzud0du15z ~]# python read.pyNone
None
auto


通过ssh再重新登录一个其他用户执行一下Python脚本

结果是什么值都读取不到,即使是z  也只是其他用户环境变量

[pl@izbp152ke14timzud0du15z ~]$ python /root/read.py
None
None
None


如何设置让所有用户都可以读取到的变量呢,那就是系统环境变量了

vim /etc/profile
exportxyz="hello"

刷新文件内容

source /etc/profile


更新下Python脚本

importosimporttimeprint(os.getenv("x"))
print(os.getenv("y"))
print(os.getenv("z"))
print(os.getenv("xyz"))
time.sleep(1800)

其它已经登录的用户,需要重新登录,然后执行Python脚本,可以读取系统环境变量xyz

[pl@izbp152ke14timzud0du15z ~]$ python /root/read.py
None
None
None
hello

总结:

  1. 系统环境变量到处可以读取
  2. 用户环境变量,针对当前用户生效,子进程可以读取到,如果是临时的,只能当前进程及子进程可以读取
  3. 用户自定义变量,针对当前进程生效
目录
相关文章
|
8天前
|
Linux
【Linux系统编程】基础指令(二)(下)
【Linux系统编程】基础指令(二)
|
8天前
|
Linux C语言
【Linux系统编程】基础指令(二)(上)
【Linux系统编程】基础指令(二)
|
1天前
|
Linux 网络安全 数据库
linux centos系统搭建samba文件服务器 NetBIOS解析 (超详细)
linux centos系统搭建samba文件服务器 NetBIOS解析 (超详细)
|
1天前
|
存储 移动开发 Linux
Linux系统之部署h5ai目录列表程序
【5月更文挑战第3天】Linux系统之部署h5ai目录列表程序
11 1
|
5天前
|
Shell Linux C++
【Linux】关于环境变量——你需要知道这些原理&指令
【Linux】关于环境变量——你需要知道这些原理&指令
|
5天前
|
Shell Linux 开发工具
【Linux】初学者需要知道的三个环境变量实验
【Linux】初学者需要知道的三个环境变量实验
|
5天前
|
Shell Linux 开发工具
【Linux】环境变量常见指令操作&基本实验(入门必看!)
【Linux】环境变量常见指令操作&基本实验(入门必看!)
|
6天前
|
运维 监控 Linux
提升系统稳定性:Linux内核参数调优实战
【5月更文挑战第1天】 在运维领域,保障服务器的高效稳定运行是核心任务之一。Linux操作系统因其开源、可靠和灵活的特点被广泛应用于服务器中。本文将深入探讨通过调整Linux内核参数来优化系统性能,提升服务器的稳定性和响应能力。文章首先介绍了内核参数调优的必要性和基本原则,然后详细阐述了调优过程中的关键步骤,包括如何监控当前系统状态,确定性能瓶颈,选择合适的参数进行调优,以及调优后的测试与验证。最后,文中提供了一些常见问题的解决策略和调优的最佳实践。
29 5
|
6天前
|
Linux
Linux系统ps命令
这些是一些常见的 `ps`命令选项和用法,用于查看系统中运行的进程及其相关信息。您可以根据需要选择合适的选项以满足您的任务要求。
18 0
|
7天前
|
存储 负载均衡 网络协议
在Linux中优化系统性能的实用指南
【4月更文挑战第30天】本文是关于Linux系统性能优化的指南,涵盖硬件选择、系统及软件更新、调整Swap分区、内核参数优化、使用性能分析工具、文件系统优化、网络服务优化和定期维护等方面。通过这些方法,可提升系统响应速度,降低资源消耗,延长硬件寿命。注意,优化需根据具体系统和应用需求进行。