本文目录导读:

- 获取系统启动参数(Boot Parameters)
- 获取环境变量(Environment Variables)
- 获取服务/守护进程启动环境
- 获取 Docker/容器启动环境
- 获取程序启动时的运行环境
- 通用的启动环境检测脚本
“启动环境”这个说法在不同场景下含义不同,你可能指的是以下几种情况之一,我根据最常见的需求整理了对应的脚本获取方法:
获取系统启动参数(Boot Parameters)
Linux (Bash)
# 查看内核启动参数
cat /proc/cmdline
# 获取特定参数(如 quiet, splash)
cat /proc/cmdline | grep -o '\b\w+\b' | while read param; do
echo "启动参数: $param"
done
# 格式化输出
awk '{for(i=1;i<=NF;i++) print "Param " i ": " $i}' /proc/cmdline
Windows (PowerShell)
# 查看启动配置数据 bcdedit /enum # 获取当前启动项参数 Get-CimInstance -Namespace root\wmi -Class MSBootConfig | Select-Object -ExpandProperty BootConfigData # 通过 WMI 获取 (Get-WmiObject -Class Win32_ComputerSystem).BootupState
获取环境变量(Environment Variables)
Linux/Mac (Bash)
# 所有环境变量 env printenv # 特定环境变量 echo $PATH echo $HOME echo $SHELL # 写入日志文件 env > /tmp/startup_env.log
Windows (PowerShell)
# 所有环境变量 Get-ChildItem Env: # 特定变量 $env:Path $env:USERPROFILE # 导出到文件 Get-ChildItem Env: | Out-File C:\startup_env.log
获取服务/守护进程启动环境
Linux (Systemd)
# 查看特定服务的环境 systemctl show sshd.service | grep -i environment # 查看服务状态和启动参数 systemctl status sshd.service # 查看所有服务的环境 systemctl show-environment
Linux (SysVinit)
# 查看 init 配置文件 cat /etc/inittab # 查看 rc 脚本环境 cat /etc/rc.conf
获取 Docker/容器启动环境
# 查看容器启动时的环境变量 docker inspect <container_name> | jq '.[].Config.Env' # 查看当前运行的进程环境 cat /proc/1/environ | tr '\0' '\n' # 查看 Docker Compose 环境 docker-compose config
获取程序启动时的运行环境
Python 脚本
import os
import sys
# 所有环境变量
for key, value in os.environ.items():
print(f"{key}: {value}")
# Python 路径
print(f"Python路径: {sys.path}")
# 当前工作目录
print(f"工作目录: {os.getcwd()}")
Node.js 脚本
// 环境变量 console.log(process.env); // 启动参数 console.log(process.argv); // 工作目录 console.log(process.cwd());
通用的启动环境检测脚本
Linux 综合检测脚本
#!/bin/bash echo "=== 系统启动信息 ===" echo "内核参数: $(cat /proc/cmdline)" echo "启动时间: $(who -b)" echo "运行级别: $(runlevel)" echo -e "\n=== 关键环境变量 ===" echo "PATH: $PATH" echo "HOME: $HOME" echo "SHELL: $SHELL" echo "USER: $USER" echo "LANG: $LANG" echo -e "\n=== 系统信息 ===" echo "主机名: $(hostname)" echo "内核版本: $(uname -r)" echo "架构: $(uname -m)" # 写入文件 env > /tmp/environment_dump_$(date +%Y%m%d_%H%M%S).log
请告诉我你具体想获取哪类启动环境,我可以给你更精确的脚本:
- A. 系统启动参数(kernel boot params)
- B. Shell 环境变量
- C. 服务/守护进程启动环境
- D. 容器/云环境启动配置
- E. 程序启动时的运行环境
- F. 其他(请说明)