¿Cómo verificar el estado de la batería usando el terminal?

267

Me gustaría un comando que verifique el estado de la batería a través del terminal

    
pregunta Joe 20.10.2011 - 03:24

19 respuestas

278

El comando a continuación genera un gran estado e información estadística sobre la batería. La ruta /org/... se puede encontrar con el comando upower -e ( --enumerate ).

upower -i /org/freedesktop/UPower/devices/battery_BAT0

Ejemplo de salida:

  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

Puede usar herramientas como grep para obtener solo la información que desea de todos los resultados.

Una forma sencilla: conectar el comando anterior en

grep -E "state|to\ full|percentage"

salidas:

state:               charging
time to full:        57.3 minutes
percentage:          42.5469%

Si a menudo le gustaría ejecutar ese comando, entonces podría crear un alias de Bash para todo el comando. Ejemplo:

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

Agregue eso al final de su archivo .bashrc, y puede escribir 'bat' en cualquier momento, en la terminal.

También hay un comando upower -d ( --dump ) que muestra información de todos los recursos de energía disponibles, como baterías de equipos portátiles, ratones externos, etc.

    
respondido por el Lekensteyn 09.02.2012 - 18:42
99

Un recordatorio amistoso : desde el kernel de Linux 2.6.24 utilizando /proc para almacenar información de ACPI se ha desalentado y obsoleto .

Ahora nos alienta a usar - & gt; /sys/class/power_supply/BAT0 .

ACTUALIZACIÓN: Linux 3.19 en adelante, deberíamos mirar el siguiente directorio - & gt; /sys/class/power_supply/BAT1/

Por ejemplo capacidad - & gt; %código% estado - & gt; cat /sys/class/power_supply/BAT1/capacity

    
respondido por el Terry Wang 17.06.2013 - 10:35
59

Primero instala acpi ejecutando este comando,

sudo apt-get install acpi

Luego ejecuta:

acpi

Salida de muestra:

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

O para un resultado más detallado que se actualiza constantemente:

watch --interval=5 acpi -V

Salida:

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
    
respondido por el Suhaib 24.11.2012 - 21:20
26

Gracias a @Wilf esto funciona en mi Ubuntu 17.10 en Lenovo Yoga 720:

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

Salida:

state:               fully-charged
percentage:          100%

O solo el valor numérico con este trazador de líneas

upower -i $(upower -e | grep '/battery') | grep --color=never -E percentage|xargs|cut -d' ' -f2|sed s/%//
    
respondido por el rubo77 02.07.2014 - 10:56
23

Basta con escribir el comando

  

acpi

Para obtener información detallada, puede escribir

  

acpi -V

No tuve que instalar ningún paquete antes.

Sistema: Debian 7.2 64bit

    
respondido por el user309404 26.07.2014 - 16:36
15

Tal vez puedas intentarlo:

cat /proc/acpi/battery/BAT0/state

cat /proc/acpi/battery/BAT0/info

    
respondido por el Mariano L 20.10.2011 - 07:36
15

Aquí hay un artículo sobre un paquete que puede verificar su duración de la batería en la línea de comando.

Básicamente, todo lo que tienes que hacer es:

sudo apt-get install acpi
acpi -V
    
respondido por el josh-fuggle 10.06.2011 - 06:57
11

Llego un poco tarde a la fiesta, pero esta es mi pequeña contribución. Basándome en las respuestas anteriores, he creado un script simple de batpower:

#!/bin/bash
# Description: Battery  charge in percentage

grep POWER_SUPPLY_CAPACITY /sys/class/power_supply/BAT1/uevent

La salida para ejecutar esto (./batpower) va a ser algo como esto:

POWER_SUPPLY_CAPACITY=23

N.B. : el número de la batería puede ser diferente para usted, en mi caso es BAT1, pero siempre puede encontrarlo mediante el comando cd'ing a / sys / class / power_supply o como lo mencionó Lekensteyn a través de upower -e

Mi máquina: Ubuntu 13.10, 3.11.0

Reemplace BAT1 en el código bash anterior por BAT0 si tiene una versión anterior Ubuntu, es decir, 13.04 o posterior.

SCRIPT MEJORADO: Desde mi publicación original, realicé una pequeña mejora en el 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 

