Linux查看、设置与取消环境变量的详细步骤

一、如何查看环境变量

Linux 中有多种方式可以查看环境变量,最常用的是以下几种:

1、env

env 命令可以列出当前终端会话中的所有环境变量,格式是一行一个 变量名=值。

env

运行结果如下:

在这里插入图片描述

如果只想查看某一个变量,可以结合 grep:

env | grep PATH

运行结果如下:

在这里插入图片描述

2、使用 printenv

printenv 与 env 类似,也能列出环境变量。它还可以直接指定要查看的单个环境变量:

printenv

运行结果如下,和运行env貌似没有什么区别~

在这里插入图片描述

如果只想查看一个变量,采用printenv+变量名

printenv PATH

在这里插入图片描述

3、使用 echo

如果已经知道变量名,也可以用 echo 直接查看其值:

echo $PATH

在这里插入图片描述

二、env 和 set 有什么区别?

虽然 env 和 set 都可以列出变量,但它们的关注点不同:

命令 主要作用 内容范围
env 查看当前环境变量 只显示 export 出去的环境变量
set 查看所有变量(包括环境变量、局部变量、函数) 更全面,内容更多
  • env 只列出那些可以传递给子进程的环境变量。
  • set 除了环境变量,还列出普通 shell 变量、定义的函数等,输出内容更多。

举例说明:

# 定义一个普通变量
MYVAR="test"
env | grep MYVAR   # 查不到
set | grep MYVAR   # 可以看到

只有 export 过的变量才属于环境变量,会出现在 env 列表里~

三、如何设置环境变量

1、临时设置(仅当前终端有效)

可以使用 export 命令临时设置一个环境变量:

export MYVAR="test"

输入之后,我们使用env命令,就可以看到自己定义的MYVAR环境变量了。这种设置只在当前 shell 会话有效,关闭终端后失效。

临时设置环境变量之所以只能在当前终端会话中有效,是因为它们存储在内存中的当前进程环境。当你使用 export 命令设置环境变量时,实际上是在当前 shell 进程的内存中为该变量分配空间。这些变量只对当前 shell 及其启动的子进程可见,一旦该 shell 进程退出,内存中的这些变量就会被清除。因此,它们不会在新开启的终端会话或新启动的进程中自动存在。

如果想要取消临时设置,则:

unset MYVAR

取消后,在当前终端中该变量就不存在了。

2、 永久设置(每次终端启动都生效)

如果想让环境变量永久生效,需要将 export 语句写到终端配置文件中,比如Bash 用户:~/.bashrc 或 ~/.bash_profile。

# 编辑配置文件
vim ~/.bashrc
# 添加一行
export MYVAR="test"
# 保存并让其立刻生效
source ~/.bashrc

永久设置环境变量是将变量的定义写入到特定的配置文件(如 ~/.bashrc),这些配置文件在每次启动一个新的终端会话时会自动被读取和执行。因此,当你在这些文件中加入 export 语句时,这些变量会在每次打开新的终端窗口时自动加载并生效。这种设置方式不依赖于当前的 shell 会话,而是与系统配置文件的加载机制相关。所以每次你登录或打开新的终端时,这些变量都会被初始化并继承下来。

如果想要取消设置,则不仅需要运行上述的unset

unset MYVAR

还需执行:

source ~/.bashrc

刷新配置后,变量就永久取消了。

四、总结

  • 临时设置环境变量:变量仅在当前终端的 shell 进程中有效,当终端关闭时丢失。是因为它们存储在内存中的当前进程。
  • 永久设置环境变量:变量通过写入配置文件,使得在每次新开启终端时,系统会重新读取并加载这些环境变量,从而使变量保持持久性。

原创文章,作者:admin,如若转载,请注明出处:https://hostingchat.cn/2889.html

(0)
admin的头像admin
上一篇 2025年7月25日 上午12:00
下一篇 2025年7月27日 上午12:00

相关推荐

  • CentOS 6与CentOS 7区别

    一、CentOS 6与CentOS 7区别 CentOS6默认采用Sysvinit风格,Sysvinit就是system V风格的init系统,Sysvinit用术语runleve…

    2017年12月14日
    000
  • linux安装部署shadowsocks

    一、Shadowsocks简介 Shadowsocks(中文名称:影梭)是一个跨平台软件、基于Apache许可证的开放源代码软件,用于保护网络流量、加密数据传输。Shadowsoc…

    2020年7月30日
    000
  • Linux查看网络端口的命令大全

    在 Linux 中,可以使用多种工具来检查网络端口。以下是详细的命令和用法: 一. 使用前提 命令 端口必须被监听才能检测 端口未使用时是否能检测 telnet 是 否 nc 是(…

    2025年8月24日
    000
  • Linux用户及组管理

    Linux下用户及组管理 系统中的文件都有一个所属用户及所属组 使用id命令可以显示当前用户的信息 使用passwd命令可以修改当前用户密码 每个用户拥有一个UserID,操作系统…

    2017年12月14日
    000
  • CentOS 7.9搭建DNS服务器

    一、DNS简介 DNS(Domain Name System,域名系统),互联网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住较难记住的…

    2024年3月28日
    000
  • Linux配置SSH免密钥认证

    一、SSH简介 SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。…

    2017年12月17日
    000
  • Linux安装MySQL的详细图文教程

    前言 MySQL是一种关系型数据库管理系统,所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总…

    2025年8月10日
    000
  • Linux系统中yum无法下载软件的问题分析及解决方案

    一、情况概要 在跟着黑马学习Linux的过程中,发现输入yum search wget后出现了如下界面: 问了AI后大概是两个问题: 第一个是说我的DNS解析出错; 第二个是yum…

    2025年10月24日
    000
  • Centos登录提示cannot change locale (en_US.UTF-8)解决方法

    一、问题背景 在CentOS系统上登录时,用户可能会收到以下类似的错误消息: -bash: warning: setlocale: LC_CTYPE: cannot change …

    2024年3月22日
    000
  • CentOS 7.6安装部署Rsync服务器

    rsync简介 rsync全称remote sync,是一种更高效、可以本地或远程同步的命令,之所以高效是因为rsync会对需要同步的源和目的进度行对比,只同步有改变的部分,所以比…

    2017年12月17日
    000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注