我想要一个在终端中显示电池状态的命令。

评论

$ upower -i $(upower -e | grep'BAT')| grep -E“状态|到\已满|百分比”

#1 楼

以下命令输出有关电池的大量状态和统计信息。可以使用命令/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)命令,显示所有可用电源的信息,例如笔记本电脑电池,外部鼠标等。

评论


upower-如果不确定如何使用upower,则enumerate很有用。

–landroni
14年2月19日在21:50

@landroni快捷方式选项是upower -e,该命令列出了upower -i ...的可用路径。如果您很懒,只想列出所有设备,请使用upower -d(upower --dump)。

– Lekensteyn
2014年2月20日在8:57

确实。我认为这将是对答案本身的有用补充,因为当我第一次尝试使用上行机时,我立即迷路了。

–landroni
2014年2月20日,9:50

@landroni好点,我已经更新了答案。如果您还有其他相关内容,请随时进行编辑。

– Lekensteyn
2014年2月20日23:41

另一个单线可能是上流-i $(upower -e | grep BAT)| grep --color = never -E“状态|到\满|到\空|百分比”

–野生
2014年6月6日在21:27

#2 楼

一个友好的提醒:自从劝阻和弃用了使用/proc存储ACPI信息的Linux内核2.6.24。
现在,我们鼓励使用-> /sys/class/power_supply/BAT0
更新:Linux 3.19及更高版本,我们应该注意在以下目录-> /sys/class/power_supply/BAT1/
,例如,检查容量和状态运行情况
Linux 4.20
 # uname -a
Linux netbook 4.20.1-arch1-1-ARCH #1 SMP PREEMPT Wed Jan 9 20:25:43 UTC 2019 x86_64 GNU/Linux
# cat /sys/class/power_supply/BAT1/capacity
99
# cat /sys/class/power_supply/BAT1/status
Charging
 


Linux 5.9
 # uname -a
Linux netbook 5.9.1-arch1-1 #1 SMP PREEMPT Sat, 17 Oct 2020 13:30:37 +0000 x86_64 GNU/Linux
# cat /sys/class/power_supply/BAT1/capacity
100
# cat /sys/class/power_supply/BAT1/status
Full
 


评论


具体来说,/ sys / class / power_supply / BAT0 / capacity似乎显示了当前的充电百分比。

– thomasa88
18年8月6日在11:09

已弃用...它仍然有效吗?

–neverMind9
18年8月28日在16:21



+1,这应该是公认的答案,因为它不依赖于可能未安装且不需要回答此问题的额外软件。 @ neverMind9:我不知道您的意思是不赞成使用/ proc,但/ sys对我来说非常有效,即使在内核4.20中也是如此。

–comfreak
19年1月15日在17:20

特里(Terry)也许在Arch上从BAT1开始,但至少在当今,在Ubuntu上似乎总是BAT0,而且AFAIK几乎所有便携式设备都只用一块电池(我不知道为什么acpi -b或acpitool -B输出三块)。

–巴勃罗·比安奇(Pablo Bianchi)
19-2-27在1:17



不仅这应该是接受者的答案,而且可以使用任何具有读取功能的编程语言(如PHP中的$$ acacity = trim(file_get_contents(“ / sys / class / power_supply / BAT0 / capacity”))来检索数据。 ;使它变得超级容易,并且不依赖于任何外部依赖关系。

– Amin NAIRI
19年8月6日在15:40



#3 楼

已弃用-谢谢@morhook

首先通过运行以下命令安装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


评论


我在Ubuntu 18.04上运行Lubuntu。安装acpi后,我找不到命令。

– Timo
20-4-9下午4:36

如其他答案所述,从2.6.24版内核开始不推荐使用acpi工具。

– Morhook
20-10-5在23:27

#4 楼

感谢@Wilf,这可以在我在Lenovo Yoga 720上的Ubuntu 17.10上运行:

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/%//


评论


在Fedora 23上,我不得不为电池供电而不是BAT才能工作。我发现使用upower --enumerate。

–erik
16-8-26在23:45



电池的grep也可以在Ubuntu中使用,所以我从BAT更改了它

–rubo77
18-2-7在1:11



#5 楼

只需键入命令


acpi


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


acpi -V


我以前没有安装任何软件包。

系统:
Debian 7.2 64bit

#6 楼

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

基本上,您要做的就是:

sudo apt-get install acpi
acpi -V


#7 楼

也许您可以尝试:

cat /proc/acpi/battery/BAT0/state

cat /proc/acpi/battery/BAT0/info

评论


从2.6.24开始,不建议使用/ proc来存储ACPI信息。现在它在/ sys / class / power_supply / BAT0中。

–王T
13年6月17日在8:34

#8 楼

我参加聚会有点晚了,但这是我的一点贡献。根据先前的答案,我制作了一个简单的脚本batpower:

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

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


执行此(./batpower)的输出将如下所示:

POWER_SUPPLY_CAPACITY=23


NB :对于您来说,电池编号可能会有所不同,在我的情况下是BAT1,但是您始终可以通过cd / sys / class / power_supply或Lekensteyn通过upower -e

我的机器: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)添加到提示中。这是我的提示:

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


