Linux怎么查看所有的系统变量
env 能看到的,其实只有已经导出的环境变量。原因很简单:它读取的是进程里的“环境块”,而那些没有执行 export 的变量,只在当前 shell 作用域内有效,子进程根本继承不到。要想把变量看全,就得用 set 或 declare -p,因为它们会把全部内容都列出来,包括未导出的变量、函数等。相比
env 能看到的,其实只有已经导出的环境变量。原因很简单:它读取的是进程里的“环境块”,而那些没有执行 export 的变量,只在当前 shell 作用域内有效,子进程根本继承不到。要想把变量看全,就得用 set 或 declare -p,因为它们会把全部内容都列出来,包括未导出的变量、函数等。相比之下,declare -p 的输出格式更规整,也更容易分辨变量是否已经导出。

env 只能看到已导出的环境变量,set 才能真正看到“所有系统变量”——包括未导出的 shell 变量、函数、内置配置项。但直接跑 set 会混入大量噪音,必须过滤。
为什么 env 不等于“所有变量”
env 打印出来的,其实是当前进程手里的那份「环境块」(environment block),里面只会包含已经通过 export 导出的变量。也就是说,如果只是写了 MYVAR=123,却没有补上 export,那它既不会出现在 env 的输出里,子进程同样也拿不到。问题不在命令本身,而在 POSIX 的环境模型就是这么规定的:没导出,就只停留在当前 shell 的作用域内。
set 怎么用才不被函数刷屏
set 默认输出变量 + 函数 + shell 选项,函数体动辄几十行。安全过滤方式是:
- 只取合法变量赋值行:
set | grep '^[a-zA-Z_][a-zA-Z0-9_]*=' - 排除函数定义(函数名后跟
()):set | grep -v '^[a-zA-Z_][a-zA-Z0-9_]*[[:space:]]*()' - 想看带引号包裹的原始值(防换行/空格截断):
set | grep '^[a-zA-Z_][a-zA-Z0-9_]*=' | sed "s/=/='/; s/$/';/" | while IFS="=" read -r k v; do echo "$k=$v"; done(慎用,仅调试时)
declare -p 是更干净的替代方案
declare -p 是 bash 内置命令,输出格式统一为 declare -x VAR="value" 或 declare -- VAR="value",能一眼区分是否已导出:
- 查所有变量(含未导出):
declare -p - 只查已导出的:
declare -px - 只查未导出的:
declare -p | grep -v '^declare -x ' - 查某个变量是否只读:
declare -p MYVAR—— 若输出含-r,说明不能unset或重赋值
别信终端里跑的 env,要看进程真实环境
你改了 PATH 后 env | grep PATH 显示正常,但启动的程序却没生效?可能它不是从当前 shell 继承的。真正权威的是 /proc/$$/environ:
- 当前 shell 的原始环境:
cat /proc/$$/environ | tr ' ' 'n' - 某子进程(如
nginx)的真实环境:cat /proc/$(pgrep nginx)/environ | tr ' ' 'n' - 注意:
$$是当前 shell 的 PID,tr ' ' 'n'必须加,否则全是乱码
这个文件内容和 env 输出一致,但绕过了 shell 层解析 —— 如果两者不一致,说明你在 shell 启动后手动修改过变量,而该进程没继承这些改动。
Shapr3D是一款面向工业设计、机械工程、建筑概念和三维打印工作流的CAD软件。Mac版采用Parasolid建模内核,支持草图约束、实体建模、工程图、可视化渲染及常见CAD格式交换,并可通过账户在多台设备之间同步项目。
REAPER是Cockos开发的数字音频工作站,提供多轨音频与MIDI录制、剪辑、处理、混音和母带制作工具。Mac版兼容Intel与Apple芯片,支持AU、VST、VST3、CLAP等插件格式,并提供高度可定制的工作流程。
Ableton Live 是面向音乐制作人与现场表演者的数字音频工作站,提供编曲视图、独具特色的现场视图、音频录制、MIDI创作、实时变速、乐器及效果器。Mac版原生支持Apple芯片,并可连接音频接口、MIDI控制器和第三方插件。
Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。














