当前位置: 首页>>技术问答>>正文


如何使用终端检查电池状态?

, ,

问题描述

我想要一个通过终端检查电池状态的命令

最佳解决办法

以下命令输出有关电池的许多状态和统计信息。 /org/...路径可以通过命令upower -e(--enumerate)找到。

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

示例输出:

  native-path:          /sys/devices/LNXSYSTM:00/device:00/PNP0C0A:00/power_supply/BAT0
  vendor:               NOTEBOOK
  model:                BAT
  serial:               0001
  power supply:         yes
  updated:              Thu Feb  9 18:42:15 2012 (1 seconds ago)
  has history:          yes
  has statistics:       yes
  battery
    present:             yes
    rechargeable:        yes
    state:               charging
    energy:              22.3998 Wh
    energy-empty:        0 Wh
    energy-full:         52.6473 Wh
    energy-full-design:  62.16 Wh
    energy-rate:         31.6905 W
    voltage:             12.191 V
    time to full:        57.3 minutes
    percentage:          42.5469%
    capacity:            84.6964%
    technology:          lithium-ion
  History (charge):
    1328809335  42.547  charging
    1328809305  42.020  charging
    1328809275  41.472  charging
    1328809245  41.008  charging
  History (rate):
    1328809335  31.691  charging
    1328809305  32.323  charging
    1328809275  33.133  charging

您可以使用像grep这样的工具从所有输出中获取所需的信息。

一个简单的方法:将上述命令输入

grep -E "state|to\ full|percentage"

输出:

state:               charging
time to full:        57.3 minutes
percentage:          42.5469%

如果您经常喜欢运行该命令,那么您可以为整个命令创建一个Bash别名。例:

alias bat='upower -i /org/freedesktop/UPower/devices/battery_BAT0| grep -E "state|to\ full|percentage"'

将其添加到.bashrc文件的末尾,并且可以随时在终端中键入’bat’。

还有一个upower -d(--dump)命令,显示所有可用电源的信息,例如笔记本电脑电池,外部鼠标等。

次佳解决办法

一个友好的提醒:因为使用/proc存储ACPI信息的Linux内核2.6.24已被劝阻并被弃用。

现在我们鼓励使用 – > /sys/class/power_supply/BAT0

更新:从Linux 3.19开始,我们应该看看以下目录 – > /sys/class/power_supply/BAT1/

例如容量 – > cat /sys/class/power_supply/BAT1/capacity状态 – > cat /sys/class/power_supply/BAT1/status

第三种解决办法

首先运行这个命令安装acpi

sudo apt-get install acpi

然后运行:

acpi

示例输出:

Battery 0: Discharging, 61%, 01:10:12 remaining

或者对于不断更新的更详细的输出:

watch --interval=5 acpi -V

输出:

Every 5.0s: acpi -V                                     Wed Jan  8 15:45:35 2014

Battery 0: Full, 100%
Adapter 0: on-line
Thermal 0: ok, 44.0 degrees C
Thermal 0: trip point 0 switches to mode critical at temperature 127.0 degrees C
Thermal 0: trip point 1 switches to mode hot at temperature 127.0 degrees C
Cooling 0: intel_powerclamp no state information available
Cooling 1: pkg-temp-0 no state information available
Cooling 2: LCD 100 of 100
Cooling 3: LCD 100 of 100
Cooling 4: Processor 0 of 10
Cooling 5: Processor 0 of 10
Cooling 6: Processor 0 of 10
Cooling 7: Processor 0 of 10
Cooling 8: Processor 0 of 10
Cooling 9: Processor 0 of 10
Cooling 10: Processor 0 of 10
Cooling 11: Processor 0 of 10

第四种办法

感谢@Wilf这可以在我的Ubuntu 17.10上使用联想瑜伽720:

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

输出:

state:               fully-charged
percentage:          100%

或者只是这个班轮的数值

upower -i $(upower -e | grep '/battery') | grep --color=never -E percentage|xargs|cut -d' ' -f2|sed s/%//

第五种办法

输入命令就足够了

acpi

有关您可以键入的详细信息

acpi -V

我以前不必安装任何软件包。

系统:Debian 7.2 64bit

第六种办法

也许你可以尝试:

cat /proc/acpi/battery/BAT0/state

cat /proc/acpi/battery/BAT0/info

第七种办法

Here是一个包装上的文章,可以在命令行检查您的电池寿命。

基本上,你所要做的就是:

sudo apt-get install acpi
acpi -V

第八种办法

我对派对有点迟,但这是我的小小贡献。根据以前的答案,我做了一个简单的脚本batpower:

#!/bin/bash
# Description: Battery  charge in percentage

grep POWER_SUPPLY_CAPACITY /sys/class/power_supply/BAT1/uevent

执行这个(./batpower)的输出将会是这样的:

POWER_SUPPLY_CAPACITY=23

注: :对于你来说,这个数字可能会有所不同,在我的情况下,它是BAT1,但是你可以通过cd到/sys /class /power_supply找到它,或者通过upower -e提到的Lekensteyn

我的机器:Ubuntu 13.10,3.11.0

如果您的旧版本Ubuntu即13.04或更高版本,则将上述bash代码中的BAT1替换为BAT0。

改进的脚本:自从我原来的文章以来,我对脚本做了一些小改进:

#!/bin/bash
# Description: Battery  charge in percentage

if [ -f /sys/class/power_supply/BAT1/uevent ]
    then grep POWER_SUPPLY_CAPACITY /sys/class/power_supply/BAT1/uevent

else echo "Battery isn't present"

fi 

一如既往,注意带有bash的空间。这完全是自我解释。如果电池存在,它会显示,如果没有 – 脚本会告诉你。现在,转到您的.bashrc文件并在提示中添加$(batpower)。这里是我的Promt:

PS1='[$(batpower)]\n${debian_chroot:+($debian_chroot)}[*\u@Ubuntu*]:\w\$ ' 

更新您的终端或打开新标签页或窗口,现在您可以在终端不断监控电池电量!包括tty!可以赞美脚本!

command-line,battery,ubuntu

第九种办法

在终端中运行以下命令以获取详细信息:

cat /proc/acpi/battery/BAT0/info

如果你只想要这个状态:

cat /proc/acpi/battery/BAT0/state

第十种办法

你可以在不安装任何额外的软件包

$ echo $((100*$(sed -n "s/remaining capacity: *\(.*\) m[AW]h/\1/p" /proc/acpi/battery/BAT0/state)/$(sed -n "s/last full capacity: *\(.*\) m[AW]h/\1/p" /proc/acpi/battery/BAT0/info)))%
94%

该命令从byobu’s source中解除。它可能是我如何创建一个永久的Bash别名?的一个很好的候选人。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/138.html,未经允许,请勿转载。