Linux查看、设置与取消环境变量的操作教程
<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li>一、如何查看环境变量<ul class="second_class_ul"><li>1、env</li><li>2、使用 printenv</li><li>3、使用 echo</li></ul></li><li>二、env 和 set 有什么区别?<ul class="second_class_ul"></ul></li><li>三、如何设置环境变量<ul class="second_class_ul"><li>1、临时设置(仅当前终端有效)</li><li>2、 永久设置(每次终端启动都生效)</li></ul></li><li>四、总结<ul class="second_class_ul"></ul></li><li>如何解决Linux环境变量每次要source /etc/profile问题<ul class="second_class_ul"><li>1、方法一</li><ul class="third_class_ul"><li>解决办法</li></ul><li>2、方法二(自测有效)</li><ul class="third_class_ul"><li>解决办法</li></ul></ul></li></ul></div><p class="maodian"></p><h2>一、如何查看环境变量</h2><p>Linux 中有多种方式可以查看环境变量,最常用的是以下几种:</p>
<p class="maodian"></p><h3>1、env</h3>
<p>env 命令可以列出当前终端会话中的所有环境变量,格式是一行一个 变量名=值。</p>
<div class="dxycode"><pre class="brush:bash;">env</pre></div>
<p>运行结果如下:</p>
<p style="text-align:center"><img alt="" src="https://zhuji.jb51.net/uploads/allimg/20250709/2-250F911301Y51.png" /></p>
<p>如果只想查看某一个变量,可以结合 grep:</p>
<div class="dxycode"><pre class="brush:bash;">env|grepPATH</pre></div>
<p>运行结果如下:</p>
<p style="text-align:center"><img alt="" src="https://zhuji.jb51.net/uploads/allimg/20250709/2-250F911301S43.png" /></p>
<p class="maodian"></p><h3>2、使用 printenv</h3>
<p>printenv 与 env 类似,也能列出环境变量。它还可以直接指定要查看的单个环境变量:</p>
<div class="dxycode"><pre class="brush:bash;">printenv</pre></div>
<p>运行结果如下,和运行env貌似没有什么区别~</p>
<p style="text-align:center"><img alt="" src="https://zhuji.jb51.net/uploads/allimg/20250709/2-250F911301W04.png" /></p>
<p>如果只想查看一个变量,采用printenv+变量名</p>
<div class="dxycode"><pre class="brush:bash;">printenv PATH</pre></div>
<p style="text-align:center"><img alt="" src="https://zhuji.jb51.net/uploads/allimg/20250709/2-250F911301c21.png" /></p>
<p class="maodian"></p><h3>3、使用 echo</h3>
<p>如果已经知道变量名,也可以用 echo 直接查看其值:</p>
<div class="dxycode"><pre>echo $PATH</pre></div>
<p style="text-align:center"><img alt="" src="https://zhuji.jb51.net/uploads/allimg/20250709/2-250F91130195G.png" /></p>
<p class="maodian"></p><h2>二、env 和 set 有什么区别?</h2>
<p>虽然 env 和 set 都可以列出变量,但它们的关注点不同:</p>
<p>命令 主要作用 内容范围</p>
<table><tbody><tr></tr></tbody><tbody><tr><td>env</td><td>查看当前环境变量</td><td>只显示 export 出去的环境变量</td></tr><tr><td>set</td><td>查看所有变量(包括环境变量、局部变量、函数)</td><td>更全面,内容更多</td></tr></tbody></table>
<p>env 只列出那些可以传递给子进程的环境变量。 set 除了环境变量,还列出普通 shell 变量、定义的函数等,输出内容更多。</p>
<p>举例说明:</p>
<div class="dxycode"><pre class="brush:bash;"># 定义一个普通变量
MYVAR="test"
env | grep MYVAR # 查不到
set | grep MYVAR # 可以看到</pre></div>
<p>只有 export 过的变量才属于环境变量,会出现在 env 列表里~</p>
<p class="maodian"></p><h2>三、如何设置环境变量</h2>
<p class="maodian"></p><h3>1、临时设置(仅当前终端有效)</h3>
<p>可以使用 export 命令临时设置一个环境变量:</p>
<div class="dxycode"><pre class="brush:bash;">export MYVAR="test"</pre></div>
<p>输入之后,我们使用env命令,就可以看到自己定义的MYVAR环境变量了。这种设置只在当前 shell 会话有效,关闭终端后失效。</p>
<p>临时设置环境变量之所以只能在当前终端会话中有效,是因为它们存储在内存中的当前进程环境。当你使用 export 命令设置环境变量时,实际上是在当前 shell 进程的内存中为该变量分配空间。这些变量只对当前 shell 及其启动的子进程可见,一旦该 shell 进程退出,内存中的这些变量就会被清除。因此,它们不会在新开启的终端会话或新启动的进程中自动存在。</p>
<p>如果想要取消临时设置,则:</p>
<div class="dxycode"><pre class="brush:bash;">unset MYVAR</pre></div>
<p>取消后,在当前终端中该变量就不存在了。</p>
<p class="maodian"></p><h3>2、 永久设置(每次终端启动都生效)</h3>
<p>如果想让环境变量永久生效,需要将 export 语句写到终端配置文件中,比如Bash 用户:~/.bashrc 或 ~/.bash_profile。</p>
<div class="dxycode"><pre class="brush:bash;"># 编辑配置文件
vim ~/.bashrc
# 添加一行
export MYVAR="test"
# 保存并让其立刻生效
source ~/.bashrc</pre></div>
<p>永久设置环境变量是将变量的定义写入到特定的配置文件(如 ~/.bashrc),这些配置文件在每次启动一个新的终端会话时会自动被读取和执行。因此,当你在这些文件中加入 export 语句时,这些变量会在每次打开新的终端窗口时自动加载并生效。这种设置方式不依赖于当前的 shell 会话,而是与系统配置文件的加载机制相关。所以每次你登录或打开新的终端时,这些变量都会被初始化并继承下来。</p>
<p>如果想要取消设置,则不仅需要运行上述的unset</p>
<div class="dxycode"><pre class="brush:bash;">unset MYVAR</pre></div>
<p>还需执行:</p>
<div class="dxycode"><pre class="brush:bash;">source ~/.bashrc</pre></div>
<p>刷新配置后,变量就永久取消了。</p>
<p class="maodian"></p><h2>四、总结</h2>
<p>临时设置环境变量:变量仅在当前终端的 shell 进程中有效,当终端关闭时丢失。是因为它们存储在内存中的当前进程。 永久设置环境变量:变量通过写入配置文件,使得在每次新开启终端时,系统会重新读取并加载这些环境变量,从而使变量保持持久性。</p>
<p class="maodian"></p><h2>如何解决Linux环境变量每次要source /etc/profile问题</h2>
<p class="maodian"></p><h3>1、方法一</h3>
<p>把export语句写在 ~/.bashrc 文件里,或者在该文件里写上 source /etc/profile</p>
<p>指令:vim ~/.bashrc 或者 vi ~/.bashrc</p>
<ul><li>“~” 指当前账号的根目录</li><li>“.” 表示bashrc是隐藏文件,可以用 ls -a 或 ls -la命令看到</li></ul>
<p class="maodian"></p><p class="maodian"></p><h4>解决办法</h4>
<p>编辑vi ~/.bashrc 再最后面增加</p>
<div class="dxycode"><pre class="brush:bash;"># add source /etc/profile
source /etc/profile</pre></div>
<p>注意:修改完要重启系统</p>
<p class="maodian"></p><h3>2、方法二(自测有效)</h3>
<p>在 /etc/profile 里配置的环境变量只要退出后都需要再 source /etc/profile 才会生效</p>
<p class="maodian"></p><p class="maodian"></p><h4>解决办法</h4>
<p>编辑vi ~/.bashrc 再最后面增加</p>
<div class="dxycode"><pre class="brush:bash;">if [ -f /etc/profile ]; then
. /etc/profile
fi</pre></div>
<p>注意:修改完要重启系统</p>
<p>以上就是Linux 查看、设置与取消环境变量详解的详细内容,更多相关资料请阅读琼殿技术社区其它文章!</p>
頁:
[1]