如何在Linux中检查笔记本电池状态和级别

时间:2020-03-21 11:48:58  来源:igfitidea点击:

在GUI模式下找到笔记本电池状态很容易。
通过将鼠标指针悬停在任务/顶杆中的电池指示灯上,可以轻松地告诉电池电平。
但是,来自命令行怎么样?
不是每个人都知道这个。
前一天,我的一位朋友询问如何从他的Ubuntu桌面终端检查他的笔记本电池电量,因此这篇文章。
其中我包含了五种简单的方法,可以在任何Linux发行版中检查终端中的笔记本电池状态和电平。

检查Linux终端的笔记本电池状态和级别

我们可以通过多种方法从命令行找到笔记本电池状态。
以下是几种方式。

方法1 - 使用"upowere"命令

UpowErd命令用大多数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'

如上所述,我的电池现在完全充电,电池电量为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不仅仅显示电池状态,还可以显示已安装电池的完整细节,如型号,供应商名称,串行编号,状态,电压等。

我们还可以通过俯卧位和Grep命令的组合显示电池的状态,如下所示。

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

示例输出:

state: fully-charged
percentage: 100

如上所述,我的笔记本电池已充满电。

有关更多详细信息,请参阅Man页面。

$man upower

方法2 - 使用"acpi"命令

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

我们可能需要在某些Linux发行版中安装ACPI命令。

关于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标志查看Fahrenheit中的上述输出:

$acpi -t -f

示例输出:

Thermal 0: ok, 144.5 degrees F

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

$acpi -a

示例输出:

Adapter 0: on-line

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

Adapter 0: off-line

有关更多详细信息,请检查man 页面。

$man acpi

方法3:使用"cat"和"find"命令

我们可以使用CAT并查找命令来显示电池详细信息。

只要知道电池容量,运行:

$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

方法4:使用"Batstat"程序

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

  • 电流电池电量
  • 目前的能量
  • 全收费能源
  • 从程序开始时经过的时间,而无需跟踪机器的睡眠时间。
  • 电池级历史

安装Batstat

git clone使用命令克隆最新版本:

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

上面的命令将提取最新的Batstat版本并将其内容保存在名为"Batstat"的文件夹中。

CD进入Batstat/Bin /目录:

$cd batstat/bin/

将"batstat"二进制文件复制到路径,例如/usr/local/bin /。

$sudo cp batstat /usr/local/bin/

使用命令使其可执行:

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

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

$batstat

示例输出:

如上所述,我的电池处于充电模式。

此实用程序有一些限制。
首先撰写本教程,Batstat只能支持一个电池。
而且,它只从此文件夹中收集信息"/sys/class/power_supply /"。
如果机器包含在不同文件夹上的电池信息,则此程序将无法正常工作。

方法5:使用"电池级CLI"程序

电池电量-CLI是另一个命令行实用程序,可在Linux中显示电池电量。
与"Batstat"程序不同,它只会显示电池电量。
它不会找到电池是否充电。
它是用NodeJS编写的,因此确保系统安装了NodeJS。
如果未安装NodeJS,请参阅以下要了解如何安装它。

  • 如何在Linux上安装nodejs

一旦安装了NodeJS,请签署以下命令以安装"电池级CLI"实用程序:

$npm install --global battery-level-cli

现在,我们可以使用命令查看电池级别:

$battery-level
100%