Comment vérifier l'état de la batterie à l'aide du terminal?

263

Je voudrais une commande qui vérifie l'état de la batterie via le terminal

    
posée Joe 20.10.2011 - 03:24
la source

19 réponses

275

La commande ci-dessous affiche un état de lot et des informations statistiques sur la batterie. Le chemin /org/... peut être trouvé avec la commande upower -e ( --enumerate ).

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

Exemple de sortie:

  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

Vous pouvez utiliser des outils tels que grep pour obtenir uniquement les informations souhaitées dans toutes ces sorties.

Un moyen simple: transférer la commande ci-dessus dans

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

sorties:

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

Si vous souhaitez souvent exécuter cette commande, vous pouvez créer un alias Bash pour toute la commande. Exemple:

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

Ajoutez cela à la fin de votre fichier .bashrc, et vous pouvez taper «bat» à tout moment, dans le terminal.

Il existe également une commande upower -d ( --dump ) qui affiche des informations sur toutes les ressources d'alimentation disponibles, telles que les batteries d'ordinateurs portables, les souris externes, etc.

    
réponse donnée Lekensteyn 09.02.2012 - 18:42
la source
98

Un rappel convivial : depuis que le noyau Linux 2.6.24 utilise /proc pour stocker les informations ACPI a été déconseillé et obsolète .

Maintenant, nous sommes encouragés à utiliser - & gt; /sys/class/power_supply/BAT0 .

UPDATE: Linux 3.19 et suivants, nous devrions examiner le répertoire suivant - & gt; /sys/class/power_supply/BAT1/

Par exemple capacité - & gt; cat /sys/class/power_supply/BAT1/capacity statut - & gt; cat /sys/class/power_supply/BAT1/status

    
réponse donnée Terry Wang 17.06.2013 - 10:35
la source
57

Installez d'abord acpi en exécutant cette commande,

sudo apt-get install acpi

Puis lancez:

acpi

Exemple de sortie:

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

Ou pour une sortie plus bavarde qui se met constamment à jour:

watch --interval=5 acpi -V

Sortie:

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
    
réponse donnée Suhaib 24.11.2012 - 21:20
la source
26

Grâce à @Wilf, cela fonctionne sur mon Ubuntu 17.10 sur Lenovo Yoga 720:

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

Sortie:

state:               fully-charged
percentage:          100%

Ou juste la valeur numérique avec ce seul paquebot

upower -i $(upower -e | grep '/battery') | grep --color=never -E percentage|xargs|cut -d' ' -f2|sed s/%//
    
réponse donnée rubo77 02.07.2014 - 10:56
la source
23

Il suffit de taper la commande

  

acpi

Pour des informations détaillées, vous pouvez taper

  

acpi -V

Je n'ai pas eu à installer de paquet avant.

Système: Debian 7.2 64bit

    
réponse donnée user309404 26.07.2014 - 16:36
la source
15

Peut-être que vous pouvez essayer:

cat /proc/acpi/battery/BAT0/state

cat /proc/acpi/battery/BAT0/info

    
réponse donnée Mariano L 20.10.2011 - 07:36
la source
15

Ici est un article sur un paquet qui peut vérifier votre autonomie de la batterie sur la ligne de commande.

En gros, tout ce que vous avez à faire est de:

sudo apt-get install acpi
acpi -V
    
réponse donnée josh-fuggle 10.06.2011 - 06:57
la source
11

Je suis un peu en retard pour la fête mais voici ma petite contribution. Sur la base des réponses précédentes, j'ai créé un script de batpower simple:

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

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

La sortie pour l’exécuter (./batpower) va ressembler à ceci:

POWER_SUPPLY_CAPACITY=23

N.B. : le numéro de batery peut être différent pour vous, dans mon cas, il s'agit de BAT1, mais vous pouvez toujours le trouver en allant sur / sys / class / power_supply ou comme Lekensteyn mentionné dans upower -e

Ma machine: Ubuntu 13.10, 3.11.0

Remplacez BAT1 dans le code bash ci-dessus par BAT0 si vous avez une version antérieure d'Ubuntu, à savoir 13.04 ou ultérieure.

SCRIPT AMÉLIORÉ: Depuis mon message d’origine, j’ai apporté une petite amélioration au 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 

Comme toujours, faites attention aux espaces avec bash. Ceci est tout à fait explicite. Si la batterie est présente, elle apparaîtra, sinon - le script vous le dira. Maintenant, allez dans votre fichier .bashrc et ajoutez $ (batpower) à votre invite. Voici la promesse:

PS1='[$(batpower)]\n${debian_chroot:+($debian_chroot)}[*\[email protected]*]:\w$ ' 

