Linux系统环境变量

Linux系统环境变量

    • 1. 环境变量
      • 1.1 定义环境变量
      • 1.2 使用环境变量
    • 2. 环境变量作用
      • 2.1 PATH
    • 3. 设置环境变量
      • 3.1 设置系统级环境变量
      • 3.2 设置用户级环境变量
      • 3.3 设置临时环境变量

1. 环境变量

在这里插入图片描述

在Linux系统中,常用的关键信息以键值对(Key=Value)的形式(例如:name=“buddha”)存储在环境变量配置文件中,随着系统启动用户登录加载到进程中,该进程及子进程都可以使用该全局变量,这称为环境变量。可以用env或printenv命令查看环境变量。

用户环境变量配置文件配置文件加载顺序
root、普通用户/etc/environment1
/etc/profile2
/etc/profile.d/*.sh3
/etc/bashrc4
root~/.bash_profile5
~/.bashrc6
普通用户~/.bash_profile5
~/.bashrc6

**注意:**配置文件中存在同名环境变量,后面的变量会覆盖前面的变量。

1.1 定义环境变量

环境变量就是在全局变量的基础上用export命令导出。通常环境变量应该大写。

语法:

export 变量名=变量值

示例:

export MYNAME="buddha"

1.2 使用环境变量

语法:

$变量名

${变量名}

示例:

echo $MYNAME

echo ${MYNAME}helloworld

2. 环境变量作用

以PATH环境变量为例

2.1 PATH

记录了系统执行任何命令的搜索路径

[root@hecs-141089 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

路径之间以:隔开,path变量里记录了以下搜索路径:

  • /usr/local/sbin
  • /usr/local/bin
  • /usr/sbin
  • /usr/bin
  • /root/bin

命令本质上是一个有可执行权限(x)的普通文件

[root@hecs-141089 ~]# which pwd
/usr/bin/pwd
[root@hecs-141089 ~]# ll /usr/bin | grep pwd
-rwxr-xr-x  1 root root   38280 Jul 14  2021 pwd
-rwxr-xr-x  1 root root   12992 Feb  2  2021 pwdx

普通文件的执行,需要定位到该文件才能够执行

[root@hecs-141089 ~]# /usr/bin/pwd
/root

但是为什么pwd命令没有用相对路径或绝对路径定位pwd就可以在任意目录去执行呢?

[root@hecs-141089 ~]# pwd
/root
[root@hecs-141089 home]# pwd
/home
[root@hecs-141089 profile.d]# /usr/bin/pwd
/etc/profile.d

那是因为执行任何命令的时候,都会从path环境变量所记录的搜索路径中按顺序查找有可执行权限的pwd文件,找到了就拼上路径执行该文件。

/usr/local/sbin
/usr/local/bin
/usr/sbin
# /user/bin + /pwd
/usr/bin/pwd
/root/bin

所以安装的程序可执行普通文件(命令),需要在PATH环境变量里。或者修改PATH环境里搜索路径。

**备注:**命令本质是一个有可执行权限的普通文件,把命令文件全路径补齐,一样哪里都可以执行。例如:/usr/bin/pwd

3. 设置环境变量

3.1 设置系统级环境变量

系统级环境变量,作用域是整个系统

# /etc/profile.d/{文件名.sh} 新建并打开配置文件
vim /etc/profile.d/python.sh

# 文件末尾加变量定义
export MYNAME="buddha"

# 重载配置文件
source /etc/profile.d/python.sh

# 终端使用变量
echo $MYNAME

3.2 设置用户级环境变量

用户级环境变量,作用域是当前用户

# 打开配置文件
vim ~/.bash_profile

# 文件末尾加变量定义
export MYNAME="buddha"

# 重载配置文件
source ~/.bash_profile

# 终端使用变量
echo $MYNAME

3.3 设置临时环境变量

临时环境变量,作用域只在当前shell会话窗口

# 定义变量
export MYNAME="buddha"

# 使用变量
echo $MYNAME

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

用C++编写动画+音频版极乐净土

#define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<graphics.h> #include<Windows.h> #include<MMSystem.h>//播放音乐所需要的头文件 #pragma comment(lib,"winmm.lib")//告诉编译器&#xff0c;加载winmm.lib库文件 #define C…

[OS]11.9.2023 中断

中断向量表 CPU的设计者必须在中断信息和其处理程序的入口地址之间建立某种联系&#xff0c;使得CPU根据中断信息可以找到要执行的处理程序。 中断信息中包含有标识中断源的类型码。根据CPU的设计&#xff0c;中断类型码的作用就是用来定位中断处理程序。 比如CPU 根据中断类型…

【数据结构】 二叉树理论概念!一文了解二叉树!

&#x1f3a5; 屿小夏 &#xff1a; 个人主页 &#x1f525;个人专栏 &#xff1a; 数据结构解析 &#x1f304; 莫道桑榆晚&#xff0c;为霞尚满天&#xff01; 文章目录 &#x1f4d1;前言&#x1f324;️树的概念☁️树的结构☁️树的小知识☁️树的表示与运用 &#x1f324…

python定时任务scheduler根据参数执行

python执行定时任务请参考&#xff1a;python使用apscheduler每隔一段时间自动化运行程序 传入参数时&#xff1a; 使用add_job函数中添加参数&#xff1a;args[参数1, 参数2]....传入参数顺序与对应位置一致 示例程序 import datetime from apscheduler.schedulers.backg…

一键批量删除文件名中的空格,高效整理您的文件

你是否曾经因为文件名中多余的空格而烦恼&#xff1f;这些空格不仅影响了文件的美观&#xff0c;还可能导致一些不必要的错误。现在&#xff0c;我们向您介绍一款全新的工具&#xff0c;它可以帮助您一键批量删除文件名中的空格&#xff0c;让您的文件整理更加轻松、高效&#…

【Java笔试强训】Day9(CM72 另类加法、HJ91 走方格的方案数)

CM72 另类加法 链接&#xff1a;另类加法 题目&#xff1a; 给定两个int A和B。编写一个函数返回AB的值&#xff0c;但不得使用或其他算数运算符。 题目分析&#xff1a; 代码实现&#xff1a; package Day9;public class Day9_1 {public int addAB(int A, int B) {// wr…

软件测评中心▏软件功能测试和非功能测试的区别和联系简析

在软件开发的过程中&#xff0c;功能测试和非功能测试是两个重要的环节。功能测试是指对软件的各项功能进行验证和确认&#xff0c;关注软件是否按照需求规格说明书进行了实现&#xff0c;是否满足了用户的功能需求。而非功能测试是指对软件的性能、可靠性、安全性等方面进行测…

异地传输大文件最快且安全稳定的办法

无论是企业还是个人&#xff0c;都会有传输大文件的需求&#xff0c;特别是在异地时&#xff0c;工作中最典型的就是项目资料、合同文档、视频素材等都是有一定的及时性的&#xff0c;那么在传输过程中&#xff0c;没有好的传输方式会间接性的影响到整体工作的进行&#xff0c;…

vue项目electron打包

1.设置国内镜像 npm config edit 命令行输入后会弹出npm的配置文档&#xff0c;需要文档末尾加入 electron_mirrorhttps://npm.taobao.org/mirrors/electron/ electron-builder-binaries_mirrorhttps://npm.taobao.org/mirrors/electron-builder-binaries/ 2.全局安装electron …

linux基础指令上篇

&#x1f4d9; 作者简介 &#xff1a;RO-BERRY &#x1f4d7; 学习方向&#xff1a;致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 &#x1f4d2; 日后方向 : 偏向于CPP开发以及大数据方向&#xff0c;欢迎各位关注&#xff0c;谢谢各位的支持 引用 01. ls 指令2. pwd命…

目标检测算法 - YOLOv1

文章目录 1. 作者简介2. 目标检测综述3. YOLOv1算法3.1 预测阶段3.2 预测阶段后处理3.3 训练阶段 YOLO的全称是you only look once&#xff0c;指只需要浏览一次就可以识别出图中的物体的类别和位置。 YOLO是目标检测模型。目标检测是计算机视觉中比较简单的任务&#xff0c;用…

【图像分类】【深度学习】【Pytorch版本】GoogLeNet(InceptionV1)模型算法详解

【图像分类】【深度学习】【Pytorch版本】GoogLeNet(InceptionV1)模型算法详解 文章目录 【图像分类】【深度学习】【Pytorch版本】GoogLeNet(InceptionV1)模型算法详解前言GoogLeNet讲解Inception结构InceptionV1结构1x1卷积的作用 GoogLeNet模型结构GoogLeNet Pytorch代码完整…

Maven-构建生命周期与插件

一、概念和基础 Maven针对项目的构建和发布定义了一系列明确的步骤&#xff0c;根据作用不同这些步骤分属于不同的生命周期。Maven针对每个步骤都有对应的默认插件&#xff0c;Maven在构建过程中是通过调用这些插件完成整个过程的。开发者只需要通过简单的命令就可以驱动maven…

Microsoft SDKs 有文件重定义导致编译失败的处理

一个32位的mfc项目&#xff0c;之前采用vs2019编译&#xff0c;现在换了电脑(系统是win10)&#xff0c;采用vs2022编译时&#xff0c;提示如下错误&#xff1a; 1>------ 已启动生成: 项目: aAnsys, 配置: Debug Win32 ------ 1>cl : 命令行 warning D9035: “Gm”选项…

Luckysheet 实现excel多人在线协同编辑

前言 前些天看到Luckysheet支持协同编辑Excel&#xff0c;正符合我们协同项目的一部分&#xff0c;故而想进一步完善协同文章&#xff0c;但是遇到了一下困难&#xff0c;特此做声明哈&#xff0c;若侵权&#xff0c;请联系我删除文章&#xff01; 若侵犯版权、个人隐私&#x…

图及谱聚类商圈聚类中的应用

背景 在O2O业务场景中&#xff0c;有商圈的概念&#xff0c;商圈是业务运营的单元&#xff0c;有对应的商户BD负责人以及配送运力负责任。这些商圈通常是一定地理围栏构成的区域&#xff0c;区域内包括商户和用户&#xff0c;商圈和商圈之间就通常以道路、河流等围栏进行分隔。…

酷开科技持续推动智能投影行业创新发展

近年来&#xff0c;投影仪逐渐成为年轻人追捧的家居时尚单品。据国际数据公司&#xff08;IDC&#xff09;报告显示&#xff0c;2022年中国投影机市场总出货量505万台&#xff0c;超80%为家用投影仪。相比于电视&#xff0c;投影仪外观小巧、屏幕大小可调节&#xff0c;无论是卧…

PostgreSql中解析JSON字段和解析TEXT中的JSON字段

初始化操作 创建表 CREATE TABLE orders ( "ID" int8 NOT NULL,"info_j" json NOT NULL,"info_t" text NOT NULL );初始化表 INSERT INTO orders("ID", "info_j","info_t") VALUES (1, {"name":&qu…

setViaGenMode

1.命令描述 setViaGenMode用于设置vias的全局变量&#xff0c;包括使用addRing / addStripe命令连接rings 、stripes&#xff0c;editPowerVia、sroute、addSplitPowerVia以及手拉线使用的editAddRoute/editCommitRoute。 2.-optimize_cross_via true false 未完待续

人大金仓三大兼容:SQL Server迁移无忧

SQL Server在数据库领域一直占据着重要地位。作为一款成熟稳定的关系型数据库管理系统&#xff0c;SQL Server在国内有着广泛的用户群体&#xff0c;医疗、海关、政务等行业的核心业务系统多采用SQL Server数据库。随着政策与市场的双重驱动&#xff0c;信息技术应用创新产业的…