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

news/2025/1/15 22:57:20 标签: linux, 运维, 服务器

linux%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E7%9A%84%E6%A6%82%E5%BF%B5">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.niftyadmin.cn/n/5824430.html

相关文章

【Debug】django.db.utils.OperationalError: (1040, ‘Too many connections‘)

报错: django.db.utils.OperationalError: (1040, ‘Too many connections‘) 排查 可能是Mysql的连接数量超过了允许的最大连接数量; 查看Mysql允许最大连接数量: -- 查看允许连接的最大数量 SHOW VARIABLES LIKE %max_connections%;-- 查…

c语言 --- 字符串

创建字符串 1. 使用字符数组创建字符串 #include <stdio.h>int main() {char str[20] "Hello, world!";str[0] h; // 修改字符串的第一个字符printf("%s\n", str); // 输出&#xff1a;hello, world!return 0; }解释&#xff1a; 数组大小 20 表…

matlab使用 BP 神经网络进行数据预测的完整流程,包括数据读取、数据预处理等等

%% 初始化程序 warning off % 关闭报警信息 close all % 关闭所有图窗 clear % 清空变量 clc % 清空命令行 setdemorandstream(172) %设置随机种子为1%% 读取数据 data xlsread(Y.xlsx); %% 划分训练集…

shell脚本练习(5)

一、需求&#xff1a;判断192.168.121.0/24网络中&#xff0c;当前在线的ip有哪些&#xff0c;并编写脚本打印出来。 [rootopenEuler-1 script]# cat exist_IP.sh #!/bin/bash ######################### #File name:exist_IP.sh #Email:obboda163.com #Created time:2025-01-…

如何制作一个高质量的 Dockerfile 镜像:从入门到实践

Docker 是一种轻量级的容器化技术&#xff0c;能够将应用程序及其依赖打包到一个可移植的容器中。Dockerfile 是构建 Docker 镜像的核心文件&#xff0c;它定义了镜像的构建步骤和配置。通过编写 Dockerfile&#xff0c;我们可以自动化地构建镜像&#xff0c;确保应用程序在不同…

Linux ssh连接算法配置

在Linux系统中&#xff0c;SSH连接的算法配置主要涉及密钥交换算法、加密算法和消息认证码算法。以下是如何查看和配置这些算法的具体步骤&#xff1a; 查看SSH服务器支持的算法 查看当前配置&#xff1a; 可以通过查看sshd_config文件来了解SSH服务器支持的算法。使用以下命令…

GESP2024年12月认证C++六级( 第三部分编程题(1)树上游走)

参考程序&#xff1a; #include <iostream> #include <string>using namespace std;int main() {long long n, s; // n为移动次数&#xff0c;s为初始节点编号string moves; // 移动指令串// 输入处理cin >> n >> s;cin >> moves;long long…

【Golang 面试题】每日 3 题(三十)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/UWz06 &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏…