使用 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 就可以查看环境变量~

原文链接: https://www.jianshu.com/p/29c8f39777b8 Rapid Environment Editor (RapidEE) 是一款快速 环境变量 编辑器。它包含了一个易于使用的图形用户界面,可替换小而不方便的 Windows 编辑框。 可编辑树: 将 环境变量 和值显示为可编辑的树。 便携模式: RapidEE 不需要安装,可作为“便携式应用程序”运行。 错误检查: 自动检查无效的路径名和文件名。 多语言界面: RapidEE 被翻译成多种语言(英语、俄语、日语、法语、波兰语、德语、意大利语、拉脱维亚语、斯洛伐克语、希腊语、西班牙语、中文、荷兰语、瑞典语、韩语、克罗地亚语、丹麦语、巴西葡萄牙语、芬兰语、挪威语、印度尼西亚语、罗马尼亚语、匈牙利语、土耳其语、阿布哈兹语、乌克兰语、捷克语)并可随时更改语言。 变量检查器: 检查器显示有关变量的各种信息:名称、类型、值、在 8.3 命名约定中的每个长文件名的短文件名称,反之亦然。 静默安装: RapidEE 支持静默安装模式,这对于自动执行此 进程 非常有用。 RapidEE 可接受多个命令行参数修改系统和用户 环境变量 。 无需打字: 您不需要键入长路径名,只需使用资源管理器树选择路径。 简单的值操作: RapidEE 支持对变量值进行拖放排序。 环境变量 可备份到注册表文件(.reg)。 RapidEE 允许您通过更改皮肤改变外观和感觉。 多用户支持: 如果您具有管理员权限,则可为计算机上的任何用户编辑 环境变量 。 支持系统:Windows XP、2003、Vista、2008、Windows 7、Windows 8(32/64 位) lsof命令用于 查看 进程 开打的文件,打开文件的 进程 进程 打开的端口(TCP、UDP)。找回/恢复删除的文件。是十分方便的系统监视工具,因为lsof命令需要访问核心内存和各种文件,所以需要root用户执行。 在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,因此通过lso Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的 进程 单独运行的。 目前Tomcat最新版本为9.0,今天就由简单演示一下载Windows环境下Tomcat 9的配置。 第一步:配置与系统一致的 dotnet publish - c Release (可执行文件可以在.\bin\Release\net5.0\win-x64\publish\EnvironmentPrinter.exe ) 打印过程的所有 环境变量 : EnvironmentPrinter.exe < process> 打印特定的 环境变量 : EnvironmentPrinter.exe < process> - v < variable> 如果有多个具有相同名称的 进程 ,请指定一个数字: EnvironmentPrinter.exe < process> - n 1     前段时间有点空闲就自学了一下c#,以前也没有学过任何编程,只是对电脑操作还是很熟,会一些应用类软件,计算机相关的英文能看懂点。     看了10多节的视频教程,因为基础太差,前面学的东西老会忘,光这样学也没有多大的意义,于是就找个程序一边练一遍学。网上一搜,不知道怎么的就找了一个 进程 守护的软件,别人提供的源码,好像是在pudn下的,一测试可以运行,就是觉得不太适合自己的操作习惯。于是就开始改造了。牺牲了一周的业余时间,终于完成,在这分享一下,如果有需要的可以自行再改造,版权归原作者,至于我修改的地方,可以任意改,任意传播,没有版权。附上源码,包含源程序的和我改造的部分。只是希望能给像我这样的不会编程的一类朋友一点启示,只要努力,就能达到自己想要的效果。现成的东西,不一定是适合自己的,要想拿来适合自己,也许就需要付出努力。附上修改的说明及截图。没有多大的技术含量,对于会编程的人,也许2下就搞定了,对于不会编程的人,如果刚好需要这样的软件,那就可以偷懒了。测试了win7(x86x64),win8(x86),win10(x64),其他系统没有测试,如果不能运行请自行解决,vs2010编译的,dedug和Release都有编译好的版本。     修改及使用说明 1、配置文件precesses.xml,里面的 进程 名不要有扩展名,一定要注意。 2、配置文件中的mutl为是否多开,linecount为多开时的限制数,jgtime为守护的周期。 3、配置文件中新增linecount为相同程序限制数(如果程序本身不允许多开那就没办法),可以给每个程序配置不同限制数,但是界面上修改时,只能修改成一样。读取配置后显示最大的那个值在界面上. 4、配置文件中新增jgtime为循环时间,所有程序使用相同的循环时间,配置时可以配置成不一样的,实际没有意义,因只调用了一个定时器,但默认显示并使用最大的那个时间。 5、增加托盘图标提示及菜单 6、取消任务栏图标显示 7、默认启动最小化,如果没有任务栏,只能通过 进程 结束,固定了窗口不能改变大小 8、主界面增加了退出按钮、清空日志按钮 9、主界面点击关闭按钮后,自动最小化 10、增加 进程 调用的部分日志显示框,主要是调试方便,日志超过30行自动清屏,未保存,可修改代码关掉或不显示,evertlog目录下多余的日志关掉了,仍然有小部分日志,,如有必要自行在代码中关掉即可。 11、底部增加多开线程输入框及保存按钮,多开 进程 数大于1小于100,100为无限制模式。增加间隔时间输入框及保存按钮,间隔时间大于等于500,小于等于1000000000之间的整数(毫秒),没有限制再配置中添加应用程序的个数。 12、开始监控及停止监控互锁显示。 13、默认优先读取配置中的最大的间隔时间,如果配置错误会自动初始化为23秒。 14、其他界面布局微调 15、代码自己随意修改太拖沓,会编程的可以进行大量优化。 16、没有做自守护,可以考虑用任务计划写个批处理,再守护它。win764位以上系统,防任务管理栏结束有难度哦。 17、我用的是系统自带的自定义shell启动它,还是很稳定,23秒是我测试的需要,自己可在代码中修改,我修改的地方还是加了不少注释的。 18、调用有些程序可能无法启动的情况,和本软件无关,可能是路径问题,有些程序不允许改变路径运行等,可自己在命令行下测试调用的软件是否运行,我遇到过类似的软件,加入 环境变量 也不行,只能在同一个目录下。 19、加入配置文件错误的一些纠缠机制(linecount没有会自动创建并赋值3,值为"",也会自动修复),当然错误的情况不够完善,只考虑了没有整项或者值为""的情况,其他情况没有处理,如果遇到其他情况只会导致程序停止,不能对配置的自修复而已,只针对linecout和jgtime做了处理,jgtime整项如果没有,会自动修复为23000毫秒。程序自修复配置文件后,会自动运行,如遇不能修复的问题根据catch出的问题,自行修改源码,加入到出错情况的处理。 20、只测试了win7x86x64,win8x86,win10x64,精简系统可能无法运行,自己测试了一个5年前的极度精简的win7系统,无法运行没有任何提示,也没有去验证到底是什么问题,但大多数精简系统都行。 21、增加鼠标悬停帮助提示,提示框可能有拖影的情况,自行修改源码中的时间参数,也可改用另一种呈现方式不会拖影,源码中有,就是没有那么好看,鼠标悬停提示有点耗cpu资源。 22、双击 进程 框列出的需要守护监控的 进程 ,可以 查看 进程 更多详细信息。 23、配置文件中路径,一定要注意用\\表示,比如 d:\\bitboy\\bitboy.exe  还要有扩展名,name中的 进程 名不能有扩展名,否则找不到程序,不区分大小写。 24、本软件运行后,会自动启动配置程序路径下的软件,如果该软件不存在,则自动停止监控。所有多余的配置要自行删除,xml文件中不要有注释,没对注释做处理。 25、加入开机自启动选择项,保存到注册表中,加入了默认以管理员身份运行,解决配置文件不在system32下,开机启动找不到配置文件的问题。 26、没有对本程序做单一启动的限制,如果需要只运行一个实例,重新编译主程序中注释掉的一部分代码。对多线程运行的程序,建议设置linecount为100,否则会杀死多余的线程,一个循环周期杀一个,线程数量固定不变的可在配置中设置相同的linecount数,这样能达到守护的目的。 27、加了开机启动参数的支持,在配置文件中路径后用英文的逗号作分隔,前面的是路径,后面的是启动参数。 28、支持对多线程运行程序的退出守护,配置文件中,将linecount设置为100,并且要启用多开。当linecount配置为100后,不允许在界面上修改,只能手动打开配置文件修改。启动后检查 进程 如果没有运行,就运行一次,如果已经存在了则不处理,因为有些程序,要开启很多个线程运行,只有等所有 进程 都退出之后,才会启动一次守护的 进程 ,之后又会交给程序自适应。 29、增加循环启动时间次数的累计显示,和所有程序累计启动次数不一样,这个指的是定时器执行的次数,不管是否启动了守护的程序,这个周期都是累加,可能没多大意义,另外那个是程序启动一次才加一次。 30、防止任务管理栏结束,甚至采用服务方式启动等,对于我来说太难了,服务启动又带ui交互,好像涉及到session0穿透的问题,能力有限,没有精力搞了。 ​ 其实就是 进程 在运行时,会用到的一些字符串信息,环境表就好比是工具箱,里面放了各种 进程 运行时需要用到的“工具”,比如各种的路径通过图形界面设置、修改windows“ 环境变量 ”时,修改、设置的内容,都会被永久保存到“ 环境变量 文件”中每个 进程 环境变量 表:每一个 进程 都在自己的内存空间(堆空间)保存了一份自己的 环境变量 表。如果某 环境变量 的数据有很多条,在 环境变量 表中在windows这边使用;分隔Linux这边则使用:分隔。 [root@centos7 data]#pstree -p systemd(1)─┬─NetworkManager(882)─┬─{NetworkManager}(1002) │ └─{NetworkManager}(1007) ├─VGAuthService(884) ├─abrt. 在Linux系统上,有一些特殊的变量会被shell环境和操作系统环境用来存储一些特别的值,这类变量就被称为 环境变量 环境变量 是未在当前 进程 中定义,而从父 进程 继承而来的变量。那么怎么 查看 某个 进程 的变量呢? 工具/原料 Linux操作系统 方法/步骤 启动Linux系统,进入终端操作界面,或者用ssh之类的工具连上Linux系统。 背景:因最近试安装Linux下的jira,有一个中文插件安装后,一旦设置开机启动后,它是英文,而在终端再重新启动一次后呢,似乎插件生效,它又恢复为正常中文界面,我首先想这这涉及到一个 环境变量 的问题,因为在我设置开机启动的服务时用service jira start出现找不到一些变量,如:获取不到java的home目录,提示找不到,为此,我加上了java的 环境变量 开机启动Ok了,但是英文,我对英文认...