linux查看、添加、删除环境变量

2023-11-13

一、Linux 环境变量介绍

1.1 Linux 环境变量介绍

环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,是操作系统为了满足不同的应用场景预先在系统内预先设置的一大批全局变量。

环境变量分类

  • 生命周期分:
    • 永久的:在环境变量脚本文件中配置,用户每次登录时会自动执行这些脚本,相当于永久生效。
    • 临时的:用户利用export命令,在当前终端下声明环境变量,关闭Shell终端失效。
  • 作用域分:
    • 系统环境变量:公共的,对全部的用户都生效。
    • 用户环境变量:用户私有的、自定义的个性化设置,只对该用户生效。

在这里插入图片描述

1.2 Linux 环境变量分类

在Linux系统中,环境变量可以分为以下几类:

  1. 系统级环境变量:
    系统级环境变量对所有用户和进程都可见。它们通常在系统启动时被设置,并被所有用户和进程共享。一些常见的系统级环境变量包括PATH(用于指定可执行文件的搜索路径)、LANG(用于设置系统语言环境)等。

  2. 用户级环境变量:
    用户级环境变量是每个用户独立设置的,只对该用户及其相关进程可见。这些变量可以在登录时通过不同的配置文件(如.bashrc、.bash_profile、.profile等)设置。常见的用户级环境变量包括HOME(指定用户的主目录路径)、USER(当前用户名)等。

  3. 进程级环境变量:
    进程级环境变量是由特定进程设置的,并且仅对该进程及其子进程可见。这些变量可以通过编程语言(如C语言中的setenv函数)在程序中进行设置,或者通过终端命令行在特定的进程上下文中设置。

需要注意的是,系统级环境变量和用户级环境变量通常是通过配置文件进行设置和管理的。对于系统级环境变量,常见的配置文件包括/etc/profile/etc/environment。对于用户级环境变量,常见的配置文件包括用户的个人配置文件(如.bashrc、.bash_profile、.profile等)。

每个环境变量都有其特定的作用和范围,根据需要进行适当的设置和管理。

1.3 Linux 常用的环境变量

在Linux系统中,有许多常用的环境变量,这些环境变量可以影响系统的行为和配置。以下是一些常见的Linux环境变量:

  1. PATH:决定了系统在哪些目录中查找可执行文件。当你输入一个命令时,系统会在PATH中定义的目录中查找该命令的可执行文件。

  2. HOME:指定当前用户的主目录路径。

  3. USER:当前用户的用户名。

  4. SHELL:指定当前用户默认使用的shell。

  5. LANG:指定系统的默认语言。

  6. LD_LIBRARY_PATH:指定系统在哪些目录中查找共享库文件。

  7. TERM:指定当前终端的类型。

  8. PS1:定义命令行提示符的格式。

  9. PS2:定义多行命令的提示符的格式。

这只是一些常见的环境变量,实际上还有很多其他的环境变量可以用来配置系统的行为和程序的运行。你可以使用printenv、env或者echo命令来查看当前系统中定义的所有环境变量。例如,使用printenv命令可以列出所有环境变量及其对应的值。

例如,要查看PATH环境变量的值,可以使用以下命令:

echo $PATH

希望这些信息对你有所帮助!如果你有其他问题,请随时提问。

二、Linux 查看环境变量

  • 显示当前用户的所有环境变量
    printenv
    # 或
    env
    
  • 查看指定环境变量
    echo $PATH 或者 echo $HOME 或者 echo $USER
    
  • 使用set查看所有本地定义的环境变量。

三、Linux 添加环境变量

3.1 添加系统级环境变量(需root权限、针对所有用户、永久生效)

vim /etc/profile
export PATH="/opt/STM/STLinux-2.3/devkit/sh4/bin:$PATH"
source /etc/profile

注:一般只有root用户才有编辑权限;

3.2 添加用户级环境变量

在用户的家目录(~)下,当使用 Bash shell 时,系统会自动加载以下文件(如果存在):

  1. .bash_profile:这是在登录时加载的主要文件。通常用于设置用户的个人环境变量和启动脚本。

  2. .bash_login:如果 .bash_profile 不存在,则会尝试加载此文件。

  3. .profile:如果 .bash_profile.bash_login 都不存在,则会尝试加载此文件。这是一个通用的配置文件,适用于多种类型的 shell。

  4. .bashrc:这是在每次打开新的终端窗口时加载的文件。它包含了用户定义的别名、函数、自定义环境变量等。

