Réponses:
La commande ci-dessous génère un état du lot et des informations statistiques sur la batterie. Le /org/...
chemin 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.
upower --enumerate
peut être utile si vous ne savez pas comment l'utiliser upower
.
upower -e
, cette commande répertorie les chemins disponibles pour upower -i ...
. Si vous êtes paresseux et que vous voulez juste une liste de tous les périphériques, utilisez upower -d
( upower --dump
).
upower
je me suis immédiatement perdu.
upower -i $(upower -e | grep BAT) | grep --color=never -E "state|to\ full|to\ empty|percentage"
Rappel amical : depuis le noyau Linux 2.6.24, l’ utilisation /proc
de stocker les informations ACPI est découragée et obsolète .
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
/sys/class/power_supply/BAT0/capacity
semble montrer le pourcentage de charge actuel.
/proc
c'est déconseillé, mais cela /sys
fonctionne parfaitement pour moi, même dans le noyau 4.20.
read
fonction similaire à PHP, $capacity = trim(file_get_contents("/sys/class/power_supply/BAT0/capacity"));
ce qui le rend très facile et ne dépend d'aucune dépendance externe.
D'abord installer 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 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 degrés C Thermique 0: le point de déclenchement 0 bascule en mode critique à une température de 127,0 degrés C Thermique 0: le point de déclenchement 1 passe en mode chaud à une température de 127,0 degrés C Cooling 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
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 juste la valeur numérique avec cette doublure
upower -i $(upower -e | grep '/battery') | grep --color=never -E percentage|xargs|cut -d' ' -f2|sed s/%//
battery
au lieu de BAT
le faire fonctionner. J'ai trouvé ça avec upower --enumerate
.
battery
travaux dans Ubuntu aussi, donc je l'ai changé deBAT
Il suffit de taper la commande
acpi
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
Voici un article sur un package permettant de contrôler la durée de vie de votre batterie en ligne de commande.
En gros, tout ce que vous avez à faire est de:
sudo apt-get install acpi
acpi -V
Peut-être que vous pouvez essayer:
cat /proc/acpi/battery/BAT0/state
cat /proc/acpi/battery/BAT0/info
/proc
pour stocker les informations ACPI est découragé et obsolète depuis le 2.6.24. Maintenant c'est dans /sys/class/power_supply/BAT0
.
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 simple batpower:
#!/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
NB: 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 BAT0 si vous possédez une version plus ancienne Ubuntu, c’est-à-dire 13.04 ou une version ultérieure.
SCRIPT AMÉLIORÉ: 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!
/sys/class/power_supply/BAT0
et /sys/class/power_supply/BAT1
... Ce peut être soit. Et vous devriez utiliser ce chemin ( /sys/class/power_supply/BAT#
).
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 la source de Byobu . Ce pourrait être un bon candidat pour un alias Bash .
/sys/class/power_supply/BAT0/
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
Installez acpi, puis utilisez-le 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 sera mis à jour toutes les 5 secondes.
Batterie 0: pleine, 100%, information sur le débit non disponible
Batterie 0: capacité nominale 6000 mAh, dernière capacité totale 3424 mAh = 57%
La question est pourquoi quelqu'un ferait-il cela? Eh bien, j'ai un ordinateur portable avec un écran LCD cassé que j'utilise maintenant comme boîtier BitTorrent.
J'allais suggérer acpi
mais après avoir lu cela ne fonctionnait pas en 11h10, j'avais une idée.
Veuillez taper ceci dans votre terminal:
ls /proc/acpi/battery/BAT0
ouBAT1
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 et exécutez-le 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, si pas déjà installé, installez le programme à calc
partir du repo: 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 estimation ci-dessus, car il acpi
affiche une batterie de 93%, et mon script indique une batterie de 90%. Essayez donc ce script avec le pourcentage de batterie de votre interface graphique et voyez à quel point il est en panne. 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)
acpi
cela ne fonctionne pas, car je suppose que 11.10 ne prend pas en charge également les fonctions ACPI de votre ordinateur portable [batterie, etc.]. Je pense avoir déjà vécu quelque chose comme cela lors de la mise à niveau par le passé. Je suis toujours sur 11.04 cependant. Désolé que cela n'ait pas fonctionné pour toi :(
ls /proc/acpi/
? Merci
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"
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
Cela n’aidera pas tout le monde, mais c’est ce qui m’a été utile - j’utilise byobu chaque fois que j’utilise un terminal, et la pile est l’une des options de la barre de notifications d’état.
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
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"