Linux уровень заряда батареи

How do I check the battery’s status via the terminal?

The below command outputs a lot status and statistical information about the battery. The /org/. path can be found with the command 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 

You could use tools like grep to get just the information you want from all that output.

One simple way: piping the above command into

grep -E "state|to\ full|percentage" 
state: charging time to full: 57.3 minutes percentage: 42.5469% 

If you would often like to run that command, then you could make a Bash alias for the whole command. Example:

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

Add that to the end of your .bashrc file, and you can type ‘bat’ any time, in the terminal.

There is also a upower -d ( —dump ) command that shows information for all available power resources such as laptop batteries, external mice, etc.

@landroni And the shorthand option is upower -e , that command lists the available paths for upower -i . . If you are lazy and just want a list of all devices, use upower -d ( upower —dump ).

Indeed. I think this would be a useful addition to the answer itself, as when I first tried to use upower I immediately got lost.

@landroni Good point, I have updated the answer. Feel free to edit it if you have more related additions.

Another one-liner could be upower -i $(upower -e | grep BAT) | grep —color=never -E «state|to\ full|to\ empty|percentage»

A friendly reminder: since Linux kernel 2.6.24 using /proc to store ACPI info has been discouraged and deprecated.

Now we are encouraged to use -> /sys/class/power_supply/BAT0 .

UPDATE: Linux 3.19 and onwards, we should look at the following directory -> /sys/class/power_supply/BAT1/

For example, checking capacity & status running

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

+1, this should be the accepted answer, since it doesn’t rely on extra software that might not be installed and is not needed to answer this question. @neverMind9: I don’t know what you mean /proc is deprecated but /sys works perfectly for me, even in kernel 4.20.

Читайте также:  Исключения для прокси linux

Terry maybe on Arch they start from BAT1 but seems that on Ubuntu always is BAT0, at least nowadays, and AFAIK almost all portable devices uses just one battery (I don’t know why acpi -b or acpitool -B output three).

Not only this should be the accepter answer, but retrieving the data can be achieved by using any programming language that has a read function like in PHP $capacity = trim(file_get_contents(«/sys/class/power_supply/BAT0/capacity»)); making it super easy and not dependent of any external dependencies.

DEPRECATED — thanks @morhook

First install acpi by running this command,

Sample output:

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

Or for a more verbose output that constantly updates:

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

Thanks to @Wilf this works on my Ubuntu 17.10 on Lenovo Yoga 720:

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

Or just the numeric value with this one liner

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

On Fedora 23 I had to grep for battery instead of BAT to make it work. I found that with upower —enumerate .

@Lubo you should have separate paths for each power device. Mine shows me LCD screen and USB power, too — try upower -e to enumerate (list) all the paths to different devices, then use the path to specify which one from which you want to read properties after the option flag. E.g. upower -i /path/to/your/device . Or check them all out in a for loop: for i in $(upower -e); do upower -i $i; done

It’s enough to type the command

For detailed information you can type

I didn’t have to install any packages before.

Here is an article on a package that can check your battery life at the command line.

Читайте также:  What is sendmail in linux

Basically, all you have to do is:

sudo apt-get install acpi acpi -V 

using /proc to store ACPI info has been discouraged and deprecated since 2.6.24. Now it’s in /sys/class/power_supply/BAT0 .

I’m a little late to the party but here’s my little contribution. Based on the previous answers , I have made a simple script batpower:

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

The output for executing this ( ./batpower ) is going to be something like this:

N.B. : the batery number may be different for you, in my case it is BAT1, but you can always find it out by cd’ing to /sys/class/power_supply or as Lekensteyn mentioned through upower -e

My machine : Ubuntu 13.10 , 3.11.0

Replace BAT1 in the above bash code to BAT0 if you have older version Ubuntu i.e. 13.04 or later.

IMPROVED SCRIPT: Since my original post, I’ve made a small improvement to the script:

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

As always, pay attention to spaces with bash. This is all self explanatory. If battery is present, it will show up, if not — the script will tell you so. Now, go to your .bashrc file and add $(batpower) to your prompt. Here’s mine promt:

enter image description here

Update your terminal or open new tab or window, and now you can monitor battery charge constantly in terminal ! including tty ! May the scripting be praised !

You need to check for /sys/class/power_supply/BAT0 and /sys/class/power_supply/BAT1 . It can be either. And you should use that path ( /sys/class/power_supply/BAT# ).

In my Ubuntu 12.04 netbook (after changing to BAT0), I don’t seem to get a POWER_SUPPLY_CAPACITY line. It looks like I could calculate it though, from the POWER_SUPPLY_CHARGE_FULL and POWER_SUPPLY_CHARGE_NOW values.

Upvoted but Batman (Battery Manager) subconsciously has a nicer ring to it than Batpower 🙂 On a serious note it’s interesting you were writing in AskUbuntu in 2014 and how different you are today.

@WinEunuuuchs2Unix Yes, I’ve changed somewhat since I started, learned a few new tricks. batman would have a nice ring to it but it is likely copyrighted 😉

You can do it without installing any extra packages:

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

This command is lifted from byobu’s source. It might be a good candidate for a Bash alias.

$ 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 

or with the distrib’s inxi package (more up to date from the inxi official source code here)

$ inxi -Bxxx Battery: ID-1: BAT0 charge: 37.4 Wh condition: 37.4/47.5 Wh (79%) volts: 10.8/10.8 model: PA5109U-1BRS type: Li-ion serial: FA80 status: Full 

Run the following command in a terminal for getting detailed info:

cat /proc/acpi/battery/BAT0/info 

If you just want the state do:

cat /proc/acpi/battery/BAT0/state 

This did the job for me in ubuntu 14.04:

cat /sys/class/power_supply/BAT0/capacity 

cat /sys/class/power_supply/BAT?/capacity would be a better idea, since it might be BAT1 instead of BAT0 .

Читайте также:  Auto py to exe linux

Install acpi, then use watch to continously monitor thru command line.

will show the information such as below and will update every 5 seconds.

Battery 0: Full, 100%, rate information unavailable
Battery 0: design capacity 6000 mAh, last full capacity 3424 mAh = 57%

Question is why would someone do this? Well, I have a laptop with broken LCD screen that I am now using as my bittorrent box.

I was going to suggest acpi but after reading it’s not working in 11.10, I had an idea.

Please type this in your terminal: ls /proc/acpi/battery/BAT0 or BAT1

If you get a «file or directory not found» then this isn’t going to work.

But, if it lists files, then here’s a script that I just wrote for you that will give you an estimate battery percentage [See below]:

(Note, if not already installed, install the program calc from the repo: sudo apt-get install apcalc )

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

I have tested this script on my laptop. I say estimate above because acpi shows 93% battery, and my script shows 90% battery, so try this script against your GUI battery percentage, and see how off it is. In my case, it seems to be consistently 3% lower than acpi’s percentage. In that case, you can add this line right before the last line: percent=$((percent + 3)) , where «3» is the percentage it’s low by.

**In my lenovo, the battery is listed as BAT1, try that too. (12.04 LTS)

Источник

Оцените статью
Adblock
detector