麒麟os可通过五种命令行方式读取cpu温度:一、安装lm-sensors并运行sensors;二、读取/sys/class/hwmon下temp_input文件;三、读取/sys/class/thermal/thermal_zone/temp文件;四、特定机型使用cputemp命令;五、用watch实现动态刷新。

如果您在麒麟OS系统中需要实时掌握CPU运行温度,但未安装专用监控工具或无法进入图形界面,则可通过内核原生接口与命令行工具组合实现精准读取。以下是解决此问题的步骤:
一、使用 lm-sensors 工具检测温度
lm-sensors 是一套成熟的 Linux 硬件监控套件,能自动识别主板及 CPU 内置传感器,并提供可读性强的温度输出,适用于大多数麒麟OS桌面与服务器环境。
1、打开终端,以 root 权限执行安装命令。对于基于 Debian/Ubuntu 的麒麟OS分支(如 V10 桌面版),运行:sudo apt-get install lm-sensors
2、对于基于 CentOS/RHEL 衍生的麒麟OS服务器版(如 V10 SP3 交易增强版),运行:sudo yum install lm_sensors
3、完成安装后,执行传感器自动探测:sudo sensors-detect
4、按提示连续敲击回车接受默认选项,直至出现 “To load everything, add the lines above to /etc/modules” 提示;随后执行:sudo modprobe coretemp
5、最后运行以下命令查看实时温度:sensors
二、直接读取 /sys/class/hwmon 接口文件
/sys/class/hwmon 是 Linux 内核标准硬件监控接口,无需额外安装软件,所有麒麟OS内核(≥4.19)均原生支持,特别适合最小化部署或安全加固场景下的只读监控。
1、列出全部硬件监控设备目录:ls /sys/class/hwmon/
2、逐个检查各 hwmon 目录下的 name 文件以识别对应芯片:cat /sys/class/hwmon/hwmon0/name
3、定位到含 temperature 字样的设备(如 coretemp、k10temp、ft2000_temp 等),读取其 temp*_input 文件:cat /sys/class/hwmon/hwmon0/temp1_input
4、注意:该值单位为毫摄氏度(m°C),例如输出 42500 表示 42.5°C。
三、通过 /sys/class/thermal 子系统获取温度
thermal 子系统专为温度调节与热策略设计,结构清晰、命名语义明确,尤其适配飞腾、鲲鹏等国产CPU内置 thermal_zone,是麒麟OS V10 SP3 中推荐使用的原生方式。
1、列出所有热区:ls /sys/class/thermal/
2、常见热区包括 thermal_zone0(CPU封装)、thermal_zone1(SoC裸片)、thermal_zone2(GPU)等;确认目标区域后,读取其温度文件:cat /sys/class/thermal/thermal_zone0/temp
3、注意:该值单位为毫摄氏度(m°C),例如输出 45000 表示 45.0°C。
四、使用 cputemp 命令(华为L410/W515等特定机型)
cputemp 是统信为华为L410/W515等搭载麒麟990系列芯片的终端定制开发的轻量级温度读取工具,直接调用 SoC 内部 thermal sensor,无需加载内核模块,响应迅速且兼容性高。
1、高版本华为L410笔记本 / W515终端适配镜像系统默认已集成该命令,可直接执行:cputemp
2、低版本系统需先安装附件工具包:sudo dpkg -i misctools_0.0.1-1_arm64.deb
3、安装完成后执行:cputemp,输出格式为:CPU Temp: 43.2°C
五、使用 watch 命令实现动态刷新监控
watch 可周期性执行指定命令并刷新终端显示,配合 sensors 或 cat 命令即可构建简易实时温度看板,适用于调试阶段持续观察温控响应。
1、每2秒刷新一次 lm-sensors 输出:watch -n 2 sensors
2、每3秒刷新一次 thermal_zone0 温度值:watch -n 3 'cat /sys/class/thermal/thermal_zone0/temp | awk \'{print $1/1000 \"°C\"}\''
3、若需同时监控多个热区,可构造复合命令:watch -n 5 'echo \"Package:\" $(cat /sys/class/thermal/thermal_zone0/temp)/1000°C; echo \"SoC:\" $(cat /sys/class/thermal/thermal_zone1/temp)/1000°C'










