web-dev-qa-db-fra.com

Comment vérifier l'état de la batterie via le terminal?

Je voudrais une commande qui affiche l'état de la batterie dans le terminal.

308
Joe

La commande ci-dessous génère un état du 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 à partir de toutes ces sorties.

Un moyen simple: en lançant la commande ci-dessus dans

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

les 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 l'ensemble de 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 sources d'alimentation disponibles, telles que les batteries d'ordinateurs portables, les souris externes, etc.

323
Lekensteyn

n rappel amical: depuis le noyau Linux 2.6.24 utiliser /proc pour stocker les informations ACPI a été déconseillé et déconseillé.

Nous sommes maintenant encouragés à utiliser -> /sys/class/power_supply/BAT0.

UPDATE: Linux 3.19 et les versions ultérieures, nous devrions examiner le répertoire suivant -> /sys/class/power_supply/BAT1/

Par exemple, vérification de la capacité et du statut sur Arch Linux sous 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
115
Terry Wang

Installez d'abord acpien 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 détaillée qui met à jour en permanence:

watch --interval=5 acpi -V

Sortie:

Toutes les 5.0s: acpi -V mer. 8 janv. 15:45:35 2014 
 
 Batterie 0: pleine, 100% 
 Adaptateur 0: en ligne 
 Thermique 0: ok, 44,0 ° C 
 Thermique 0: le point de déclenchement 0 bascule en mode critique à la température de 127,0 ° C 
 Thermique 0: le point de déclenchement 1 bascule en mode chaud à la température de 127,0 ° C 
 Refroidissement 0: intel_powerclamp aucune information d'état disponible 
 Refroidissement 1: pkg-temp-0 aucune information d'état disponible 
 Refroidissement 2: LCD 100 sur 100 
. Refroidissement 3: LCD 100 sur 100 
 Refroidissement 4: Processeur 0 sur 10 
 Refroidissement 5: Processeur 0 sur 10 
 Refroidissement 6: Processeur 0 sur 10 
 Refroidissement 7: Processeur 0 sur 10 
 Refroidissement 8: Processeur 0 sur 10 
 Refroidissement 9: Processeur 0 sur 10 
 Refroidissement 10: Processeur 0 sur 10 
 Refroidissement 11: Processeur 0 sur 10
61
Suhaib

Grâce à @Wilf, cela fonctionne sous Ubuntu 17.10 sous 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 simplement la valeur numérique avec cette doublure

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

Il suffit de taper la commande

acpiname__

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

acpi -V

Je n'avais pas besoin d'installer de paquet avant.

Système: Debian 7.2 64bit

26
user309404

Here est un article sur un package permettant de vérifier la durée de vie de votre batterie sur la ligne de commande.

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

Sudo apt-get install acpi
acpi -V
17
josh-fuggle

Peut-être que vous pouvez essayer:

cat /proc/acpi/battery/BAT0/state

cat /proc/acpi/battery/BAT0/info

16
Mariano L

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

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

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

La sortie pour exécuter ceci (./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 vous connectant à/sys/class/power_supply ou comme Lekensteyn l'a mentionné via upower -e

Ma machine: Ubuntu 13.10, 3.11.0

Remplacez BAT1 dans le code bash ci-dessus par BAT si vous possédez une version plus ancienne Ubuntu c'est-à-dire 13.04 ou une version ultérieure.

AMÉLIORÉ LE SCRIPT: Depuis mon post original, 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 mon promt:

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

Mettez à jour votre terminal ou ouvrez un nouvel onglet ou une nouvelle fenêtre. Vous pouvez désormais surveiller en permanence la charge de la batterie dans le terminal! y compris tty! Que les scripts soient loués! enter image description here

12
Sergiy Kolodyazhnyy

Vous pouvez le faire sans installer de paquet supplémentaire:

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

Cette commande est levée de source de byob . Ce pourrait être un bon candidat pour un alias Bash .

9
ændrük

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 que l'Etat fasse:

cat /proc/acpi/battery/BAT0/state
8
MEM

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

Par exemple.

watch --interval=5 acpi -V

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

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

La question est pourquoi quelqu'un ferait ceci? Eh bien, j’ai un ordinateur portable avec un écran cassé LCD que je me sers maintenant de ma boîte bittorrent.

6
iceburn

Cela a fait le travail pour moi dans Ubuntu 14.04:

cat /sys/class/power_supply/BAT0/capacity
5
the_saint

J'allais suggérer acpimais après avoir lu cela ne fonctionnait pas dans 11.10, j'avais une idée.

Veuillez saisir 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 répertorie des fichiers, voici un script [collez-le dans/usr/games/ou dans un autre répertoire de $ PATH, puis exécutez Sudo chmod +x /usr/games/batterypercent ou le nom de votre choix] que je viens d’écrire pour vous et qui vous donnera un pourcentage estimé de la batterie [voir ci-dessous]:

(Remarque, s'il n'est pas déjà installé, installez le programme calcà partir du référentiel: 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)%

J'ai testé ce script sur mon ordinateur portable. Je dis une estimation ci-dessus, car acpiaffiche 93% de batterie et mon script indique 90% de batterie. hors c'est. Dans mon cas, il semble être systématiquement 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 cela aussi. (12.04 LTS)

4
Matt

Script similaire sans calc ou 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"
1
xerostomus

Nous pouvons faire écho au pourcentage avec cette commande

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

65%

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

1
intika

Voici ce que j'utilise. Il se contente de regarder la différence entre la charge complète et la charge actuelle, ainsi que de voir si la charge baisse, auquel cas il utilise notify 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
1
Mark Simmons

Vous pouvez soit taper:

$ acpi -i
Battery 0: Discharging, 98%, 02:51:14 remaining
Battery 0: design capacity 4400 mAh, last full capacity 3733 mAh = 84%

ou

$ 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
0
SebMa

Cela n’aidera pas tout le monde, mais c’est ce que j’utilise - j’utilise byob chaque fois que j’utilise un terminal, et la pile est l’une des options de la barre de notifications d’état.

0
sheepeatingtaz