如何管理Linux环境变量?

news2024/11/22 22:05:57

1、查看环境变量

        Linux 发行版具有环境变量和 shell 变量,它们的功能类似,但作用域不同。

        要列出 Linux 中的所有环境变量,运行printenv命令。

        在流行的 Linux 发行版中,一些最常见的环境变量包括:

        PWD – 当前工作目录。

        USER – 当前登录的用户帐户。

        SHELL – 当前用户的 shell 位置。

        HOME – 用户的主目录。

        EDITOR – 系统默认的文件编辑器。

        PATH – 所有系统可执行文件的位置。

2、打印单个环境变量

        使用echo命令打印单个环境变量值。语法如下:

echo $CXX

3、设置临时环境变量

        使用export命令可以在Linux操作系统中临时设置全局环境变量。

        以下是语法:

export HOME="/etc/another/path"

        请记住,此命令仅将新的全局变量应用于当前环境。此外,这些更改将在重新启动系统后重置。

4、设置永久环境变量

        修改特定于 shell 的配置文件以使环境变量持久化。但是,要编辑的文件取决于您是要更改用户特定配置还是系统范围配置。

(1)用户特定的环境变量

        编辑~/.bashrc以仅为当前用户设置永久环境变量。为此,请使用nano等文本编辑器打开它:

sudo nano ~/.bashrc

        在文件的开头或底部添加键值对,可以更好地组织。以下是语法:

export VAR="VALUE"

        按Ctrl+X、Y和Enter键关闭nano并保存更改。使用以下命令刷新当前shell会话以应用新配置:

source ~/.bashrc

        如果要为登录shell设置变量,请修改~/.profile文件,而不是~/.bashrc。请注意,您也可以通过~修改shell函数/bashrc文件。

(2)系统范围的环境变量

        要设置适用于操作系统中所有用户的永久环境变量,请使用文本编辑器编辑/etc/environment文件:

sudo nano /etc/environment

        使用基本语法将键值对添加到文件中,无需导出:

VAR="VALUE"

        保存文件并关闭nano。要应用更改,请重新登录当前用户或使用reboot命令重新启动系统。每当您进入bash登录shell时,配置就会加载。

        除了/etc/environment文件之外,还可以将环境变量添加到/etc/profile.d目录中。要执行此操作,请使用以下命令导航到文件夹:

sudo cd /etc/profile.d

        使用nano文本编辑器创建一个新的shell脚本文件来存储新的全局变量:

sudo nano global_env.sh

        将global_env替换为您想要的名称,最好是描述性名称,以简化标识。在nano中,使用以下语法编写环境变量:

export VAR="VALUE"

        保存更改并关闭文本编辑器。重新启动系统,将设置应用于bash shell。如果运行printenv命令,新配置应该显示在Linux环境变量列表中。

6、删除环境变量

        使用unset命令删除 Linux 中的环境变量。语法如下:

