Ask Ubuntu is a question and answer site for Ubuntu users and developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I would like a command that check the battery status through the terminal

share|improve this question
$ upower -i $(upower -e | grep 'BAT') | grep -E "state|to\ full|percentage" – jberger Dec 4 '14 at 17:23
How come you never accepted an answer? – Paranoid Panda May 14 at 10:49

16 Answers 16

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

Example output:

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

share|improve this answer
upower --enumerate can be useful if you are not sure how to use upower. – landroni Feb 19 '14 at 21:50
@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). – Lekensteyn Feb 20 '14 at 8:57
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 Feb 20 '14 at 9:50
@landroni Good point, I have updated the answer. Feel free to edit it if you have more related additions. – Lekensteyn Feb 20 '14 at 23:41
Another one-liner could be upower -i $(upower -e | grep BAT) | grep --color=never -E "state|to\ full|to\ empty|percentage" – Wilf Jun 6 '14 at 21:27

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

share|improve this answer

First install acpi by running this command,

sudo apt-get install acpi

Then run,

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
share|improve this answer

Maybe you can try:

cat /proc/acpi/battery/BAT0/state

cat /proc/acpi/battery/BAT0/info

share|improve this answer
using /proc to store ACPI info has been discouraged and deprecated since 2.6.24. Now it's in /sys/class/power_supply/BAT0. – Terry Wang Jun 17 '13 at 8:34

Thanks to @Wilf this works on my Ubuntu 14.04 on Lenovo Yoga 2 Pro:

upower -i $(upower -e | grep BAT) | 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 BAT) | grep --color=never -E percentage|xargs|cut -d' ' -f2|sed s/%//
share|improve this answer

It's enough to type the command


For detailed information you can type

acpi -V

I didn't have to install any packages before.

System: Debian 7.2 64bit

share|improve this answer

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
share|improve this answer
Yes, it worked :) Thanks! – infoquad Apr 19 '11 at 12:22

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:

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

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


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:

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

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 ! enter image description here

share|improve this answer
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#). – dylnmc Nov 8 '15 at 16:09

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


watch --interval=5 acpi -V

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.

share|improve this answer

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 [paste it into /usr/games/ or other directory in $PATH, and run sudo chmod +x /usr/games/batterypercent, or whatever you name it] 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)

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

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)

share|improve this answer
Matt, tried your suggestion, got a "No file or directory" – Joe Oct 20 '11 at 13:41
Argh.. okay, I'm almost positive this is why acpi doesn't work, because I guess 11.10 doesn't support your laptop's ACPI functions as well [battery, etc]. I think I've experienced something like this when upgrading in the past. I'm still on 11.04 though. Sorry that this didn't work for ya :( – Matt Oct 20 '11 at 15:36
So, just curious, can you paste the output of ls /proc/acpi/ ? Thanks – Matt Oct 20 '11 at 15:41

This did the job for me in ubuntu 14.04:

cat /sys/class/power_supply/BAT0/capacity
share|improve this answer

Similar script without calc or 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"
share|improve this answer

This won't help everyone, but it did me - I use byobu whenever I am using a terminal, and battery is one of the options for the status notifications bar.

share|improve this answer

Here is what I use. It just looks at the diff between full charge and current charge as well as seeing if the charge is dropping in which case it uses notify to alert the user.

# experimental battery discharge alerter
nsecs=3 # loop sleep time between readings
ful=$(cat /sys/class/power_supply/BAT0/energy_full)
while true
  cur=$(cat /sys/class/power_supply/BAT0/energy_now)
  dif="$((ful - cur))"
  slope="$((cur - oldval))"
  if [ "$slope" -lt 0 ]
    echo "*** discharging!"
    notify-send -u critical -i "notification-message-IM" "discharging"
 sleep $nsecs
share|improve this answer
cat /proc/acpi/ac_adapter/AC/state
share|improve this answer
not sure what you're talking about here. running it in the terminal gave cat: /proc/acpi/ac_adapter/AC0/state: No such file or directory – infoquad Apr 19 '11 at 12:06

This works:

cat /proc/acpi/ac_adapter/AC0/state
share|improve this answer
Does not work on my Dell – Charles Green Nov 15 '14 at 18:58
Apparently the file locations changed as of Linux Kernel 2.6.24, it's now cat /proc/acpi/battery/BAT0/info – Charles Green Nov 15 '14 at 19:01

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.