更新您的终端或打开新的选项卡或窗口,现在您可以不断监视终端中的电池电量!包括tty!愿脚本受到称赞!


评论


您需要检查/ sys / class / power_supply / BAT0和/ sys / class / power_supply / BAT1 ...可以是。并且您应该使用该路径(/ sys / class / power_supply / BAT#)。

– dylnmc
2015年11月8日在16:09

在我的Ubuntu 12.04上网本中(更改为BAT0之后),我似乎没有得到POWER_SUPPLY_CAPACITY行。看起来我可以从POWER_SUPPLY_CHARGE_FULL和POWER_SUPPLY_CHARGE_NOW值进行计算。

–mwfearnley
16/12/26在15:46



受到鼓舞,但蝙蝠侠(电池经理)在潜意识上比蝙蝠力量好得多:)值得一提的是,您在2014年在AskUbuntu上撰写的文章很有趣,而且与今天有何不同。

–WinEunuuchs2Unix
19年7月12日,0:22



@ WinEunuuuchs2Unix是的,自开始以来我已经有所改变,学习了一些新技巧。蝙蝠侠可能会喜欢它,但很可能已获得版权;)

– Sergiy Kolodyazhnyy
19年7月12日在2:19

#9 楼

您可以在不安装任何额外软件包的情况下执行此操作:

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


此命令从byobu的源头提出。它可能是Bash别名的不错选择。

评论


向我+1! CLI FTW。如果您有2个电池,请将BAT0换为BAT1 :)

–灵风
2011年6月10日7:31

从2.6.24开始不鼓励我们使用/ sys / class / power_supply / BAT0 /

–巴勃罗·比安奇(Pablo Bianchi)
19年2月26日在22:35

#10 楼

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

cat /proc/acpi/battery/BAT0/info


如果只想做状态:

cat /proc/acpi/battery/BAT0/state


评论


在其他相同的答案中不建议这样做。

–巴勃罗·比安奇(Pablo Bianchi)
19-2-26在16:24



#11 楼

安装acpi,然后使用watch通过命令行连续监视。

例如

watch --interval=5 acpi -V

将显示以下信息,并且每隔更新一次5秒。


电池0:电量不足,无法提供100%的速率信息
电池0:设计容量6000 mAh,上一次充满电3424 mAh = 57%


问题是为什么有人会这样做?
好,我有一台笔记本电脑的LCD屏幕坏了,现在用作我的Bittorrent盒。

#12 楼

这在Ubuntu 14.04中为我完成了工作:

cat /sys/class/power_supply/BAT0/capacity


#13 楼

我本来建议使用acpi,但在阅读完它后无法在11.10中使用时,我有了一个主意。

请在您的终端中输入以下内容:如果您收到“找不到文件或目录”,则此操作将无效。

但是,如果它列出了文件,那么这就是我刚刚写的脚本[将其粘贴到/ usr / games /或$ PATH中的其他目录中,并运行ls /proc/acpi/battery/BAT0或任何您命名的脚本]您将给您估计的电池电量百分比[请参见下文]:

