Linux中的全局环境变量和局部环境变量

news2025/3/14 12:30:15

Linux中的全局环境变量和局部环境变量

      • 一、全局环境变量
      • 二、局部环境变量
      • 三、 设置全局环境变量

bash shell用一个叫作环境变量 (environment variable)的特性来存储有关shell会话和工作环境的信息(这也是它们被称作环境变量的原 因)。这项特性允许你在内存中存储数据,以便程序或shell中运行的 脚本能够轻松访问到它们。这也是存储持久数据的一种简便方法。
在bash shell中,环境变量分为两类 :

  • 全局变量
    • 全局环境变量对于shell会话和所有生成的子shell都是可见的
  • 局部变量
    • 局部变量只对创建它们的shell可见。

一、全局环境变量

1、 通过 env 这个命令可以查看系统的所有全局变量 。系统默认的全局变量名,基本都是大写的。 如果是自己创建的局部变量或是shell脚本,最好就值使用小写字母。

2、我们也可以通过echo $SHELL 或者printenv SHELL 这样的方式,来查看单个变量的值 。(SHELL是我们想知知道的变量的名字)
在这里插入图片描述

在这里插入图片描述

二、局部环境变量

1、局部环境变量只能在定义它们的进程中可见

可以通过echo $变量名 这种格式来打印出局部变量名。 或者set | grep 变量名 这种方式 ,值得注意的是env 和 printenv 这种方式只打印全局变量。在这里插入图片描述

在这里插入图片描述

2、设置局部环境变量
在shell 进程里设置环境变量的操作和給变量赋值类似,使用 一个等号就可以 my_var= hello_world,比较特别的是变量名、等号和值之间不能有空格。否则bash shell就会把值变量的值my_var当成一个单独的命令

在这里插入图片描述

3、 局部环境变量的使用范围

  • 设置了局部环境变量后,就能在shell进程的任何地方使用它了。但是,如果这个shell生成了另外一个子shell,它在子shell中就不可用。然后当你退出子shell并回到原来的shell时,这个局部环境变量依然可用

在这里插入图片描述

  • 同理,如果在子进程中设置了一个局部环境变量,那么一旦你退出了子进程,那个局部环境变量就不可用

  • 如果我们想在父shell 进程中的环境变量,可以被 子shell进程调用,那么就要把这个环境变量设置成全局环境变量

三、 设置全局环境变量

1、设置全局环境变量,是通过export 命令 来设置的,比如:
export my_var="I am Global now"
或者分两步

my_var="I am Global now"    
export  my_var    

2、 设置完成后,我们在子进程中也可以使用这个全局环境变量了。
但是有注意的点是 ,如果我们在父进程里设置全局变量,子进程可以使用,但是子进程设置的全局变量,父进程是没办法调用的。全局环境变量也只能是从父到子传这种场景如下:

3、当父shell定义一个全局环境变量,在子shell中,这个全局环境变量被重新定义了一次,退出子shell, 这个全局环境变量还是之前的值。

在这里插入图片描述

4、 删除环境变量

删除环境变量我们使用unset + 变量名 .我们在读取变量的时候要加上$这个提取符号。
在这里插入图片描述
总结:

  • 1、环境变量的设置有两种,一种就是普通的給变量赋值是我们说的局部变量赋值,另一种是全局环境变量赋值。
  • 2、 无论哪种,子进程的值,父进程是无法读取到的,同样也无法改变。
  • 3、子进程和父进程里非全局环境变量,都是相互独立的(进程之间资源不共享)。
  • 4、 子进程如果想要读取到父进程的值,需要设置成全局环境变量。
  • 5、子进程中可以对全局环境变量重新定义,改变,删除,但是影响不到父进程里的全局环境变量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1850819.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Go自定义数据的序列化流程

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

第一题(伏羲六十四卦)

题目: 首先伏羲64卦解密 再用base64解密即可

【网络安全学习】漏洞扫描:-04- ZAP漏洞扫描工具

**ZAP(Zed Attack Proxy)**是一款由OWASP组织开发的免费且开源的安全测试工具。 ZAP支持认证、AJAX爬取、自动化扫描、强制浏览和动态SSL证书等功能。 1️⃣ 安装zap工具 现在的kali版本不一定会预装zap,我们可以自行安装,安装也十分简单。 apt-get …

红队内网攻防渗透:内网渗透之内网对抗:横向移动篇入口切换SMB共享WMI管道DCOM组件Impacket套件CS插件

红队内网攻防渗透 1. 内网横向移动1.1 WMI进行横向移动1.1.1 利用条件:1.1.1 利用详情1.1.1.1 wmic1.1.1.1.1 正向shell上线1.1.1.1.2 反向shell上线1.1.1.2 cscript(不建议使用)1.1.1.3 wmiexec-impacket1.1.1.4 cs插件1.2 SMB横向移动1.2.1 利用条件:1.2.2 利用详情1.2.2…

基于CPWM与DPWM综合调制的光伏逆变器

1. 光伏并网逆变器矢量控制 图 1 为光伏发电系统常用的逆变器拓扑结 构,太阳能光伏电池板发电所产生的直流电能接 入光伏并网逆变器直流侧。逆变器将电能逆变, 经过滤波器与隔离升压变压器连接,最终并入电 网。其中隔离变压器低压侧漏感与LC滤波器组 成LCL滤波。为便于分析…

Vue80-全局路由守卫:前置、后置

