如何在 Linux 终端中检查笔记本电脑电池状态和电量

在 GUI 模式下查找笔记本电脑电池状态很容易。 您可以通过将鼠标指针悬停在任务/顶部栏中的电池指示器图标上轻松判断电池电量。 但是,从命令行怎么样? 不是每个人都知道这一点。 前几天我的一个朋友问如何在他的 Ubuntu 桌面上从终端检查他的笔记本电脑电池电量 – 因此这篇文章。 在这里,我提供了五种简单的方法,它们将帮助您在任何 Linux 发行版的终端中检查笔记本电脑的电池状态和电量。

从 Linux 中的命令行检查笔记本电脑电池状态和电量

我们可以通过多种方法从命令行中找到笔记本电脑的电池状态。 这里有几种方法。

方法 1 – 使用“Upower”命令

Upower 大多数 Linux 发行版都预装了命令。 要使用 Upower 显示电池状态,请打开终端并运行:

$ upower -i /org/freedesktop/UPower/devices/battery_BAT0

样本输出:

native-path:          BAT0
  vendor:               Samsung SDI
  model:                DELL 7XFJJA2
  serial:               4448
  power supply:         yes
  updated:              Tuesday 01 October 2019 12:50:41 PM IST (101 seconds ago)
  has history:          yes
  has statistics:       yes
  battery
    present:             yes
    rechargeable:        yes
    state:               fully-charged
    warning-level:       none
    energy:              33.4443 Wh
    energy-empty:        0 Wh
    energy-full:         33.4443 Wh
    energy-full-design:  48.84 Wh
    energy-rate:         0.0111 W
    voltage:             12.446 V
    percentage:          100%
    capacity:            68.4773%
    technology:          lithium-ion
    icon-name:          'battery-full-charged-symbolic'
使用 upower 命令检查笔记本电脑电池状态和电量

正如您在上面看到的,我的电池现在已充满电,电池电量为 100%。

如果上述命令由于任何原因不起作用,请尝试以下命令:

$ upower -i `upower -e | grep 'BAT'`

样本输出:

native-path:          BAT0
  vendor:               Samsung SDI
  model:                DELL 7XFJJA2
  serial:               4448
  power supply:         yes
  updated:              Tuesday 01 October 2019 12:54:41 PM IST (48 seconds ago)
  has history:          yes
  has statistics:       yes
  battery
    present:             yes
    rechargeable:        yes
    state:               fully-charged
    warning-level:       none
    energy:              33.4443 Wh
    energy-empty:        0 Wh
    energy-full:         33.4443 Wh
    energy-full-design:  48.84 Wh
    energy-rate:         0.0111 W
    voltage:             12.446 V
    percentage:          100%
    capacity:            68.4773%
    technology:          lithium-ion
    icon-name:          'battery-full-charged-symbolic'

Upower 不仅显示电池状态,还显示已安装电池的完整详细信息,例如型号、供应商名称、序列号、状态​​、电压等。

您也可以仅通过组合显示电池状态 upowergrep 命令如下图所示。

$ upower -i $(upower -e | grep BAT) | grep --color=never -E "state|to full|to empty|percentage"

样本输出:

state: fully-charged
percentage: 100

正如您在上面的输出中看到的,我的笔记本电脑电池已充满电。

有关更多详细信息,请参阅手册页。

$ man upower

方法 2 – 使用“acpi”命令

acpi 命令显示 Linux 发行版中的电池状态和其他 ACPI 信息。

您可能需要安装 acpi 某些 Linux 发行版中的命令。

在 Arch Linux 及其衍生产品上:

$ sudo pacman -S acpi

在 Debian、Ubuntu 及其衍生产品上安装 acpi:

$ sudo apt-get install acpi

在 RHEL、CentOS、 Fedora:

$ sudo yum install acpi

或者,

$ sudo dnf install acpi

安装 acpi 后,运行以下命令:

$ acpi -V

笔记: 这里, "V" 是大写字母。

样本输出:

Battery 0: Discharging, 98%, 01:43:14 remaining
Battery 0: design capacity 4400 mAh, last full capacity 3013 mAh = 68%
Battery 1: Discharging, 0%, rate information unavailable
Adapter 0: off-line
Thermal 0: ok, 60.5 degrees C
Thermal 0: trip point 0 switches to mode critical at temperature 84.0 degrees C
Cooling 0: Processor 0 of 3
Cooling 1: intel_powerclamp no state information available
Cooling 2: Processor 0 of 3
Cooling 3: x86_pkg_temp no state information available
Cooling 4: Processor 0 of 3
Cooling 5: LCD 0 of 15
Cooling 6: Processor 0 of 3

只检查电池的充电状态。 为此,请运行:

$ acpi

样本输出:

Battery 0: Discharging, 98%, 01:48:14 remaining
Battery 1: Discharging, 0%, rate information unavailable

检查电池温度:

$ acpi -t

样本输出:

Thermal 0: ok, 58.5 degrees C

我们可以查看上面的输出 华氏度 使用 -f 旗帜:

$ acpi -t -f

样本输出:

Thermal 0: ok, 144.5 degrees F

想知道交流电源是否接通? 简单的! 只需运行以下命令:

$ acpi -a

样本输出:

Adapter 0: on-line

如果交流电源不可用,您将看到以下输出:

Adapter 0: off-line
使用 acpi 命令检查笔记本电脑电池状态和电量

有关更多详细信息,请查看手册页。

$ man acpi

方法 3:使用“cat”和“find”命令

这是我们的一位读者在评论部分提出的。

我们可以用 catfind 命令以显示电池详细信息。

要仅知道电池容量,请运行:

$ cat /sys/class/power_supply/BAT0/capacity

样本输出:

89