Mettez à jour votre terminal ou ouvrez un nouvel onglet ou une nouvelle fenêtre, et vous pouvez maintenant surveiller la charge de la batterie en permanence dans le terminal! y compris tty! Que le script soit loué!

    
réponse donnée Sergiy Kolodyazhnyy 23.07.2014 - 05:23
la source
9

Exécutez la commande suivante dans un terminal pour obtenir des informations détaillées:

cat /proc/acpi/battery/BAT0/info

Si vous voulez juste l’État faire:

cat /proc/acpi/battery/BAT0/state
    
réponse donnée MEM 19.04.2011 - 14:20
la source
9

Vous pouvez le faire sans installer de paquetages supplémentaires:

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

Cette commande est supprimée de la source de byobu . Cela pourrait être un bon candidat pour un alias Bash .

    
réponse donnée ændrük 10.06.2011 - 07:35
la source
5

Installez acpi, puis utilisez watch pour surveiller en permanence via la ligne de commande.

par exemple.

watch --interval=5 acpi -V

affichera les informations telles que ci-dessous et les mettra à jour toutes les 5 secondes.

  

Batterie 0: Complète, 100%, taux d’information indisponible
  Batterie 0: capacité nominale 6000 mAh, dernière pleine capacité 3424 mAh = 57%

La question est pourquoi quelqu'un ferait cela? Eh bien, j'ai un ordinateur portable avec un écran LCD cassé que j'utilise maintenant comme boîte de dialogue.

    
réponse donnée iceburn 30.08.2011 - 22:33
la source
5

Cela a fait le travail pour moi dans Ubuntu 14.04:

cat /sys/class/power_supply/BAT0/capacity
    
réponse donnée the_saint 23.11.2014 - 14:29
la source
4

J'allais suggérer acpi mais après avoir lu ça ne marchait pas en 11.10, j'avais une idée.

Veuillez taper ceci dans votre terminal: ls /proc/acpi/battery/BAT0 ou BAT1

Si vous obtenez un "fichier ou répertoire introuvable", cela ne fonctionnera pas.

Mais s'il liste des fichiers, alors voici un script [collez-le dans / usr / games / ou un autre répertoire dans $ PATH, et exécutez sudo chmod +x /usr/games/batterypercent , ou peu importe comment vous l'appelez] Je viens d'écrire pour vous qui vous donnera une estimation du pourcentage de la batterie [Voir ci-dessous]:

(Remarque: si ce n’est pas déjà installé, installez le programme calc à partir du dépôt: sudo apt-get install apcalc )

#!/bin/bash
math() { calc -d "[email protected]"|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)%

J'ai testé ce script sur mon ordinateur portable. Je dis estimer ci-dessus parce que acpi affiche 93% de la batterie, et mon script affiche 90% de la batterie, essayez donc ce script par rapport au pourcentage de la batterie de votre interface graphique. Dans mon cas, il semble être constamment inférieur de 3% au pourcentage d'acpi. Dans ce cas, vous pouvez ajouter cette ligne juste avant la dernière ligne: percent=$((percent + 3)) , où "3" est le pourcentage le plus bas.

** Dans mon Lenovo, la batterie est répertoriée comme BAT1, essayez aussi. (12.04 LTS)

    
réponse donnée Matt 20.10.2011 - 04:42
la source
1

Script similaire sans calc ou 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"
    
réponse donnée xerostomus 15.11.2014 - 19:24
la source
1

Voici ce que j'utilise. Il examine simplement la différence entre la charge complète et la charge actuelle, et vérifie si la charge est en train de baisser. Dans ce cas, il utilise la notification pour alerter l'utilisateur.

#!/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
    
réponse donnée Mark Simmons 28.02.2016 - 13:47
la source
0

Cela n’aidera pas tout le monde, mais c’est ce que j’ai fait: j’utilise byobu chaque fois que j'utilise un terminal, et La batterie est l'une des options de la barre des notifications d'état.

    
réponse donnée sheepeatingtaz 07.01.2016 - 09:41
la source
0

Nous pouvons juste faire écho au pourcentage avec cette commande

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

65%

au cas où vous auriez besoin d'extraire cette valeur

    
réponse donnée intika 25.03.2018 - 13:56
la source
-2
cat /proc/acpi/ac_adapter/AC/state
    
réponse donnée Todd Harris 19.04.2011 - 14:03
la source
-2

Cela fonctionne:

cat /proc/acpi/ac_adapter/AC0/state
    
réponse donnée xerostomus 15.11.2014 - 18:35
la source

Lire d'autres questions sur les étiquettes