1,Linux环境变量基本定义(基于Ubuntu示例进行讲解)

linux环境变量的概念

Linux环境变量(准确说应该是shell变量),是直接存储在操作系统中的一组键值对(dict类型),用于配置系统和应用程序的操作行为。

【有经验的描述】:它们的工作原理很简单,就比如说你本地运行一个python项目,是不是可以在app.run()方法运行之前就预加载一系列变量,该项目运行期间,这些变量在任何地方都能够调用,每一个函数中都能够获取这些变量,函数中根据自己需要将不同操作行为对应到变量的不同值上(看具体情况了)。

【描述】同理,Linux环境变量就是在系统启动时由操作系统设置【系统变量】,或者在运行程序程序时由用户或程序本身设置【环境变量,作用域只在当前程序内生效】。

环境变量对于控制程序执行、访问系统资源、配置程序设置等非常重要。

环境变量基础操作

  • 如下bash语句创建demo_temp变量(!bash shell是一种命令行解释器嗷, 以下简称shell)
declare demo_temp
  • 如下给变量赋值(shell中的赋值操作,等号左右两边不能有空格,属语法规范)
demo_temp=qianjuanmingyun
  • 读取变量的值,固定格式:echo $变量名

echo $demo_temp

环境变量的定义域

在每一个shell终端中,该终端内创建的变量只作用于当前终端内。

(终端:举个简单的例子,你在常用的Windows系统上,同时按住win加R,在弹出的弹窗中输入cmd就打开一个终端了,多重复几次,每次打开的都是一个单独的终端,在终端内定义的变量,只要你没有专门操作当前终端变量和系统变量的命令行,那么该终端所有的变量,都将在你关闭时自动销毁)

最常用的变量类型有三种:

  1. 局部变量:当前终端自己的私有变量,【作用域】只在当前终端中有效;
  2. 环境变量:终端打开时,系统默认带过来的变量,【作用域】影响全局或当前用户;
  3. 导出的环境变量(全局变量):用户通过export从普通变量导出的环境变量,【作用域】变量在当前shell和子进程中有效。

查看三种变量类型的命令行:


# 查询全部变量,包括:
# - 局部变量(仅在当前会话生效)
# - 环境变量(导出的变量,当前终端及子终端生效)
# - Shell 函数(当前会话中定义的函数)
set | sort > set.txt  # 排序保存
set > set.txt         # 原始顺序保存# 查询当前会话的环境变量(只在当前终端生效的环境变量)
env | sort > env.txt  # 排序保存
env > env.txt         # 原始顺序保存# 查询所有导出的环境变量(在当前终端及其子终端中生效)
export | sort > export.txt  # 排序保存
export > export.txt         # 原始顺序保存

不同变量的创建方式:

# 创建普通变量(非环境变量)
temp=qianjuanmingyun# 查看普通变量
echo $temp# 检查是否在环境变量中(返回为空)
env | grep temp# 导出为环境变量
export temp# 检查是否在环境变量中(返回对应的值)
env | grep temp

变量的生存周期(永久环境变量、临时环境变量)

  • 临时环境变量:通过export命令行声明即可,该变量在当前shell终端关闭时失效;
  • 永久环境变量:通过修改系统配置文件实现,该变量将永久生效。

如需设置永久环境变量,通过修改/home/用户下的.profile文件即可。

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

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

相关文章

STM32入门教程-示例程序(按键控制LED光敏传感器控制蜂鸣器)

1. LED Blink(闪烁) 代码主体包含:LED.c key.c main.c delay.c(延时防按键抖动) 程序代码如下(涉及RCC与GPIO两个外设): 1.使用RCC使能GPIO时钟 RCC_APB2PeriphClockC…

java springboot3.x jwt+spring security6.x实现用户登录认证

springboot3.x jwtspring security6.x实现用户登录认证 什么是JWT JWT(JSON Web Token)是一种开放标准(RFC 7519),它用于在网络应用环境中传递声明。通常,JWT用于身份验证和信息交换。JWT的一个典型用法是…

基于Socket和ServerSocket自定义协议的实现多端通信、消息发送、群聊发送

通信基础 Socket Socket套接字是实现网络通信的重要接口,Socket绑定的应用进程,目标Ip的端口号,以及数据传输对应的输入输出缓冲区。一个数据包到达一台计算机物理设备后,经过网络协议栈的解析,然后由操作系统调度到对…

【Uniapp-Vue3】Prop校验与prop默认值用法及循环遍历数组对象

一、prop校验 如果我们在想要限制prop的类型,就可以在接收prop的时候对接收类型进行限制: defineProps({ 属性名:{ type:类型 } }) 需要注意类型的首字母大写 但是设置了传入参数类型限制并不能严格限制,只会在后台进行提示: 二、…

Java Stream流操作List全攻略:Filter、Sort、GroupBy、Average、Sum实践

在Java 8及更高版本中,Stream API为集合处理带来了革命性的改变。本文将深入解析如何运用Stream对List进行高效的操作,包括筛选(Filter)、排序(Sort)、分组(GroupBy)、求平均值&…

ExplaineR:集成K-means聚类算法的SHAP可解释性分析 | 可视化混淆矩阵、决策曲线、模型评估与各类SHAP图

集成K-means聚类算法的SHAP可解释性分析 加载数据集并训练机器学习模型 SHAP 分析以提取特征对预测的影响 通过混淆矩阵可视化模型性能 决策曲线分析 模型评估(多指标和ROC曲线的目视检查) 带注释阈值的 ROC 曲线 加载 SHAP 结果以进行下游分析 与…

