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

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

以下命令输出有关电池的批次状态和统计信息。 可以使用命令upower -e (– --enumerate )找到/org/...路径。

 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/

例如capacity – > cat /sys/class/power_supply/BAT1/capacity status – > 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 

输出:

 每5.0秒:acpi -V Wed Jan 8 15:45:35 2014

电池0:满,100%
适配器0:在线
热0:好的,44.0摄氏度
热0:跳闸点0在温度127.0摄氏度时切换到临界模式
热0:跳闸点1在温度127.0摄氏度时切换到热模式
冷却0:intel_powerclamp没有可用的状态信息
冷却1:pkg-temp-0无状态信息
冷却2:LCD 100为100
冷却3:LCD 100为100
冷却4:处理器0为10
冷却5:处理器0为10
冷却6:处理器0为10
冷却7:处理器0为10
冷却8:处理器0为10
冷却9:处理器0为10
冷却10:处理器0为10
冷却11:处理器0为10 

感谢@Wilf,这适用于联想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/%// 

输入命令就足够了

acpi

有关详细信息,请键入

acpi -V

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

系统:Debian 7.2 64位

也许你可以尝试:

cat /proc/acpi/battery/BAT0/state

cat /proc/acpi/battery/BAT0/info

这是一篇关于可以在命令行检查电池寿命的软件包的文章。

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

 sudo apt-get install acpi acpi -V 

我参加聚会有点晚了,但这是我的小贡献。 基于之前的答案,我制作了一个简单的脚本:

 #!/bin/bash # Description: Battery charge in percentage grep POWER_SUPPLY_CAPACITY /sys/class/power_supply/BAT1/uevent 

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

 POWER_SUPPLY_CAPACITY=23 

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

我的机器:Ubuntu 13.10,3.11.0

如果你有旧版本的Ubuntu,即13.04或更高版本,请将上面的bash代码中的BAT1替换为BAT0

改进的脚本:自从我的原始post以来,我对脚本做了一些改进:

 #!/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! 愿脚本受到赞扬! 在此处输入图像描述

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

 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的来源 。 它可能是Bash别名的一个很好的候选者。

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

例如

watch --interval=5 acpi -V

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

电池0:完全,100%,速率信息不可用
电池0:设计容量6000 mAh,最后满容量3424 mAh = 57%

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

这在ubuntu 14.04中完成了我的工作:

 cat /sys/class/power_supply/BAT0/capacity 

我打算建议acpi但在阅读后它没有在11.10工作,我有一个想法。

请在终端中键入: ls /proc/acpi/battery/BAT0BAT1

如果你得到“找不到文件或目录”,那么这是行不通的。

但是,如果它列出了文件,那么这里是一个脚本[将它粘贴到/ usr / games /或$ PATH中的其他目录中,然后运行sudo chmod +x /usr/games/batterypercent ,或者你刚才写的任何内容]为您提供估计电池百分比[见下文]:

(注意,如果尚未安装,请从repo安装程序calcsudo apt-get install apcalc

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

我在笔记本电脑上测试了这个脚本。 我说上面的估计是因为acpi显示93%的电池,而我的脚本显示90%的电池,所以请尝试使用此脚本来控制您的GUI电池百分比,看看它有多远。 就我而言,它似乎始终比acpi的百分比低3%。 在这种情况下,您可以在最后一行之前添加此行: percent=$((percent + 3)) ,其中“3”是它的低位百分比。

**在我的联想中,电池被列为BAT1,也可以尝试。 (12.04 LTS)

没有calc或apcalc的类似脚本:

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

这是我使用的。 它只是查看完全充电和当前充电之间的差异,以及查看充电是否正在下降,在这种情况下它使用通知来提醒用户。

 #!/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 

这对每个人都没有帮助,但它确实对我 – 我每次使用终端时都使用byobu ,而电池是状态通知栏的选项之一。

我们可以用该命令回显百分比

 upower -i $(upower -e | grep 'BAT') | grep -E "state|to\ full|percentage" | awk '/perc/{print $2}' 

65%

如果你需要提取该值

 cat /proc/acpi/ac_adapter/AC/state