通常情况下,用户可以在.bash_profile.bash_login.profile
文件中设置一些全局的环境变量和启动脚本,而在.bashrc 文件中设置一些特定于 Bash 的配置和个人设置。

请注意,这是默认的行为,具体的加载顺序可能会受到系统配置的影响。

在用户目录下的.bash_profile文件中增加变量【对单一用户生效(永久的)】

用VI在用户目录下的.bash_profile文件中增加变量,改变量仅会对当前用户有效,并且是“永久的”。

例如:编辑guok用户目录(/home/guok)下的.bash_profile

vi /home/guok/.bash.profile
或
v ~/.bash.profile

添加如下内容:

export CLASSPATH=./JAVAHOME/lib;JAVA_HOME/jre/lib 

注:修改文件后要想马上生效还要运行$ source /home/guok/.bash_profile不然只能在下次重进此用户时生效。

3.3 SSH/串口终端临时添加环境变量

直接运行export命令定义变量【只对当前shell(BASH)有效(临时的)】

在shell的命令行下直接使用[export 变量名=变量值] 定义变量,

该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,

shell关闭了,变量也就失效了,再打开新shell时就没有这个变量,需要使用的话还需要重新定义。

1、可用 export 命令查看PATH值

export

2、单独查看PATH环境变量,可用:

echo $PATH

3、添加PATH环境变量(临时),可用:

export PATH=/opt/STM/STLinux-2.3/devkit/sh4/bin:$PATH

上述方法的PATH 在终端关闭 后就会消失。

四、Linux 删除环境变量

要删除Linux环境变量,您可以选择临时删除或永久删除。

4.1 永久删除环境变量

永久删除环境变量:

  • 编辑配置文件:要永久删除环境变量,您需要编辑适当的配置文件,并将其从文件中删除。具体的配置文件取决于您要删除的是系统环境变量还是用户环境变量。

    • 如果要删除系统环境变量,需要使用root用户权限编辑/etc/environment文件。在该文件中,找到并删除相应的环境变量。
    • 如果要删除用户环境变量,需要编辑/.bashrc、/.bash_profile或~/.profile文件(根据您使用的Shell)并删除相应的环境变量。

    例如,如果要删除名为VAR的环境变量,可以使用文本编辑器打开适当的文件,找到VAR并将其删除。保存文件后,系统会在下次启动时生效。

注意:修改这些配置文件可能需要root权限或适当的用户权限(系统级配置文件要root权限、用户级不需要)。

4.2 使用unset删除指定的环境变量

set可以设置某个环境变量的值。清除环境变量的值用unset命令。如果未指定值,则该变量值将被设为NULL。示例如下:

export TEST="Test..."			#增加一个环境变量TEST 
env|grep TEST					#此命令有输入,证明环境变量TEST已经存在了
TEST=Test... 
unset  TEST 					#删除环境变量TES
env|grep TEST					#此命令没有输出,证明环境变量TEST已经删除

4.3 删除PATH环境变量指定值

五、修改环境变量配置文件后生效

  • 针对修改的配置文件执行:source ~/.bashrc 当前终端和新连接的终端自动生效。
  • 针对已连接的终端:执行上面命令 或者 exec bash

八、其他资料

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux查看、添加、删除环境变量 的相关文章

