Linux查看、设置与取消环境变量的操作教程

一、如何查看环境变量

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

1、env

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

env

运行结果如下:

Linux查看、设置与取消环境变量的操作教程

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

env|grepPATH

运行结果如下:

Linux查看、设置与取消环境变量的操作教程

2、使用 printenv

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

printenv

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

Linux查看、设置与取消环境变量的操作教程

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

printenv PATH

Linux查看、设置与取消环境变量的操作教程

3、使用 echo

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

echo $PATH

Linux查看、设置与取消环境变量的操作教程

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

如何解决Linux环境变量每次要source /etc/profile问题

1、方法一

把export语句写在 ~/.bashrc 文件里,或者在该文件里写上 source /etc/profile

指令:vim ~/.bashrc 或者 vi ~/.bashrc

  • “~” 指当前账号的根目录
  • “.” 表示bashrc是隐藏文件,可以用 ls -a 或 ls -la命令看到

解决办法

编辑vi ~/.bashrc 再最后面增加

# add source /etc/profile
source /etc/profile

注意:修改完要重启系统

2、方法二(自测有效)

在 /etc/profile 里配置的环境变量只要退出后都需要再 source /etc/profile 才会生效

解决办法

编辑vi ~/.bashrc 再最后面增加

if [ -f /etc/profile ]; then
    . /etc/profile
fi

注意:修改完要重启系统

以上就是Linux 查看、设置与取消环境变量详解的详细内容,更多相关资料请阅读主机测评网其它文章!

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

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

相关推荐

  • linux 服务器安全设置教程

      一、系统安全记录文件   操作系统内部的记录文件是检测是否有网络入侵的重要线索。如果您的系统是直接连到Internet,您发现有很多人对您的系统做Telnet/FTP登录尝试,…

    2024年6月29日
    000
  • CentOS 7.4禁止root用户登录并添加sudo权限管理

    系统环境:CentOS 7.4 服务器IP:192.168.8.20 目的:不能用root用户直接登录,使用普通用户管理服务器,然后用sudo提权进行操作。 1、创建管理用户,设置…

    2019年6月30日
    000
  • Linux进程信号的捕捉处理指南

    一、信号捕捉处理的概述 1、信号捕捉处理全过程 如果信号的处理动作是用户自定义函数,在信号递达时就调用这个函数,这称为捕捉信号,这个我们前面说过,但是我们的过程是比较复杂的,首先我…

    2025年8月16日
    000
  • Rsync+Inotify实时同步文件

    摘要 在企业日常web应用中,某些特殊的数据需要要求保持跟服务器端实时同步,那我们该如何来配置呢?如何来实现呢?这里可以采用rsync+inotify来实现需求。 Inotify简…

    2017年12月17日
    000
  • CentOS 7.9安装DRBD共享存储

    一、DRBD简介 DRBD(Distributed Replicated Block Device)是一款基于Linux平台实现分布式复制存储系统,DRBD可以理解为就是Linux…

    2025年1月15日
    000
  • Linux服务器下非root用户安装CUDA的详细流程(多次踩雷经验总结)

    前言 深度学习免不了需要CUDA加速,但是在诸多的CUDA安装教程中使用的都是sudo命令,服务器只有一个管理员,非管理员用户无法使用sudo命令,更新和安装CUDA通常会出现如下…

    2025年10月18日
    000
  • Linux搭建SVN服务器

    一、什么是SVN? SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。 运行方式: SVN…

    2018年8月23日
    000
  • 各种操作系统远程连接工具集合

    Windows上自带远程桌面和远程协助,linux上基本标配SSH,当我们需要跨平台远程时,可能就需要其他工具了 常用的工具如下: 工具名称 支持平台 官网 特点 teamview…

    2019年6月30日
    000
  • Linux必备命令(一)

    一、cd命令 cd命令用来切换工作目录至dirname。 其中dirName表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的home directory(也就是刚lo…

    2017年12月14日
    000
  • Linux测试端口的连通性的四种方法小结

    Linux测试端口的连通性的四种方法 方法一、telnet telnet ip port 说明: ip:是测试主机的ip地址 port:是端口,比如80 上图是使用telnet命令…

    2025年6月10日
    000

发表回复

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