Respuestas:
El siguiente comando genera un estado de lote e información estadística sobre la batería. La /org/...
ruta se puede encontrar con el comando upower -e
( --enumerate
).
upower -i /org/freedesktop/UPower/devices/battery_BAT0
Salida de ejemplo:
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
Podría usar herramientas como grep para obtener solo la información que desea de toda esa salida.
Una forma simple: canalizar 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 hacer un alias 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 para todos los recursos de energía disponibles, como baterías de portátiles, ratones externos, etc.
upower --enumerate
puede ser útil si no está seguro de cómo usarlo upower
.
upower -e
que ese comando enumera las rutas disponibles para upower -i ...
. Si eres perezoso y solo quieres una lista de todos los dispositivos, usa upower -d
( upower --dump
).
upower
me perdí.
upower -i $(upower -e | grep BAT) | grep --color=never -E "state|to\ full|to\ empty|percentage"
Un recordatorio amistoso : desde el kernel de Linux 2.6.24 que se utiliza /proc
para almacenar información ACPI se ha desaconsejado y desaprobado .
Ahora se nos recomienda usar -> /sys/class/power_supply/BAT0
.
ACTUALIZACIÓN: Linux 3.19 y en adelante, debemos mirar el siguiente directorio -> /sys/class/power_supply/BAT1/
Por ejemplo, verificar la capacidad y el estado en Arch Linux con Linux 4.20 ->
# 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
/sys/class/power_supply/BAT0/capacity
parece mostrar el porcentaje de carga actual.
/proc
está en desuso pero /sys
funciona perfectamente para mí, incluso en el kernel 4.20.
read
función como en PHP, $capacity = trim(file_get_contents("/sys/class/power_supply/BAT0/capacity"));
lo que lo hace súper fácil y no depende de ninguna dependencia externa.
Primero instale acpi
ejecutando este comando,
sudo apt-get install acpi
Entonces corre:
acpi
Salida de muestra:
Battery 0: Discharging, 61%, 01:10:12 remaining
O para una salida más detallada que se actualiza constantemente:
watch --interval=5 acpi -V
Salida:
Cada 5.0s: acpi -V mié 8 de enero 15:45:35 2014 Batería 0: llena, 100% Adaptador 0: en línea Térmico 0: ok, 44.0 grados C Térmico 0: el punto de disparo 0 cambia al modo crítico a una temperatura de 127.0 grados C Térmico 0: el punto de disparo 1 cambia al modo caliente a una temperatura de 127.0 grados C Enfriamiento 0: intel_powerclamp no hay información de estado disponible Enfriamiento 1: pkg-temp-0 no hay información de estado disponible Enfriamiento 2: LCD 100 de 100 Enfriamiento 3: LCD 100 de 100 Enfriamiento 4: Procesador 0 de 10 Enfriamiento 5: Procesador 0 de 10 Enfriamiento 6: Procesador 0 de 10 Enfriamiento 7: Procesador 0 de 10 Enfriamiento 8: Procesador 0 de 10 Enfriamiento 9: Procesador 0 de 10 Enfriamiento 10: Procesador 0 de 10 Enfriamiento 11: Procesador 0 de 10
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 simplemente el valor numérico con este delineador
upower -i $(upower -e | grep '/battery') | grep --color=never -E percentage|xargs|cut -d' ' -f2|sed s/%//
battery
lugar de BAT
hacerlo funcionar. Lo encontré con upower --enumerate
.
battery
trabajos en Ubuntu también, así que lo cambié deBAT
Es suficiente 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
Aquí hay un artículo sobre un paquete que puede verificar la 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
Quizás puedas probar:
cat /proc/acpi/battery/BAT0/state
cat /proc/acpi/battery/BAT0/info
/proc
para almacenar información ACPI ha sido desaconsejado y en desuso desde 2.6.24. Ahora está adentro /sys/class/power_supply/BAT0
.
Llego un poco tarde a la fiesta, pero aquí está mi pequeña contribución. En base a las respuestas anteriores, he creado una potencia de secuencia de comandos simple:
#!/bin/bash
# Description: Battery charge in percentage
grep POWER_SUPPLY_CAPACITY /sys/class/power_supply/BAT1/uevent
La salida para ejecutar esto (./batpower) será algo como esto:
POWER_SUPPLY_CAPACITY=23
NB: el número de la batería puede ser diferente para usted, en mi caso es BAT1, pero siempre puede averiguarlo haciendo clic en / sys / class / power_supply o como Lekensteyn mencionó a través de upower -e
Mi máquina: Ubuntu 13.10, 3.11.0
Reemplace BAT1 en el código bash anterior a BAT0 si tiene una versión anterior de Ubuntu, es decir, 13.04 o posterior.
SCRIPT MEJORADO: desde mi publicación original, he realizado 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. Todo esto se explica por sí mismo. Si la batería está presente, aparecerá, de lo contrario, el script se lo indicará. Ahora, vaya a su archivo .bashrc y agregue $ (batpower) a su solicitud. Aquí está mi mensaje:
PS1='[$(batpower)]\n${debian_chroot:+($debian_chroot)}[*\u@Ubuntu*]:\w\$ '
Actualice su terminal o abra una nueva pestaña o ventana, ¡y ahora puede controlar la carga de la batería constantemente en la terminal! incluyendo tty! ¡Que se elogien las secuencias de comandos!
/sys/class/power_supply/BAT0
y /sys/class/power_supply/BAT1
... Puede ser cualquiera. Y deberías usar esa ruta ( /sys/class/power_supply/BAT#
).
Puede hacerlo sin instalar ningún paquete adicional:
$ 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%
Este comando se levanta de la fuente de byobu . Podría ser un buen candidato para un alias Bash .
/sys/class/power_supply/BAT0/
Ejecute el siguiente comando en una terminal para obtener información detallada:
cat /proc/acpi/battery/BAT0/info
Si solo quieres que el estado haga:
cat /proc/acpi/battery/BAT0/state
Instale acpi, luego use watch
para monitorear continuamente a través de la línea de comando.
P.ej
watch --interval=5 acpi -V
mostrará la información que se muestra a continuación y se actualizará cada 5 segundos.
Batería 0: completa, 100%, información de velocidad 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 computadora portátil con pantalla LCD rota que ahora estoy usando como mi caja de bittorrent.
Iba a sugerir, acpi
pero después de leerlo no funciona en 11.10, tuve una idea.
Escriba esto en su terminal:
ls /proc/acpi/battery/BAT0
oBAT1
Si obtiene un "archivo o directorio no encontrado", entonces esto no va a funcionar.
Pero, si enumera archivos, entonces aquí hay un script [péguelo en / usr / games / u otro directorio en $ PATH, y ejecútelo sudo chmod +x /usr/games/batterypercent
, o lo que sea que usted nombre] que acabo de escribir para usted que le dará un porcentaje estimado de batería [Vea abajo]:
(Tenga en cuenta que, si aún no está instalado, instale el programa calc
desde el 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 $3}')
current=$(grep 'remaining capacity:' state|awk '{print $3}')
percent=$(math "($current / $max) * 100");
echo $(echo $percent|cut -d. -f1)%
He probado este script 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 intente este script contra su porcentaje de batería de GUI y vea 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 aparece como BAT1, inténtalo también. (12.04 LTS)
acpi
que no funciona, porque supongo que 11.10 tampoco es compatible con las funciones ACPI de su computadora portátil [batería, etc.]. Creo que he experimentado algo como esto al actualizar en el pasado. Sin embargo, todavía estoy en 11.04. Lo siento, esto no funcionó para ti :(
ls /proc/acpi/
? Gracias
Script similar sin calc ni 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"
Aquí está lo que uso. Simplemente observa la diferencia entre la carga completa y la carga actual, así como para ver si la carga está cayendo, en cuyo caso utiliza la notificación 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
Esto no ayudará a todos, pero a mí sí. Utilizo byobu cada vez que uso un terminal, y la batería es una de las opciones para la barra de notificaciones de estado.
Puedes escribir:
$ acpi -i
Battery 0: Discharging, 98%, 02:51:14 remaining
Battery 0: design capacity 4400 mAh, last full capacity 3733 mAh = 84%
o
$ 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
cat /proc/acpi/ac_adapter/AC/state
cat: /proc/acpi/ac_adapter/AC0/state: No such file or directory
$ upower -i $(upower -e | grep 'BAT') | grep -E "state|to\ full|percentage"