随机推荐

  • C#编程入门基础,开启你的编程之旅

    C 文章有误请指正 如果对你有用 请点赞收藏关注一波 蟹蟹支持 C 简介 C 关键字 C 初次体验 使用 VisualStudio 创建项目 打印 Hello world 1 1 创建项目 1 2 Hello World MSDN 地址 数
  • Openjudge程序设计A_循环结构

    include
  • pytorch训练项目记录时间

    1 首先记录当前时间 import time t0 time time 2 记录结束时间 t1 time time 3 计算时间差 training time t1 t0 4 处理时间格式 import datetime def forma
  • springcloudalibaba项目的搭建

    第一步 搭建父项目 创建一个Maven项目 父项目不写代码 直接删除src 第二步 父项目需要的包 打包方式
  • MSVCP140D.dll没有被指定在Windows上运行,或者它包含错误

    1 xxx dll没有被指定在windows上运行的解决办法 方法一 完全注册系统中的 dll文件 1 开始 运行输入CMD 点击确定或者按下键盘上的回车 Enter 键 打开管理员命令提示符窗口 2 复制 for 1 in windir
  • 此场 X 直火帮 | Set Fire to The Field

    Bzzz说 要有光 就有了光 3D老师给打了光 Bzzz说 要有场 就有了此场atfield 和其他元宇宙分离了出来 Bzzz说 要有趣 就有了元宇宙原生故事和内容 脑洞力才是此场的第一生产力 Bzzz说 要有朋友 就有了坚守创作和初心的梦
  • Python面试题

    Python语言特性 1 Python的函数参数传递 看两个如下例子 分析运行结果 代码一 a 1 def fun a a 2 fun a print a 1 代码二 a def fun a a append 1 fun a print a
  • java蓝桥杯练习 星际交流

    java蓝桥杯练习 星际交流 资源限制 时间限制 1 0s 内存限制 256 0MB 问题描述 人类终于登上了火星的土地并且见到了神秘的火星人 人类和火星人都无法理解对方的语言 但是我们的科学家发明了一种用数字交流的方法 这种交流方法是这样
  • JPA中EntityListeners注解的使用

    使用场景 EntityListeners在jpa中使用 如果你是mybatis是不可以用的 它的意义 对实体属性变化的跟踪 它提供了保存前 保存后 更新前 更新后 删除前 删除后等状态 就像是拦截器一样 你可以在拦截方法里重写你的个性化逻辑
  • docker安装gitlab(离线)

    总体思路 找一台可以联网的linux 下载docker的RPM依赖包而不进行安装 yum localinstall 将所有依赖的rpm环境打包好 再在无网环境中解压逐一安装 rpm force nodeps 同理 docker镜像也通过联网
  • 10 个顶尖的 Linux 开源人工智能工具

    在这篇文章中 我们将介绍几个顶级的开源Linux生态系统的人工智能 AI 工具 目前 AI是科学和技术中不断进步的领域之一 很多人都在致力于构建软件和硬件来解决诸如医疗 教育 安全 制造业 银行等领域的日常挑战 下面是一系列旨在并开发成用于
  • Win32 API和PE-COFF

    一个熟练的Linux程序员可以写一个程序直接和内核交流 比如通过open或者write函数 在Windows则没有那么幸运了 每个新的安装包和Windows NT的发布 都改变了内核的接口 还有对应的库的集合 DLLs给进程提供了一种方式
  • RedisTemplate lettuce 实现分布式锁

    springboot2 x 以上使用redis时 默认使用了lettuce封装 比起jedis线程安全 import lombok extern slf4j Slf4j import org springframework data red
  • 闭关之 Vulkan 应用开发指南笔记(四):绘制、几何体&片段处理、同步和回读数据

    目录 第8章 绘制 8 1 准备绘制 8 2 顶点数据 8 3 索引绘制 8 3 1 只用索引的绘制 8 3 2 重置索引 8 4 实例化 8 5 间接绘制 第9章 几何体处理 9 1 表面细分 9 1 1 表面细分配置 表面细分模式 控制
  • Python笔记(基本入门函数)

    第一章 快速上手 基础知识 1 3 x y x x y y 注意求余运算符 向下圆整 如果是负数 则更远离0 10 3 10 3 10 3 10 3 十六进制 0x 八进制 0o 十进制 0b 0xAF 175 0o10 8 0b10110
  • 微信小程序获取openid的两种方式

    这篇文章是关于获取openid的两种方式 自己在学着用微信小程序来写一个小东西玩 首先我们要到小程序官网获取到自己的appid和Appsecret 如图 第一种 直接在微信小程序中获取 不需要通过后台 登录 wx login success
  • 【数据库】基础知识扫盲

    一 基础知识 关系型数据库 多张表 各表之间的关系 关系 元祖 属性 元组是关系数据库中的基本概念 关系是一张表 表中的一行 即数据库中的每条记录 就是一个元组 表中的一列就是一个属性 关系 表 元祖 表中的一行 属性 表中的一列 码 由一
  • LeetCode 1108. Defanging an IP Address

    import re class Solution def defangIPaddr self address str gt str 这个简单 正则字符串 替换 return re sub address 提交时间 2019 08 03 16
  • springboot运行原理详解

    文章目录 前言 正文 父依赖 主启动类 SpringBootApplication ComponentScan SpringBootConfiguration EnableAutoConfiguration EnableAutoConfig
  • linux查看、添加、删除环境变量

    阅读目录 一 Linux 环境变量介绍 1 1 Linux 环境变量介绍 1 2 Linux 环境变量分类 1 3 Linux 常用的环境变量 二 Linux 查看环境变量 三 Linux 添加环境变量 3 1 添加系统级环境变量 需roo