#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
或任何您命名的脚本]您将给您估计的电池电量百分比[请参见下文]:(注意,如果尚未安装,请从存储库中安装程序
BAT1
:sudo 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
评论
$ upower -i $(upower -e | grep'BAT')| grep -E“状态|到\已满|百分比”