unset VAR

        unset命令删除是临时的,系统重新启动后环境变量还是会恢复的。要永久删除环境变量,请使用文本编辑器打开~/.bashrc/etc/environment配置文件。删除相应的行并保存更改。

        但是通常建议在字符串开头添加井号 ( # ) 以将其停用,而不是删除。

7、开发中的Linux环境变量

        环境变量可让您轻松设置代码库的不同区域来存储应用程序的敏感信息。它有助于提高安全性,因为管理员可以限制特定用户的访问权限。

        此外,在shell脚本中使用环境变量有助于简化自动部署过程。无需在每个.sh文件中手动写入 API URL 等信息,只需导出它们即可应用该值。

        此外,它还简化了应用程序管理和开发,因为您不需要频繁修改代码库。例如,我们设置两个不同的API URL作为环境变量:

export PYAPP_ENV="TEST"

export PYAPP_TEST_API="https://api.domain.tld/"

export PYAPP_DEPLOY_API="https://api2.domain.tld/"

        我们将PYAPP_ENV环境变量调用到应用程序的代码库中。在部署过程中,我们可以应用PYAPP_DEPLOY_API将其值临时更改为DEPLOY

8、示例

        假设系统里面已经安装了gcc,那么环境变量如何指定CXX?

        假设当您已经安装了GCC 7.3 时,要指定 C++ 编译器 ( CXX) 环境变量,您需要将该变量设置为所需 C++ 编译器的路径。

        在这种情况下,您需要将其设置为g++-7.3编译器可执行文件的路径,该路径通常与 GCC 7.3 关联。

        临时设置CXX变量: CXX要为单个命令或短会话临时设置变量,您可以export在终端中使用该命令。

        例如,要将CXX变量设置给/usr/bin/g++-7.3编译器,您可以使用:

export CXX=/usr/bin/g++-7.3

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

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

相关文章

上位机图像处理和嵌入式模块部署(树莓派4b的替代品)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 实话实说,树莓派4b的产品力还是比较优秀的,价格还算适中。但是和国产卡片电脑比起来,则逊色不少。功能差不多的…

BGP—边界网关协议

BGP 动态路由协议可以按照工作范围分为IGP以及EGP。IGP工作在同一个AS内,主要用来发现和计算路由,为AS内提供路由信息的交换;而EGP工作在AS与AS之间,在AS间提供无环路的路由信息交换,BGP则是EGP的一种。 BGP是一…

【6D位姿估计】FoundationPose 跑通demo 训练记录

前言 本文记录在FoundationPose中,跑通基于CAD模型为输入的demo,输出位姿信息,可视化结果。 然后分享NeRF物体重建部分的训练,以及RGBD图为输入的demo。 1、搭建环境 方案1:基于docker镜像(推荐&#xf…

《Boosting Object Detection with Zero-Shot Day-Night Domain Adaptation》2024CVPR

域不变特征:是指在不同的数据域或环境下,特征能够保持不变或具有一定程度的鲁棒性。实现域不变特征可以在许多计算机视觉和机器学习任务中具有重要的作用,特别是在涉及跨域或跨环境的应用场景中。 以下是一些常用的实施域不变特征的方法: 1. 数据归一化:通过将数据进行归一…

Q1季度电饭煲家电行业线上市场(京东天猫淘宝)销售数据排行榜

鲸参谋监测的2024年Q1季度线上电商平台(天猫淘宝京东)电饭煲家电销售数据已出炉! 今年Q1季度,电饭煲销售成绩不如预期。根据鲸参谋数据显示,今年Q1季度在线上电商平台(淘宝天猫京东)电饭煲销量…

angular13 自定义组件全项目都可用 自存

1.定义自定义组件 使用命令创建一个组件 但删除它在你的module里的声明,因为会报错只能引用一次 在本组件中创建一个module文件,引入刚才的组件component.ts import { NgModule } from angular/core; import { CommonModule } from angular/common; im…

数据库开发记录

一.MySQL相关 1.Spatial Data相关

【极客时间】小马哥讲 Spring 核心编程思想 [250讲] [96G]

01 课程介绍 小马哥讲 Spring 核心编程思想,由乐学编程课堂网整理发布完结无密版。本课带你系统讲解Spring Framework 核心技术,深耕原理拆解Spring核心知识点,由浅入深拆解Spring Framework 核心思想、设计思维,以及实现&#x…

【vivado】debug相关时钟及其约束关系

一、前言 在xilinx fpga的degug过程中,经常出现由于时钟不对而导致的观测波形失败,要想能够解决这些问题需要了解其debug的组成环境以及之间的数据流。本文主要介绍debug过程中需要的时钟及各时钟之间的关系。 二、debug相关时钟 Vivado 硬件管理器使…

Qt---绘图和绘图设备

一、QPainter绘图 绘图事件 void paintEvent() 声明一个画家对象,OPainter painter(this) this指定绘图设备 画线、画圆、画矩形、画文字 设置画笔QPen 设置画笔宽度、风格 设置画刷QBrush 设置画刷风格 代码示例: #includ…

shell连接ubuntu上传文件失败,windows本地上传文件给linux失败

我直接用ubuntu上传文件失败 我用finalshell上传文件也失败 首先,我就觉得应该是我们的用户权限问题 所以我们从ubuntu用户换成root用户 sudo passwd root 设置我们的root用户的密码,我们这里就设置成root吧 然后,修改一下我们的文件 sudo…

数据挖掘(三)特征构造

前言 基于国防科技大学 丁兆云老师的《数据挖掘》课程 数据挖掘 数据挖掘(一)数据类型与统计 数据挖掘(二)数据预处理 3、特征构造 3.1 基本特征构造方法: 3.1.1 运用已有知识直接构造: 一般是根据原有…

Nurbs曲线

本文深入探讨了Nurbs曲线的概念、原理及应用,揭示了其在数字设计领域的独特价值和广泛影响。Nurbs曲线作为一种强大的数学工具,为设计师们提供了更加灵活、精确的曲线创建方式,从而极大地提升了设计作品的质感和表现力。文章首先介绍了Nurbs曲…

[FlareOn1]Bob Doge

[FlareOn1]Bob Doge Hint:本题解出相应字符串后请用flag{}包裹,形如:flag{123456flare-on.com} 得到的 flag 请包上 flag{} 提交。 密码:malware 没什么思路,原exe文件运行又install了一个challenge1.exe文件 c#写的&#xff…

618购物狂欢不知道怎么买?请收下这份好物清单,直接闭眼入!

在繁忙的618购物狂欢节来临之际,面对琳琅满目的商品,你是否感到无从下手?别担心,我们精心整理了一份好物清单,汇聚了各类热销与口碑兼具的精品。无论你是追求品质生活的消费者,还是寻找实惠好物的网购达人&…

618值得入手的数码产品怎么选?2024 买过不后悔的数码好物分享

在数字时代的浪潮中,每一次的购物狂欢节都如同一场科技盛宴,让我们有机会接触到最前沿、最实用的数码产品,而“618”无疑是这场盛宴中最为引人瞩目的日子之一。面对琳琅满目的商品,如何选择那些真正值得入手的数码好物&#xff0c…

社交媒体数据恢复:派派

派派是一款非常流行的社交软件,但是如果你在使用派派的过程中,不小心删除了一些重要的聊天记录或者其他数据,那么该怎么办呢?下面是一些简单的步骤,可以帮助你进行数据恢复。 1. 首先打开派派,并进入需要恢…

idea使用gitee基本操作流程

1.首先,每次要写代码前,先切换到自己负责的分支 点击签出。 然后拉取一次远程master分支,保证得到的是最新的代码。 写完代码后,在左侧栏有提交按钮。 点击后,选择更新的文件,输入描述内容(必填…

深度解析Nginx:高性能Web服务器的奥秘(下)

🐇明明跟你说过:个人主页 🏅个人专栏:《洞察之眼:ELK监控与可视化》🏅 🔖行路有良友,便是天堂🔖 目录 一、前言 1、Nginx概述 二、Nginx核心功能 1、URL重写与重…

C语言易错提醒选择题精选

Ⅰ 易错题 1.设有double p;&#xff0c;为变量p声明一个引用名称rp,则定义语句为 double& rpp; 2.已知‘A’一‘Z’的ASCII码为65—90&#xff0c;当执行“char ch14*52&#xff1b;cout<<ch<<endl;”语句序列后得到的输出结H &#xff0c;72对应ASCII码中…