查看环境变量应使用printenv或env命令,export用于将变量导出为环境变量以供子进程继承。printenv专门列出所有环境变量,输出简洁,也可查看特定变量如printenv PATH;env功能类似,但更强大,可在临时修改的环境中执行命令,如env -i创建干净环境或env VAR=value command临时设置变量;export不用于查看,而是将局部变量转为环境变量,使其在子进程中生效,如export MY_VAR="hello"。三者核心区别在于:printenv和env用于“查看”,env还能临时修改环境执行命令,而export用于“导出”变量扩大作用域。实际使用中,printenv适合快速查看,env适合隔离测试,export用于配置持久化环境变量。

在Linux中查看环境变量,最直接的方式是使用
printenv
env
export
env
printenv
env
printenv
export
要查看Linux中的环境变量,我们有几种常用且各有侧重的方法。
首先,最常用的莫过于
printenv
printenv
printenv
如果你想查看某个特定的环境变量,比如
PATH
printenv PATH
其次是
env
env
printenv
env
env -i your_command
或者,你只想在执行某个命令时临时设置一个或几个变量,而不影响当前shell环境:
env MY_VAR="hello" your_command
这在调试或者测试脚本时非常有用,避免了全局污染。
最后,
export
export
export
env
printenv
export
而
export
export
my_local_var="我只是个局部变量" echo $my_local_var # 可以显示 export my_env_var="我现在是环境变量了" echo $my_env_var # 也能显示 # 启动一个子shell看看 bash echo $my_local_var # 空,因为没导出 echo $my_env_var # 可以显示,因为导出了 exit # 退出子shell
所以,查看环境变量,我通常会先用
printenv
env
export
说白了,环境变量就是一些存储在操作系统环境中的动态命名值。它们就像是系统给各个程序和进程提供的一张“便签”,上面写着一些配置信息或者路径,告诉程序“去哪里找东西”、“用什么语言显示”、“你的家在哪里”等等。比如,我们经常遇到的
PATH
ls
PATH
ls
command not found
为什么它们如此重要?想象一下,如果没有环境变量,每个程序都需要硬编码它所依赖的路径、配置,甚至用户偏好。这不仅会使得程序变得僵硬,难以移植,而且每次修改配置都可能需要重新编译或修改大量文件。环境变量提供了一个灵活、标准化的机制,让程序能够适应不同的运行环境和用户配置。
举个我自己的例子,我经常需要在不同的项目中使用不同版本的Python。如果我只是把Python的可执行文件路径硬编码到我的脚本里,那每次切换项目都得改。但通过修改
PATH
PYTHONHOME
env
printenv
env
当你不带任何参数运行
env
printenv
printenv
然而,
env
比如,我想测试一个脚本在没有
LD_LIBRARY_PATH
env -u LD_LIBRARY_PATH my_script.sh
或者,我希望在一个完全干净的环境中运行一个程序,不带任何继承自当前shell的环境变量(除了系统强制的一些):
env -i my_program
甚至,我可以临时给一个程序设置一个特定的变量值:
env DEBUG_MODE=true my_application --config /path/to/config.ini
而
printenv
env
env
export
env
export
在Linux的shell中,当你定义一个变量时,比如
my_var="hello"
bash
my_var
而
export
export my_var
my_var
my_var
举个例子来理解作用域:
当前shell (父进程):
VAR_LOCAL="我只在父shell里" export VAR_EXPORT="我能被子进程继承" echo "父shell中 - VAR_LOCAL: $VAR_LOCAL" echo "父shell中 - VAR_EXPORT: $VAR_EXPORT"
输出:
父shell中 - VAR_LOCAL: 我只在父shell里 父shell中 - VAR_EXPORT: 我能被子进程继承
启动一个子shell (子进程):
bash echo "子shell中 - VAR_LOCAL: $VAR_LOCAL" echo "子shell中 - VAR_EXPORT: $VAR_EXPORT" exit # 退出子shell
输出:
子shell中 - VAR_LOCAL: 子shell中 - VAR_EXPORT: 我能被子进程继承
你看,
VAR_LOCAL
VAR_EXPORT
export
env
目的不同:
export
env
对变量的持久性影响:
export
unset
env
env
在我日常工作中,
export
JAVA_HOME
M2_HOME
export
env
以上就是如何在Linux中查看环境变量 Linux env与export区别的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号