温馨提示×

linux进程如何查看环境变量

小樊
40
2026-07-10 06:38:51
栏目: 智能运维

在 Linux 中,查看某个进程的环境变量有多种方式,取决于你是否有该进程的 PID。下面按常见场景总结。


一、通过 /proc 查看(最常用 ✅)

1️⃣ 已知进程 PID

cat /proc/PID/environ

环境变量之间用 \0(空字符)分隔,直接看不太友好,可以转换一下:

cat /proc/PID/environ | tr '\0' '\n'

或:

xargs -0 -L1 echo < /proc/PID/environ

✅ 示例:

cat /proc/1234/environ | tr '\0' '\n' | grep PATH

2️⃣ 先查 PID

ps -ef | grep 进程名

或:

pidof 进程名

二、查看当前 shell 的环境变量(不是其他进程)

env

或:

printenv

查看单个变量:

echo $PATH

⚠️ 注意:
这只能查看当前 shell,不能查看其他进程。


三、查看指定进程并列出环境变量(组合方式)

ps e -p PID

或(更详细):

cat /proc/PID/cmdline | tr '\0' ' '
cat /proc/PID/environ | tr '\0' '\n'

四、使用 gdb(高级 / 调试场景)

适用于无法通过 /proc 查看的情况(如某些容器或权限受限):

gdb -p PID

在 gdb 中:

info environ

show environment

五、systemd 管理的服务

如果是 systemd 服务:

systemctl show 服务名 --property=Environment

或查看进程:

cat /proc/$(pidof 服务名)/environ | tr '\0' '\n'

六、Docker 容器中的进程

docker inspect 容器ID

或进入容器后:

cat /proc/1/environ | tr '\0' '\n'

七、注意事项 ⚠️

  • 需要 root 权限 才能查看其他用户进程的环境变量
  • 环境变量是 进程启动时的快照,运行中修改不会影响 /proc/PID/environ
  • /proc/PID/environ 是内核提供的接口,最可靠

总结(最常用)

# 查看某进程环境变量
cat /proc/PID/environ | tr '\0' '\n'

如果你愿意,可以告诉我:

  • 普通进程 / systemd 服务 / Docker 容器 / Kubernetes Pod
  • 查看启动参数还是运行时变量

我可以给你更精确的命令。

0