如何使用终端检查电池状态?
我想要一个通过终端检查电池状态的命令
以下命令输出有关电池的批次状态和统计信息。 可以使用命令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/BAT0
或BAT1
如果你得到“找不到文件或目录”,那么这是行不通的。
但是,如果它列出了文件,那么这里是一个脚本[将它粘贴到/ usr / games /或$ PATH中的其他目录中,然后运行sudo chmod +x /usr/games/batterypercent
,或者你刚才写的任何内容]为您提供估计电池百分比[见下文]:
(注意,如果尚未安装,请从repo安装程序calc
: sudo 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