(注意,如果尚未安装,请从存储库中安装程序BAT1sudo chmod +x /usr/games/batterypercent

#!/bin/bash
math() { calc -d "$@"|tr -d ~; }
cd /proc/acpi/battery/BAT0;
max=$(grep 'design capacity:' info|awk '{print }')
current=$(grep 'remaining capacity:' state|awk '{print }')
percent=$(math "($current / $max) * 100");
echo $(echo $percent|cut -d. -f1)%


我已经在笔记本电脑上测试了此脚本。我说上面的估计是因为calc显示93%的电池电量,而我的脚本显示90%的电池电量,因此请针对您的GUI电池百分比尝试此脚本,并查看情况如何。就我而言,这似乎始终比acpi的百分比低3%。在这种情况下,您可以在最后一行之前添加以下行:sudo apt-get install apcalc,其中“ 3”是其降低的百分比。

**在我的联想中,电池列为BAT1,请尝试那个也是。 (12.04 LTS)

评论


马特(Matt),尝试了您的建议,得到了“无文件或目录”

–乔
2011-10-20 13:41

Argh ..好的,我几乎肯定这就是为什么acpi无法正常工作的原因,因为我猜11.10也不支持笔记本电脑的ACPI功能(电池等)。我认为过去升级时遇到了类似的情况。我仍然在11.04。抱歉,这对您不起作用:(

–马特
2011-10-20 15:36



所以,只是好奇,您可以粘贴ls / proc / acpi /的输出吗?谢谢

–马特
2011-10-20 15:41

#14 楼

没有calc或apcalc的类似脚本:

#! /bin/bash
cd /proc/acpi/battery/BAT0;
max=$(grep 'design capacity:' info|awk '{print }')
current=$(grep 'remaining capacity:' state|awk '{print }')
percent=$(expr $current"00" / $max )
echo -e "Current capacity: \t$current"
echo -e "Max capacity:  \t$max"
echo -e "Percent: \t\t$percent"


#15 楼

这是我用的。它只是查看充满电和当前电量之间的差异,并查看电量是否下降,在这种情况下,它将使用通知来提醒用户。

#!/bin/bash
#
# experimental battery discharge alerter
#
nsecs=3 # loop sleep time between readings
#
ful=$(cat /sys/class/power_supply/BAT0/energy_full)
#
oldval=0
while true
do
  cur=$(cat /sys/class/power_supply/BAT0/energy_now)
  dif="$((ful - cur))"
  slope="$((cur - oldval))"
  if [ "$slope" -lt 0 ]
  then
    echo "*** discharging!"
    notify-send -u critical -i "notification-message-IM" "discharging"
  fi
 oldval=$cur
 sleep $nsecs
done


#16 楼

您可以输入:

$ acpi -i
Battery 0: Discharging, 98%, 02:51:14 remaining
Battery 0: design capacity 4400 mAh, last full capacity 3733 mAh = 84%




$ upower -i $(upower -e | grep BAT)
  native-path:          BAT0
  model:                PA5109U-1BRS
  serial:               FA80
  power supply:         yes
  updated:              lun. 07 janv. 2019 03:54:18 CET (24 seconds ago)
  has history:          yes
  has statistics:       yes
  battery
    present:             yes
    rechargeable:        yes
    state:               discharging
    energy:              39,521 Wh
    energy-empty:        0 Wh
    energy-full:         40,328 Wh
    energy-full-design:  47,52 Wh
    energy-rate:         13,856 W
    voltage:             10,8 V
    time to empty:       2,9 hours
    percentage:          98%
    capacity:            84,8632%
    technology:          lithium-ion
  History (charge):
    1546829628  98,000  discharging
    1546829593  99,000  discharging
  History (rate):
    1546829658  13,856  discharging
    1546829628  14,752  discharging
    1546829597  4,806   discharging
    1546829594  2,678   discharging


#17 楼

这不会对所有人都有帮助,但确实帮了我-每当使用终端时,我都会使用byobu,电池是状态通知栏的选项之一。

#18 楼

cat /proc/acpi/ac_adapter/AC/state


评论


不知道您在说什么。在终端中运行它得到了cat:/ proc / acpi / ac_adapter / AC0 / state:没有这样的文件或目录

–infoquad
2011年4月19日在12:06