env和printenv可列出当前Shell所有环境变量,格式为“变量名=值”且按字母排序;前者简洁通用,后者支持查单个变量如printenv PATH;二者均不显示未export的shell变量。

直接运行 env 或 printenv 命令,就能列出当前 Shell 会话中所有生效的环境变量。
最常用:env 和 printenv
这两个命令功能基本一致,输出格式都是 变量名=值,按字母顺序排列:
-
env—— 简洁、通用,不带参数时显示全部环境变量 -
printenv—— 语义更明确,同样支持不带参数使用;额外优势是可直接跟变量名查单个,比如printenv PATH
它们只显示“环境变量”,不包含仅在当前 Shell 内部使用的 shell 变量(如用 var=123 定义但未 export 的变量)。
快速筛选特定变量
如果变量很多,想快速定位某个,可以配合 grep:
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
env | grep PATHprintenv | grep HOME
这样能过滤出含关键词的行,避免手动翻找。
注意区分:set 命令不是专门看环境变量的
set 会列出当前 Shell 中所有变量,包括环境变量 + shell 本地变量 + 函数定义,输出量大且混杂。除非你明确需要查非 export 的变量,否则不推荐用它来“查看环境变量”。
补充说明:echo $变量名 是查单个,不是查所有
像 echo $PATH 或 echo $USER 这种写法,只能看到某一个变量的值,不能列出全部。它依赖变量替换机制,$ 后面不能有空格,否则会失效。

















