如何从命令行检查 Linux 笔记本电脑的电池

已发表: 2022-08-20
显示 bash 提示符的 Linux 笔记本电脑
fatmawati achmad zaenuri/Shutterstock.com

笔记本电脑可让您随时随地工作。 好吧,只要您的笔记本电脑的电池有寿命。 这是在 Linux 命令行上检查电池的方法。

笔记本电脑电池

从交流电源适配器上拔下,您的笔记本电脑完全依赖电池供电。 如果您的电池不能胜任这项工作,那么为屏幕供电、使用硬盘驱动器、访问 Wi-Fi 和读取用户输入都会突然停止。

制造商无法就笔记本电脑一直插电是好事还是坏事达成一致。 如果您不想这样做,那么当您外出时,您的笔记本电脑通常不会处于 100% 的电池充电状态。

我应该让我的笔记本电脑一直插着电源吗?
相关我应该让我的笔记本电脑一直插着电源吗?

电池的使用寿命也会下降。 因此,旧电池无法保持与新电池相同的电量。 即使它是新的,你也不太可能得到制造商在其广告中声称的内容。

知道您必须留意电池电量当然是使用笔记本电脑的重要组成部分。 这不是什么新鲜事。 但是,如果您需要从命令行检查电池怎么办?

也许您外出并使用 SSH 远程连接到家中的笔记本电脑,但您不记得它是插上电源还是靠电池运行。 也许您将笔记本电脑用作无 GUI 的服务器或使用平铺窗口管理器,而您没有电池电量的屏幕显示。

能够在命令行中找出笔记本电脑的电源状态意味着您也可以在脚本中包含这些技术。

使用 upower 检查电池

upower命令可用于找出笔记本电脑可用的主电源和电池来源。 发现它们后,您可以询问更多详细信息。

-e (枚举)选项列出了它可以找到的所有电源。

 超能-e 

用 upower 列出电源设备

第一个条目是 AC 适配器。 第二个是电池。 您可能会发现您的笔记本电脑中有几块电池。 另外,请注意,根据制造商的喜好,第一个电池有时编号为 1,有时编号为 0。

“DisplayDevice”条目不是电源。 它是一个复合设备,代表要在桌面环境中显示的状态图标。

为了仔细查看我们的电池,我们将使用-i (信息)选项,并传递电池的完整描述符。

 upower -i /org/freedesktop/UPower/devices/battery_BAT1 

用 upower 检查电池

最感兴趣的两项是“清空时间”值和“百分比”值。 这些指示电池可以继续为笔记本电脑供电的持续时间,以及电池中剩余电量的百分比。

拔下交流适配器后从 upower 输出

需要注意的重要一点是,持续时间与笔记本电脑的当前活动有关。 如果笔记本电脑上的负载增加,则持续时间将减少。

通过 SSH 连接远程使用我们的测试笔记本电脑意味着没有使用笔记本电脑的内置显示器。 它在很短的时间后自动消隐。 屏幕空白时,笔记本电脑的电池寿命比屏幕亮时长一个多小时。

如果连接了AC适配器, upower返回的信息略有不同。

 upower -i /org/freedesktop/UPower/devices/battery_BAT1 

插入交流适配器后从 upower 输出

“Time to Empty”值已替换为“Time to Full”值,即电池达到 100% 之前的剩余时间。 “图标名称”值也更改为“电池-充满-充电-符号”,反映了市电电源的存在。

我们也可以更深入地了解交流适配器。

 upower -i /org/freedesktop/UPower/devices/line_power_ACAD 

在插入适配器的情况下,使用 upower 检查 AC 适配器

如果交流适配器已插入,“在线”值将显示“是”,如果拔出,则显示“否”。

在拔下适配器的情况下,用 upower 检查 AC 适配器

检查 /sys/class/power_supply/ 的内容

在笔记本电脑上,“/sys/class/power_supply/”目录包含我们可以充分利用的信息。 两个子目录——“ACAD”和“BAT1”——包含我们可以参考的信息来检查电池容量和交流适配器是否插入。

请注意,在您的笔记本电脑上,电池子目录可能称为“BAT0”。 如果您的笔记本电脑上安装了多个电池,您将拥有多个电池子目录。

如果 AC 适配器已插入,则“ACAD”子目录中名为“online”的文件保存数字 1,如果未插入,则保存数字 0。

“BAT1”子目录中名为“容量”的文件保存电池充电状态的值。

 ls /sys/class/power_supply/
 猫 /sys/class/power_supply/ACAD/在线
cat /sys/class/power_supply/BAT1/容量

使用 cat 检查在线和容量文件

这台笔记本电脑已插入交流适配器,电池电量为 81%。

因为这两个值以简单明了的方式呈现,所以它们非常适合在脚本中使用。

假设您有一个备份脚本,您只想在交流电源存在或电池电量大于 70% 时执行该脚本。 这个脚本的存根显示了如何实现这一点。

 #!/bin/bash

charge_level="$(cat /sys/class/power_supply/BAT1/容量)"

ac_adapter="$(cat /sys/class/power_supply/ACAD/online)"

如果 [[ ac_adapter -eq 0 ]]; 

然后 

  如果 [[charge_level < 70 ]]; 

  然后 

    echo "备用电池电量不足:" $charge_level 

  别的 

    echo "电池电量充足,开始备份:" $charge_level 

  菲 

别的

  echo "On Mains power, 开始备份。" 

菲

该脚本从两个文件中获取值并将它们存储在变量charge_levelac_adapter中。

如果未插入交流适配器,则ac_adapter中的值将为零。 如果是这种情况,脚本会检查charge_level中的电池电量。 如果电池电量超过 70%,则备份运行。

如果插入了交流适配器,则备份运行,脚本不会检查电池充电值。

将脚本复制到编辑器中并将其保存为“battery.sh”。 确保使用笔记本电脑上电池子目录的正确路径。

我们需要使用chmod命令使脚本可执行:

 chmod +x 电池.sh 

使脚本可执行

现在我们可以运行脚本了。 交流适配器已插入。

 ./电池.sh 

在插入交流适配器的情况下运行脚本

让我们拔下 AC 适配器并再次运行它。

 ./电池.sh 

在拔下 AC 适配器的情况下运行脚本

正确检测到笔记本电脑的电源状况,脚本会相应地采取行动。

使用 acpi 检查电池

如果您安装了高级配置和电源接口包,您可以使用它来查询笔记本电脑的电池和电源状况。 如果您没有安装它,它是一个小包,安装速度非常快。

在 Ubuntu 上,您可以使用此命令安装它。

 sudo apt install acpi 

在 Ubuntu 上安装 acpi

在 Fedora 上,您将使用:

 须藤 dnf 安装 acpi 

在 Fedora 上安装 acpi

在 Manjaro 上,您应该输入:

 sudo pacman -Sy acpi 

在 Manjaro 上安装 acpi

我们将使用带有-a (AC 适配器)选项的命令,然后再次使用-b (电池)选项。 最后,我们将使用-b (电池)选项和-i (信息)选项运行它。 如果有的话,这会提供一些额外的信息。

 acpi -a
 acpi -b
 acpi-bi 

使用 acpi 检查 AC 适配器和电池

知识就是力量

现在,您可以获得有关为笔记本电脑供电的知识。

让脚本检查是否有电源或足够的电池电量来执行高负载或长时间任务(如系统映像或升级)的能力特别强大。

相关:如何最大限度地延长 Linux 笔记本电脑的电池寿命