【Python通过UDP协议传输视频数据】(界面识别)

提示:界面识别项目 前言 随着网络通信技术的发展,视频数据的实时传输在各种场景中得到了广泛应用。UDP(User Datagram Protocol)作为一种无连接的协议,凭借其低延迟、高效率的特性,在实时性要求较高的视频…

浅谈云计算03 | 云计算的技术支撑(云使能技术)

云计算的技术支撑 一、定义与内涵1.1 定义与内涵 二、云计算使能技术架构2.1 宽带网络和 Internet 架构2.2 数据中心技术2.3 虚拟化技术2.4 Web 技术2.5 多租户技术2.6 服务技术 一、定义与内涵 1.1 定义与内涵 云计算技术包含一些基础的关键技术,这里称为使能技术…

QGraphicsView QGraphicsScene QGraphicsItem

QGraphicsView && QGraphicsScene &#xff1a; QGraphicsView 是 Qt 中用于显示和交互处理 2D 图形的控件&#xff0c;QGraphicsView 用于显示 QGraphicsScene 中的内容。 .h #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include &…

【大数据】机器学习-----线性模型

一、线性模型基本形式 线性模型旨在通过线性组合输入特征来预测输出。其一般形式为&#xff1a; 其中&#xff1a; x ( x 1 , x 2 , ⋯ , x d ) \mathbf{x}(x_1,x_2,\cdots,x_d) x(x1​,x2​,⋯,xd​) 是输入特征向量&#xff0c;包含 d d d 个特征。 w ( w 1 , w 2 , ⋯ ,…

基于千帆(ERNIE-Functions-8K)Function Calling的简单使用

1.Function Calling是什么&#xff1f; 1.1 概念 Function calling是一种将LLM(大语言模型Large language model)连接外部工具的能力&#xff0c;LLM经过微调后&#xff0c;可以检测出何时需要调用函数以及需要调用函数的方法名及参数&#xff0c;并返回给调用方以便调用外部…

Deep Attentional Guided Image Filtering

This work achieved the first place in the real depth map SR challenge held in ACM ICMR 2021. 目的&#xff1a;从一个target image(如低分辨的深度图)和guidance image(如高分辨的RGB图)&#xff0c;得到输出(如高分辨的深度图)。 主要思想是考虑了target和guidance之间的…

SpringBoot+Lombok项目实体属性名xXxx格式,前端接收不到

问题解析 今天发现后端传给前端的实体类中&#xff0c;有属性为xXxxx格式的&#xff0c;前端也使用相同名称接收&#xff0c;结果却不显示值&#xff01;研究了一会发现接口请求回来后&#xff0c;原xXxxx的属性名&#xff0c;会被转为全小写。具体原因为&#xff1a;使用Lombo…

高级运维:shell练习2

1、需求&#xff1a;判断192.168.1.0/24网络中&#xff0c;当前在线的ip有哪些&#xff0c;并编写脚本打印出来。 vim check.sh #!/bin/bash# 定义网络前缀 network_prefix"192.168.1"# 循环遍历1-254的IP for i in {1..254}; do# 构造完整的IP地址ip"$network_…

为深度学习创建PyTorch张量 - 最佳选项

为深度学习创建PyTorch张量 - 最佳选项 正如我们所看到的&#xff0c;PyTorch张量是torch.Tensor​ PyTorch类的实例。张量的抽象概念与PyTorch张量之间的区别在于&#xff0c;PyTorch张量为我们提供了一个可以在代码中操作的具体实现。 在上一篇文章中&#xff0c;我们看到了…

28.找出字符串中第一个匹配项的下标【力扣】KMP前缀表 ≈ find() 函数、暴力解法

class Solution { public: //得到前缀表void getNext(int *next,string needle){int j0;for(int i1;i<needle.size();i){while(j>0 && needle[j]!needle[i]) jnext[j-1];//**j>0**>j0是出口if(needle[i]needle[j]) j;next[i]j;//若写入if中&#xff0c;则该…

mysql 创建临时表报错

1. 问题描述 5.7.31 版本 mysql 数据库创建临时表报错 -- 报错语句 CREATE TEMPORARY TABLE temp_table_name SELECT * FROM table_name LIMIT 0;报错截图 [HY000][1005] Can’t create table ‘new_tbl’ (errno: 13) 2. 解决方案 步骤一&#xff1a; 查询 linux m…

使用 WPF 和 C# 将纹理应用于三角形

此示例展示了如何将纹理应用于三角形,以使场景比覆盖纯色的场景更逼真。以下是为三角形添加纹理的基本步骤。 创建一个MeshGeometry3D对象。像往常一样定义三角形的点和法线。通过向网格的TextureCoordinates集合添加值来设置三角形的纹理坐标。创建一个使用想要显示的纹理的 …

mac homebrew配置使用

本文介绍mac上homebrew工具的安装、配置过程。homebrew功能类似于centos的yum&#xff0c;用于软件包的管理&#xff0c;使用上有命令的差异。 本次配置过程使用mac&#xff0c;看官方文档&#xff0c;在linux上也可以用&#xff0c;但我没试过&#xff0c;有兴趣的同学可以试试…

OpenCV基础:矩阵的创建、检索与赋值

本文主要是介绍如何使用numpy进行矩阵的创建&#xff0c;以及从矩阵中读取数据&#xff0c;修改矩阵数据。 创建矩阵 import numpy as npa np.array([1,2,3]) b np.array([[1,2,3],[4,5,6]]) #print(a) #print(b)# 创建全0数组 eros矩阵 c np.zeros((8,8), np.uint8) #prin…