一、路由守卫的定义 二、需求 在第三步,做校验! 三、代码实现 3-1、前置路由守卫 注意,此时就不能将router一开始就暴露出去了! to和from是路由组件的信息。 写法一: 写法二: 缺点:若是路由…

gitee添加别人的仓库后,在该仓库里添加文件夹/文件

一、在指定分支里添加文件夹(如果库主没有创建分支,自己还要先创建分支) eg:以在一个项目里添加视图文件为例,用Echarts分支在usr/views目录下添加Echarts文件夹,usr/views/Echarts目录下添加index.vue 1.切换为本地仓…

android | studio的UI布局和代码调试 | UI调试 (用于找到项目源码)

网上找到一个项目,想快速的搞懂是怎么实现的,搞了半天发现原来android都升级到Jetpack Compose了,然后去找源码挺不容易的,摸索中发现了这个调试的方法,还可以。 https://developer.android.com/studio/debug/layout-i…

Portainer.io安装并配置Docker远程访问及CA证书

Portainer.io安装并配置Docker远程访问及CA证书 文章目录 Portainer.io安装并配置Docker远程访问及CA证书一.安装 Portainer.io2.启动容器 二.docker API远程访问并配置CA安全认证1.配置安全(密钥)访问2.补全CA证书信息3.生成server-key.pem4.创建服务端签名请求证书文件5.创建…

监控 Grafana介绍和云服务器安装

Grafana 简介 官网地址:https://grafana.com/用Go语言开发的开源数据可视化工具,可以做数据监控和数据统计,带有告警功能。可视化:支持快速灵活的客户端图表,面板插件有许多不同方式的可视化指标和日志,官…

FaceFusionSharp OnnxRuntime版 视频换脸

FaceFusionSharp OnnxRuntime版 视频换脸 目录 效果 项目 代码 下载 其他 效果 FaceFusionSharp OnnxRuntime版效果 项目 代码 using OpenCvSharp; using System; using System.Collections.Generic; using System.Drawing; using System.Threading; using System.Window…

SO-CNN-SVM,基于SO蛇优化算法优化卷积神经网络CNN结合支持向量机SVM数据分类(多特征输入多分类)-MATLAB实现

SO-CNN-SVM,基于SO蛇优化算法优化卷积神经网络CNN结合支持向量机SVM数据分类(多特征输入多分类)-MATLAB实现 1. SO蛇优化算法(Snake Optimization Algorithm, SO) SO算法是一种启发式优化算法,灵感来自于蛇的捕食行为和社会行为…

《计算机英语》 Unit 5 Networking 网络

Section A Networking 网络 The need to share information and resources among different computers has led to linked computer systems, called networks, in which computers are connected so that data can be transferred from machine to machine. 不同计算机之间共享…

“脏读”、“幻读”、“不可重复读”

“脏读”、“幻读”、“不可重复读” 1.概念说明 “脏读”、“幻读”、“不可重复读”是数据库事务的概念。 “脏读”是指一个事务中访问到了另外一个事务未提交的数据。 “不可重复读”是指在一个事务内根据同一个条件对数据进行多次查询,但是结果却不一致&…

OpenCV 特征点检测与匹配

一 OpenCV特征场景 ①图像搜索,如以图搜图; ②拼图游戏; ③图像拼接,将两长有关联得图拼接到一起; 1 拼图方法 寻找特征 特征是唯一的 可追踪的 能比较的 二 角点 在特征中最重要的是角点 灰度剃度的最大值对应的…

少儿编程是骗局吗?少儿编程到底在学什么

少儿编程是一种有益的教育方式,它可以帮助孩子们培养逻辑思维、创造力和解决问题的能力。 少儿编程:开启未来的密码 在当今数字化的时代,编程已经成为一项重要的技能。而少儿编程,作为培养孩子们计算思维和创造力的新兴教育领域&…

泰国普吉岛与曼谷7天自由行路线与踩坑经历

本文介绍泰国6日自由行(普吉岛3日、曼谷3日)的每日详细行程、游览心得、避坑经历等。 2024年06月初,我们一行5人前往泰国普吉岛与曼谷等2地,进行了一共为期7天的旅行;其中真正花在游玩上的时间大概是5至6天。在这里就介…

深入讲解C++基础知识(一)

目录 一、基本内置类型1. 类型的作用2. 分类3. 整型3.1 内存描述及查询3.2 布尔类型 —— bool3.3 字符类型 —— char3.4 其他整型 4. 有符号类型和无符号类型5. 浮点型6. 如何选择类型7. 类型转换7.1 自动类型转换7.2 强制类型转换7.3 类型转换总结 8. 类型溢出8.1 注意事项 …

【Mac】Pixelmator Pro for Mac(媲美PS的修图软件)软件介绍

软件介绍 Pixelmator Pro是一款功能强大的图像编辑软件,专为macOS平台设计。它结合了丰富的图像编辑功能和直观的用户界面,适合专业摄影师、设计师以及图像编辑爱好者。以下是Pixelmator Pro的一些主要特点和功能介绍: 功能特色 非破坏性编…

罗克韦尔Rockwell EDI 项目案例

项目挑战 企业A有两个工厂需要接受来自Rockwell的订单,出于成本考虑,两个工厂需要使用同一套EDI系统实现对接,因此在EDI系统中要区分发给不同工厂的订单数据。除此之外,此项目中涉及到了EDI系统与SAP系统的集成,SAP系统…