在这里,我的电池电量为 89%。

有关电池的所有详细信息,命令将是:

$ find /sys/class/power_supply/BAT0/ -type f | xargs -tn1 cat

样本输出:

cat /sys/class/power_supply/BAT0/uevent 
POWER_SUPPLY_NAME=BAT0
POWER_SUPPLY_STATUS=Discharging
POWER_SUPPLY_PRESENT=1
POWER_SUPPLY_TECHNOLOGY=Li-ion
POWER_SUPPLY_CYCLE_COUNT=0
POWER_SUPPLY_VOLTAGE_MIN_DESIGN=11100000
POWER_SUPPLY_VOLTAGE_NOW=11646000
POWER_SUPPLY_CURRENT_NOW=1905000
POWER_SUPPLY_CHARGE_FULL_DESIGN=4400000
POWER_SUPPLY_CHARGE_FULL=3013000
POWER_SUPPLY_CHARGE_NOW=2696000
POWER_SUPPLY_CAPACITY=89
POWER_SUPPLY_CAPACITY_LEVEL=Normal
POWER_SUPPLY_MODEL_NAME=DELL 7XFJJA2
POWER_SUPPLY_MANUFACTURER=Samsung SDI
POWER_SUPPLY_SERIAL_NUMBER= 4448
cat /sys/class/power_supply/BAT0/charge_full_design 
4400000
cat /sys/class/power_supply/BAT0/serial_number 
4448
cat /sys/class/power_supply/BAT0/technology 
Li-ion
cat /sys/class/power_supply/BAT0/current_now 
1905000
cat /sys/class/power_supply/BAT0/charge_now 
2696000
cat /sys/class/power_supply/BAT0/present 
1
cat /sys/class/power_supply/BAT0/power/runtime_active_time 
0
cat /sys/class/power_supply/BAT0/power/runtime_active_kids 
0
cat /sys/class/power_supply/BAT0/power/runtime_usage 
0
cat /sys/class/power_supply/BAT0/power/runtime_status 
unsupported
cat /sys/class/power_supply/BAT0/power/autosuspend_delay_ms 
cat: /sys/class/power_supply/BAT0/power/autosuspend_delay_ms: Input/output error
cat /sys/class/power_supply/BAT0/power/async 
disabled
cat /sys/class/power_supply/BAT0/power/runtime_suspended_time 
0
cat /sys/class/power_supply/BAT0/power/runtime_enabled 
disabled
cat /sys/class/power_supply/BAT0/power/control 
auto
cat /sys/class/power_supply/BAT0/manufacturer 
Samsung SDI
cat /sys/class/power_supply/BAT0/type 
Battery
cat /sys/class/power_supply/BAT0/charge_full 
3013000
cat /sys/class/power_supply/BAT0/capacity 
89
cat /sys/class/power_supply/BAT0/cycle_count 
0
cat /sys/class/power_supply/BAT0/voltage_now 
11646000
cat /sys/class/power_supply/BAT0/status 
Discharging
cat /sys/class/power_supply/BAT0/alarm 
0
cat /sys/class/power_supply/BAT0/model_name 
DELL 7XFJJA2
cat /sys/class/power_supply/BAT0/voltage_min_design 
11100000
cat /sys/class/power_supply/BAT0/capacity_level 
Normal

方法四:使用“​​Batstat”程序

batstat 是一个基于 ncurses 的小型 CLI 实用程序,用于在类 Unix 系统中显示笔记本电脑的电池状态。 它将显示以下详细信息:

  • 当前电池电量
  • 当前能量
  • 充满能量
  • 从程序开始经过的时间,没有跟踪机器的睡眠时间。
  • 电池电量历史

安装 batstat 是小菜一碟。

Git 使用命令克隆最新版本:

$ git clone https://github.com/Juve45/batstat.git

上述命令将拉取最新的 batstat 版本并将其内容保存在名为“batstat”的文件夹中。

cd 进入 batstat/bin/ 目录:

$ cd batstat/bin/

将“batstat”二进制文件复制到您的 小路, 为了 example /usr/local/bin/.

$ sudo cp batstat /usr/local/bin/

使用命令使其可执行:

$ sudo chmod +x /usr/local/bin/batstat

最后,运行以下命令来查看您的电池状态。

$ batstat

样本输出:

使用 batstat 检查笔记本电脑电池状态和电量使用 batstat 检查笔记本电脑电池状态和电量

正如您在上面的屏幕截图中看到的,我的电池处于充电模式。

不过,此实用程序有一些限制。 在编写本指南时,batstat 将仅支持一节电池。 而且,它仅从该文件夹收集信息 – "/sys/class/power_supply/". 如果您的机器在不同的文件夹中包含电池信息,则此程序将无法运行。

有关更多详细信息,请查看 batstat github 页面。

方法五:使用“battery-level-cli”程序

电池级cli 是另一个在 Linux 中显示电池电量的命令行实用程序。 与“batstat”程序不同,它只会显示电池电量。 它不会帮助您确定电池是否正在充电。 它写在 节点JS,因此请确保您的系统已安装 NodeJS。 如果没有安装nodejs,请参考以下内容了解如何安装。

  • 如何在 Linux 上安装 NodeJS

安装 NodeJS 后,调整以下命令以安装“battery-level-cli”实用程序:

$ npm install --global battery-level-cli

现在,您可以使用命令查看电池电量:

$ battery-level
100%

有关更多详细信息,请查看项目的 GitHub 存储库:

结论

可能有许多命令和程序可以从 Linux 终端检查笔记本电脑的电池状态。 据我所知,上述给出的方法按预期工作得很好。 如果您知道一些其他命令/实用程序来查找电池状态,请在下面的评论部分告诉我。 我也会检查并添加它们。