Como siempre, preste atención a los espacios con bash. Esto es todo lo que se explica por sí mismo. Si la batería está presente, aparecerá, de lo contrario, el script se lo dirá. Ahora, vaya a su archivo .bashrc y agregue $ (potencia de batería) a su solicitud. Aquí está el mío:

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

Actualice su terminal o abra una nueva pestaña o ventana, ¡y ahora puede monitorear la carga de la batería constantemente en la terminal! ¡Incluyendo tty! ¡Que los guiones sean elogiados!

    
respondido por el Sergiy Kolodyazhnyy 23.07.2014 - 05:23
9

Ejecute el siguiente comando en un terminal para obtener información detallada:

cat /proc/acpi/battery/BAT0/info

Si solo quieres que el estado lo haga:

cat /proc/acpi/battery/BAT0/state
    
respondido por el MEM 19.04.2011 - 14:20
9

Puedes hacerlo sin instalar ningún paquete adicional:

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

Este comando se elimina de por la fuente de Obu . Podría ser un buen candidato para Bash alias .

    
respondido por el ændrük 10.06.2011 - 07:35
5

Instala acpi, luego usa watch para monitorear continuamente a través de la línea de comando.

Por ej.

watch --interval=5 acpi -V

mostrará la información tal como se muestra a continuación y se actualizará cada 5 segundos.

  

Battery 0: Full, 100%, información de tarifas no disponible
  Batería 0: capacidad de diseño 6000 mAh, última capacidad total 3424 mAh = 57%

La pregunta es por qué alguien haría esto? Bueno, tengo una laptop con pantalla LCD rota que ahora estoy usando como mi caja bittorrent.

    
respondido por el iceburn 30.08.2011 - 22:33
5

Esto hizo el trabajo para mí en ubuntu 14.04:

cat /sys/class/power_supply/BAT0/capacity
    
respondido por el the_saint 23.11.2014 - 14:29
4

Iba a sugerir acpi , pero después de leer que no funcionaba en 11.10, tuve una idea.

Escribe esto en tu terminal: ls /proc/acpi/battery/BAT0 o BAT1

Si obtiene un "archivo o directorio no encontrado", esto no funcionará.

Pero, si lista los archivos, aquí hay un script [pégalo en / usr / games / u otro directorio en $ PATH, y ejecuta sudo chmod +x /usr/games/batterypercent , o lo que sea que quieras] que Acabo de escribir para usted que le dará un porcentaje estimado de batería [Ver abajo]:

(Tenga en cuenta que, si aún no está instalado, instale el programa calc del repositorio: sudo apt-get install apcalc )

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

He probado esta secuencia de comandos en mi computadora portátil. Digo estimar arriba porque acpi muestra 93% de batería, y mi script muestra 90% de batería, así que prueba esta secuencia de comandos con el porcentaje de batería de tu GUI y comprueba qué tan apagado está. En mi caso, parece ser consistentemente un 3% más bajo que el porcentaje de acpi. En ese caso, puede agregar esta línea justo antes de la última línea: percent=$((percent + 3)) , donde "3" es el porcentaje bajo.

** En mi Lenovo, la batería figura como BAT1, inténtalo también. (12.04 LTS)

    
respondido por el Matt 20.10.2011 - 04:42
1

Script similar sin calc o 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"
    
respondido por el xerostomus 15.11.2014 - 19:24
1

Esto es lo que uso. Solo mira la diferencia entre la carga completa y la carga actual, así como para ver si la carga está bajando, en cuyo caso usa notificar para alertar al usuario.

#!/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
    
respondido por el Mark Simmons 28.02.2016 - 13:47
0

Esto no ayudará a todos, pero me perjudicó: uso byobu cuando utilizo un terminal, y la batería es una de las opciones para la barra de notificaciones de estado.

    
respondido por el sheepeatingtaz 07.01.2016 - 09:41
0

Podemos repetir solo el porcentaje con ese comando

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

65%

en caso de que necesite extraer ese valor

    
respondido por el intika 25.03.2018 - 13:56
-2
cat /proc/acpi/ac_adapter/AC/state
    
respondido por el Todd Harris 19.04.2011 - 14:03
-2

Esto funciona:

cat /proc/acpi/ac_adapter/AC0/state
    
respondido por el xerostomus 15.11.2014 - 18:35

Lea otras preguntas en las etiquetas