如何在Ubuntu Linux中获取CPU温度

本文介绍了在Ubuntu Linux中查看CPU温度的两种方法:一是使用命令行工具Lm_sensors,二是通过图形化工具psensor和hardinfo。通过这些工具,你可以实时监控CPU温度、硬盘温度、风扇转速等硬件信息。

Lm_sensors是一个命令行工具,用于显示所有芯片传感器数据的当前读数,包括CPU温度。默认情况下,Ubuntu LInux没有安装Lm_Sensors,因此,我们必须自己安装它们。

bob@bob-PC:~$ sudo apt install lm-sensors

检测硬件

接下来,我们需要检测安装在电脑上的硬件监控芯片。现在我们可以开始检测电脑的硬件传感器了:

bob@bob-PC:~$ sudo sensors-detect
# sensors-detect revision 6284 (2015-05-31 14:00:33 +0200)
# System: VMware, Inc. VMware Virtual Platform [None]
# Board: Intel Corporation 440BX Desktop Reference Platform
# Kernel: 4.15.0-30Ubuntu-generic x86_64
# Processor: Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz (6/158/10)

This program will help you determine which kernel modules you need
to load to use lm_sensors most effectively. It is generally safe
and recommended to accept the default answers to all questions,
unless you know what you're doing.

Some south bridges, CPUs or memory controllers contain embedded sensors.
Do you want to scan for them? This is totally safe. (YES/no): yes
Silicon Integrated Systems SIS5595...                       No
VIA VT82C686 Integrated Sensors...                          No
VIA VT8231 Integrated Sensors...                            No
AMD K8 thermal sensors...                                   No
AMD Family 10h thermal sensors...                           No
AMD Family 11h thermal sensors...                           No
AMD Family 12h and 14h thermal sensors...                   No
AMD Family 15h thermal sensors...                           No
AMD Family 16h thermal sensors...                           No
AMD Family 17h thermal sensors...                           No
AMD Family 15h power sensors...                             No
AMD Family 16h power sensors...                             No
Intel digital thermal sensor...                             Success!
    (driver `coretemp')
Intel AMB FB-DIMM thermal sensor...                         No
Intel 5500/5520/X58 thermal sensor...                       No
VIA C7 thermal sensor...                                    No
VIA Nano thermal sensor...                                  No

Some Super I/O chips contain embedded sensors. We have to write to
standard I/O ports to probe them. This is usually safe.
Do you want to scan for Super I/O sensors? (YES/no): yes

..................

显示cpu温度

可以通过一下命令查看温度数据了:

bob@bob-PC:~$ sensors
iwlwifi_1-virtual-0
Adapter: Virtual device
temp1:        +33.0°C  

pch_skylake-virtual-0
Adapter: Virtual device
temp1:        +38.5°C  

BAT0-acpi-0
Adapter: ACPI interface
in0:         +12.45 V  

coretemp-isa-0000
Adapter: ISA adapter
Package id 0:  +39.0°C  (high = +100.0°C, crit = +100.0°C)
Core 0:        +39.0°C  (high = +100.0°C, crit = +100.0°C)
Core 1:        +38.0°C  (high = +100.0°C, crit = +100.0°C)

thinkpad-isa-0000
Adapter: ISA adapter
fan1:           0 RPM
temp1:        +38.0°C  
temp2:            N/A  
temp3:         +0.0°C  
temp4:         +0.0°C  
temp5:         +0.0°C  
temp6:         +0.0°C  
temp7:         +0.0°C  
temp8:         +0.0°C  

BAT1-acpi-0
Adapter: ACPI interface
in0:         +12.49 V  

acpitz-acpi-0
Adapter: ACPI interface
temp1:        +38.0°C  (crit = +128.0°C)

还可以使用watch命令实时关注:

bob@bob-PC:~$ watch sensors

使用图形化工具psensor显示cpu温度

使用Psensor,您可以检查以下各项:

  • 主板、CPU传感器和NVidia GPU的温度
  • 硬盘驱动器的温度
  • 风扇的转速
  • 监视CPU使用情况

最新版本的Psensor还为Ubuntu提供了一个applet指示器,因此在Ubuntu上更容易监控硬件温度。您可以选择在顶部面板中显示温度。它甚至可以在温度超过极限时发送桌面通知。

我们可以使用下面的命令安装Psensor

bob@bob-PC:~/Desktop$ sudo apt install -y psensor

打开ubuntu的launchpad,在里面找到psensor,打开该应用就可以看到多个传感器:
如何在Ubuntu Linux中获取CPU温度如何在Ubuntu Linux中获取CPU温度
如何在Ubuntu Linux中获取CPU温度如何在Ubuntu Linux中获取CPU温度

使用图形化工具hardinfo

Hardinfo是Linux中用于在图形化界面中显示硬件信息的工具。可以使用它检测cpu的温度。以下命令安装hardinfo

bob@bob-PC:~/Desktop$ sudo apt install hardinfo
# 运行一下命令打开hardinfo
bob@bob-PC:~/Desktop$ sudo hardinfo

如何在Ubuntu Linux中获取CPU温度如何在Ubuntu Linux中获取CPU温度

总结

在本教程中,我们将学习如何从命令行和桌面获取Ubuntu Linux上的CPU温度。

<think>嗯,用户想了解如何在Linux shell中自动获取CPU温度。首先,我需要确定不同的方法,然后检查它们的可行性和适用性。常见的工具可能有sensors、/sys文件系统,或者其他第三方软件。 首先,我应该想到lm-sensors包,它通常提供了sensors命令,可以读取温度信息。用户可能需要先安装这个包。比如在Ubuntu上使用sudo apt install lm-sensors,然后运行sensors-detect来检测硬件传感器。这可能是一个常见的步骤,但用户是否已经安装了这些工具呢?可能需要提示他们安装。 另外,/sys/class/thermal目录下的文件也可能包含温度信息。比如,可能有thermal_zone0这样的目录,里面的temp文件保存着温度值。需要注意的是,这个温度可能以毫摄氏度为单位,所以用户需要转换一下,比如除以1000。不过不同的系统可能路径不同,有的可能在thermal_zone1或者其他位置,可能需要检查多个zone。 还有,有些系统可能使用不同的接口,比如旧版本的内核或者其他硬件架构,路径可能不同。这时候可能需要用户自己查找正确的thermal_zone。或者使用通配符来查找,比如cat /sys/class/thermal/thermal_zone*/temp,这样可以覆盖所有可能的zone。 然后,如何自动化这个步骤呢?可能需要写一个shell脚本,定期读取这些值,或者结合cron任务来做监控。比如,使用watch命令每隔几秒运行一次sensors或者读取/sys文件。 另外,可能需要处理不同单位的转换,比如有的输出是摄氏度,有的可能需要转换。同时,不同的CPU核心可能有不同的温度传感器,需要分别读取。 用户可能还关心如何在没有root权限的情况下获取温度,或者如何在脚本中处理不同的环境,比如不同的Linux发行版。这时候可能需要考虑兼容性问题,检查哪些命令可用,或者使用条件判断。 可能还需要考虑错误处理,比如如果sensors命令不存在,或者/sys下的文件不可读,脚本应该给出提示,而不是直接报错。这样用户友好一些。 总结一下,可能的步骤是:1. 使用sensors命令,需要安装lm-sensors;2. 检查/sys/class/thermal下的文件;3. 编写脚本自动化获取,并处理不同情况。需要给出具体的命令示例,比如安装步骤,以及读取温度的具体方法,并解释输出结果的含义。可能还需要提醒用户权限问题,或者是否需要sudo来运行某些命令。</think>在 Linux Shell 中自动获取 CPU 温度可以通过以下方法实现,具体取决于硬件支持和系统配置: -- ### **方法 1:使用 `sensors` 命令** **步骤:** 1. **安装 `lm-sensors` 包**(若未安装): ```bash sudo apt update && sudo apt install lm-sensors # Debian/Ubuntu sudo dnf install lm_sensors # Fedora sudo pacman -S lm_sensors # Arch ``` 2. **检测传感器**: ```bash sudo sensors-detect # 按提示选择默认选项 ``` 3. **读取温度**: ```bash sensors ``` **输出示例**: ``` coretemp-0000 Adapter: ISA adapter Package id 0: +45.0°C (high = +80.0°C) Core 0: +43.0°C (high = +80.0°C) Core 1: +44.0°C (high = +80.0°C) ``` --- ### **方法 2:直接读取 `/sys` 文件系统** Linux 内核通过虚拟文件系统 `/sys/class/thermal` 暴露硬件温度信息。 1. **查找温度传感器路径**: ```bash ls /sys/class/thermal/thermal_zone* ``` 通常温度值保存在 `temp` 文件中,单位为毫摄氏度(需除以 1000)。 2. **直接读取温度值**: ```bash cat /sys/class/thermal/thermal_zone0/temp | awk '{print $1/1000 "°C"}' # 按需调整 thermal_zone 编号 ``` **输出示例**: ``` 45.123°C ``` --- ### **自动化脚本示例** 创建一个 Shell 脚本(如 `cpu_temp.sh`)定期获取温度: ```bash #!/bin/bash # 使用 sensors 命令(推荐) get_temp_sensors() { sensors | grep -E 'Core [0-9]+:' | awk '{print $3}' | sed 's/+//;s/°C//' } # 或直接读取 /sys(备用) get_temp_sys() { zone=$(find /sys/class/thermal -name "thermal_zone*" | grep -E 'thermal_zone[0-9]+') for z in $zone; do type=$(cat $z/type) temp=$(cat $z/temp | awk '{print $1/1000}') echo "$type: ${temp}°C" done } # 选择方法 echo "=== 使用 sensors 命令 ===" get_temp_sensors echo -e "\n=== 使用 /sys 文件系统 ===" get_temp_sys ``` **运行脚本**: ```bash chmod +x cpu_temp.sh ./cpu_temp.sh ``` --- ### **注意事项** 1. **权限问题**:普通用户可能需要 `sudo` 权限运行 `sensors`,或将自己加入 `video` 用户组。 2. **硬件兼容性**:部分老旧硬件可能无法正确报告温度。 3. **多 CPU/核心**:若有多颗 CPU 或多个核心,需遍历所有 `thermal_zone` 或 `Core` 条目。 通过上述方法,你可以灵活地在脚本中集成 CPU 温度监控功能。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值