用 printenv | grep "^前缀" 可精准筛选以指定字符串开头的环境变量名,因 ^ 锚定行首,避免误匹配值中含该字符串的情况;输出格式为 KEY=VALUE,可配合 cut -d'=' -f1 仅提取变量名。

直接用 printenv | grep ^前缀 即可快速筛选以指定字符串开头的环境变量,关键在于用 ^ 锚定行首,避免匹配到值中包含该前缀的变量。
用 ^ 确保只匹配变量名开头
printenv 输出格式为 KEY=VALUE,每行一个变量。要找所有以 PATH 开头的变量(如 PATH、PATH_INFO),必须让 grep 匹配行首:
-
printenv | grep "^PATH"→ 正确:只匹配PATH=...和PATH_INFO=...这类行 -
printenv | grep "PATH"→ 错误:可能误匹配MY_PATH=/tmp或HOME=/home/PATH等值中含 PATH 的行
区分大小写与常见前缀示例
Linux 环境变量默认区分大小写,注意大小写一致性:
-
printenv | grep "^JAVA"→ 匹配JAVA_HOME、JAVA_TOOL_OPTIONS -
printenv | grep "^java"→ 通常无结果(除非手动定义了小写变量) - 查系统路径相关:
printenv | grep "^LD\|^PATH\|^MAN"(用\|连接多个前缀)
增强可读性:只显示变量名(不带值)
如果只需列出变量名,可用 cut 提取等号前部分:
-
printenv | grep "^HOME" | cut -d'=' -f1→ 输出HOME -
printenv | grep "^BASH" | cut -d'=' -f1→ 输出BASH、BASH_VERSION等
处理空变量或特殊字符的注意事项
极少数变量值含换行或非打印字符,printenv 默认输出仍安全;但若怀疑有异常,可加 -0(null 分隔)配合 xargs -0,不过日常检索无需这么复杂。普通运维场景下,^前缀 写法已足够精准可靠。


















