系统的环境变量
使用 env 或者 set 命令可以查看系统当前的环境变量;
进程的环境变量
在 Linux 系统下面,进程的环境变量来自于两部分:
1)进程初始化时由加载器载入的环境变量(来自于系统、父进程或者 exec 系统调用的参数)
2)和进程执行过程中由 setenv 函数动态设置或修改的环境变量。
初始化时载入的环境变量
进程初始化时由加载器载入的环境变量信息可以通过 /proc/<pid>/environ 文件查看:
$ cat /proc/<pid>/environ
该命令的输出格式不太容易读,所有的信息挤在了同一行。使用 tr 命令将空字符替换为换行符,将会使所有的环境变量按行显示:
$ cat /proc/<pid>/environ | tr "\\0" "\\n"
或者
$ cat /proc/<pid>/environ | tr '\0' '\n'
执行过程中设置的环境变量
进程的环境变量保存在全局变量 char **__environ 中。要想显示由进程动态修改的环境变量,首先必须有这个进程的符号表,然后通过 ptrace 系统调用(比如使用 gdb)来查看。
比如 gbd -p PID 进入后,使用set environment 就可以在GDB内设置环境变量;同样的,使用show environment 就可以查看环境变量~
本文详细介绍了如何查看和理解Linux系统及进程的环境变量。包括使用`env`或`set`命令检查系统环境变量,通过`/proc/<pid>/environ`文件查看进程初始化时的环境变量,以及如何利用`ptrace`和GDB动态查看进程执行过程中设置的环境变量。
1958

被折叠的 条评论
为什么被折叠?



