在银河麒麟系统中可通过sensors命令(需安装lm-sensors并加载对应模块)、直接读取/sys/class/thermal/或/sys/class/hwmon/下温度文件三种方式查看CPU温度,分别适用于结构化监控、零依赖应急和单核精细检测场景。

如果您在银河麒麟操作系统中需要快速确认CPU当前运行温度,比如排查风扇异常停转、验证散热硅脂是否失效,或在无图形界面的服务器环境中做基础状态巡检,命令行是最直接可靠的途径。所有方法均适配银河麒麟V10 SP3交易增强版、桌面版及飞腾D2000、鲲鹏920、海光HYGON等国产CPU平台,无需额外图形环境支持。
用 sensors 命令查看(需先安装并探测)
这是最结构化、带阈值提示的查看方式,但必须完成传感器模块加载,否则会显示 【Adapter: Non-I2C bus】 或完全空白——这不是命令失败,而是内核尚未加载对应驱动。
第一步:以 root 权限安装 lm-sensors 工具。桌面版(apt 源)执行:sudo apt-get install lm-sensors -y;SP3 服务器版(yum 源)执行:sudo yum install lm_sensors -y。
第二步:运行自动探测脚本:sudo sensors-detect。全程按回车接受默认选项,当出现 “Probe I2C adapter?” 提示时输入 YES,后续全部选 YES,直到提示 “To load everything, add the lines above to /etc/modules”。
第三步:手动加载核心温度模块。x86_64 平台执行 sudo modprobe coretemp;飞腾平台执行 sudo modprobe ft2000_temp;鲲鹏平台执行 sudo modprobe hisi_thermal。这一步漏掉,sensors 就永远不显示 CPU 温度。
第四步:执行 sensors 查看结果。输出中明确标有 Package id 0 的行是 CPU 封装总温,Core 0、Core 1 等是各物理核心独立温度,单位为 °C,括号内 high/crit 是告警与临界阈值。
直接读取 /sys/class/thermal(零依赖,秒出结果)
这个方法跳过所有软件安装和模块加载,直接从 Linux 内核热管理子系统读取原始数据,适合最小化系统、安全加固环境或临时应急检查。
执行 ls /sys/class/thermal/ 列出所有热区。常见有效热区包括 thermal_zone0(通常为 CPU 封装)、thermal_zone1(可能为 GPU 或主板芯片),但命名无绝对规律。
逐个检查类型:cat /sys/class/thermal/thermal_zone0/type。若返回 x86_pkg_temp、cpu-thermal 或 ft2000_cpu,说明该 zone 对应 CPU 温度;若返回 INT3400 或 acpitz,则大概率是主板南桥或通用 ACPI 温度,参考价值较低。
确认目标热区后,读取其温度值:cat /sys/class/thermal/thermal_zone0/temp。注意:该值单位为毫摄氏度(m°C),例如输出 52375 表示 52.375°C。可直接用 echo $(($(cat /sys/class/thermal/thermal_zone0/temp)/1000))°C 快速换算成整数摄氏度。
读取 /sys/class/hwmon 下的硬件监控接口
此路径提供更底层、更精细的传感器映射,部分飞腾FT-2000+/鲲鹏920主板会为每个核心单独暴露 temp*_input 文件,适合需要区分单核发热情况的场景。
方法一:定位 CPU 温度设备目录
执行 ls /sys/class/hwmon/,得到类似 hwmon0、hwmon1 的列表;再对每个目录运行 cat /sys/class/hwmon/hwmon0/name 2>/dev/null,找输出为 coretemp、ft2000_temp 或 hisi_thermal 的那个目录。
方法二:读取原始温度值
确认 hwmon0 是目标后,执行 cat /sys/class/hwmon/hwmon0/temp1_input。该值同样是毫摄氏度,需除以 1000 才是真实温度。注意:【temp1_input 通常代表 Package 总温,temp2_input 起才对应 Core 0、Core 1 等独立核心】,顺序不可颠倒。
方法三:一键汇总所有核心温度(适用于已知 hwmon 编号)for i in $(seq 1 8); do echo "Core $((i-1)): $(awk '{printf "%.1f°C", $1/1000}' /sys/class/hwmon/hwmon0/temp${i}_input 2>/dev/null)"; done | grep -v "°C$"。该命令会尝试读取 temp1_input 到 temp8_input,自动跳过不存在的文件,并格式化输出带小数点的摄氏度。

















