Risposte:
Il comando seguente mostra un sacco di stato e informazioni statistiche sulla batteria. Il /org/...
percorso può essere trovato con il comando upower -e
( --enumerate
).
upower -i /org/freedesktop/UPower/devices/battery_BAT0
Esempio di output:
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
È possibile utilizzare strumenti come grep per ottenere solo le informazioni desiderate da tutto l'output.
Un modo semplice: reindirizzare il comando sopra
grep -E "state|to\ full|percentage"
uscite:
state: charging
time to full: 57.3 minutes
percentage: 42.5469%
Se desideri eseguire spesso questo comando, puoi creare un alias Bash per l'intero comando. Esempio:
alias bat='upower -i /org/freedesktop/UPower/devices/battery_BAT0| grep -E "state|to\ full|percentage"'
Aggiungilo alla fine del tuo file .bashrc e puoi digitare 'bat' in qualsiasi momento, nel terminale.
C'è anche un comando upower -d
( --dump
) che mostra le informazioni per tutte le risorse energetiche disponibili come batterie per laptop, mouse esterni, ecc.
upower --enumerate
può essere utile se non si è sicuri su come utilizzare upower
.
upower -e
che quel comando elenca i percorsi disponibili per upower -i ...
. Se sei pigro e desideri solo un elenco di tutti i dispositivi, usa upower -d
( upower --dump
).
upower
mi sono perso immediatamente.
upower -i $(upower -e | grep BAT) | grep --color=never -E "state|to\ full|to\ empty|percentage"
Un promemoria amichevole : dal momento che il kernel 2.6.24 di Linux che utilizzava /proc
per archiviare le informazioni ACPI è stato scoraggiato e deprecato .
Ora siamo incoraggiati a usare -> /sys/class/power_supply/BAT0
.
AGGIORNAMENTO: Linux 3.19 e successivi, dovremmo guardare la seguente directory -> /sys/class/power_supply/BAT1/
Ad esempio, controllo della capacità e dello stato su 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
sembra mostrare l'attuale percentuale di addebito.
/proc
sia deprecato ma /sys
funziona perfettamente per me, anche nel kernel 4.20.
read
funzione come in PHP $capacity = trim(file_get_contents("/sys/class/power_supply/BAT0/capacity"));
che lo rende super facile e non dipendente da dipendenze esterne.
Prima installa acpi
eseguendo questo comando,
sudo apt-get install acpi
Quindi eseguire:
acpi
Uscita campione:
Battery 0: Discharging, 61%, 01:10:12 remaining
O per un output più dettagliato che aggiorna costantemente:
watch --interval=5 acpi -V
Produzione:
Ogni 5.0: acpi -V mer 8 gennaio 15:45:35 2014 Batteria 0: carica completa, 100% Adattatore 0: online Termico 0: ok, 44,0 gradi C Termico 0: il punto di intervento 0 passa alla modalità critica a temperatura 127,0 gradi C Termico 0: il punto di intervento 1 passa alla modalità caldo a temperatura 127,0 gradi C Raffreddamento 0: intel_powerclamp nessuna informazione sullo stato disponibile Raffreddamento 1: pkg-temp-0 nessuna informazione sullo stato disponibile Raffreddamento 2: LCD 100 di 100 Raffreddamento 3: LCD 100 di 100 Raffreddamento 4: Processore 0 di 10 Raffreddamento 5: Processore 0 di 10 Raffreddamento 6: Processore 0 di 10 Raffreddamento 7: Processore 0 di 10 Raffreddamento 8: Processore 0 di 10 Raffreddamento 9: Processore 0 di 10 Raffreddamento 10: Processore 0 di 10 Raffreddamento 11: Processore 0 di 10
Grazie a @Wilf funziona sul mio Ubuntu 17.10 su Lenovo Yoga 720:
upower -i $(upower -e | grep '/battery') | grep --color=never -E "state|to\ full|to\ empty|percentage"
Produzione:
state: fully-charged
percentage: 100%
O solo il valore numerico con questa riga
upower -i $(upower -e | grep '/battery') | grep --color=never -E percentage|xargs|cut -d' ' -f2|sed s/%//
battery
invece di BAT
farlo funzionare. L'ho trovato con upower --enumerate
.
battery
funziona anche su Ubuntu, quindi l'ho cambiato daBAT
Basta digitare il comando
acpi
Per informazioni dettagliate è possibile digitare
acpi -V
Non ho dovuto installare alcun pacchetto prima.
Sistema: Debian 7.2 64 bit
Ecco un articolo su un pacchetto che può controllare la durata della batteria dalla riga di comando.
Fondamentalmente, tutto quello che devi fare è:
sudo apt-get install acpi
acpi -V
Forse puoi provare:
cat /proc/acpi/battery/BAT0/state
cat /proc/acpi/battery/BAT0/info
/proc
per memorizzare le informazioni ACPI è stato scoraggiato e deprecato dal 2.6.24. Ora è dentro /sys/class/power_supply/BAT0
.
Sono un po 'in ritardo alla festa, ma ecco il mio piccolo contributo. Sulla base delle risposte precedenti, ho creato un semplice script batpower:
#!/bin/bash
# Description: Battery charge in percentage
grep POWER_SUPPLY_CAPACITY /sys/class/power_supply/BAT1/uevent
L'output per l'esecuzione di questo (./batpower) sarà qualcosa del genere:
POWER_SUPPLY_CAPACITY=23
NB: il numero della batteria potrebbe essere diverso per te, nel mio caso è BAT1, ma puoi sempre scoprirlo registrando su / sys / class / power_supply o come menzionato da Lekensteyn tramite upower -e
La mia macchina: Ubuntu 13.10, 3.11.0
Sostituisci BAT1 nel codice bash sopra riportato in BAT0 se hai una versione precedente di Ubuntu, ovvero 13.04 o successive.
SCRIPT MIGLIORATO: Dal mio post originale, ho apportato un piccolo miglioramento alla sceneggiatura:
#!/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
Come sempre, presta attenzione agli spazi con bash. Questo è tutto autoesplicativo. Se la batteria è presente, verrà visualizzata, in caso contrario - lo script lo dirà. Ora, vai al tuo file .bashrc e aggiungi $ (batpower) al tuo prompt. Ecco il mio promt:
PS1='[$(batpower)]\n${debian_chroot:+($debian_chroot)}[*\u@Ubuntu*]:\w\$ '
Aggiorna il tuo terminale o apri una nuova scheda o finestra e ora puoi monitorare costantemente la carica della batteria nel terminale! tra cui tty! Possa la sceneggiatura essere lodata!
/sys/class/power_supply/BAT0
e /sys/class/power_supply/BAT1
... Può essere uno dei due. E dovresti usare quel percorso ( /sys/class/power_supply/BAT#
).
Puoi farlo senza installare alcun pacchetto aggiuntivo:
$ 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%
Questo comando è sollevato dalla fonte di byobu . Potrebbe essere un buon candidato per un alias Bash .
/sys/class/power_supply/BAT0/
Eseguire il comando seguente in un terminale per ottenere informazioni dettagliate:
cat /proc/acpi/battery/BAT0/info
Se vuoi solo lo stato fai:
cat /proc/acpi/battery/BAT0/state
Installa acpi, quindi usa watch
per monitorare continuamente la riga di comando.
Per esempio
watch --interval=5 acpi -V
mostrerà le informazioni come di seguito e si aggiornerà ogni 5 secondi.
Batteria 0: piena, 100%, informazioni sulla velocità non disponibili
Batteria 0: capacità di progettazione 6000 mAh, ultima capacità completa 3424 mAh = 57%
La domanda è: perché qualcuno dovrebbe farlo? Bene, ho un laptop con schermo LCD rotto che sto usando come scatola bittorrent.
Stavo per suggerire, acpi
ma dopo aver letto non funziona nell'11.10, ho avuto un'idea.
Si prega di digitare questo nel terminale:
ls /proc/acpi/battery/BAT0
oBAT1
Se ottieni un "file o una directory non trovata", questo non funzionerà.
Ma, se elenca i file, ecco uno script [incollalo in / usr / games / o altra directory in $ PATH, ed esegui sudo chmod +x /usr/games/batterypercent
, o come lo chiami] che ho appena scritto per te che ti darà una stima della percentuale della batteria [Vedi sotto]:
(Nota, se non è già installato, installare il programma calc
dal 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)%
Ho testato questo script sul mio laptop. Dico la stima sopra perché acpi
mostra il 93% della batteria e il mio script mostra il 90% della batteria, quindi prova questo script con la percentuale della batteria della tua GUI e vedi com'è fuori. Nel mio caso, sembra essere costantemente inferiore del 3% rispetto alla percentuale di acpi. In tal caso, puoi aggiungere questa riga subito prima dell'ultima riga:, percent=$((percent + 3))
dove "3" è la percentuale da cui è bassa.
** Nel mio Lenovo, la batteria è elencata come BAT1, prova anche questo. (12.04 LTS)
acpi
non funziona, perché suppongo che l'11.10 non supporti anche le funzioni ACPI del tuo laptop [batteria, ecc.]. Penso di aver sperimentato qualcosa del genere durante l'aggiornamento in passato. Sono comunque l'11.04. Mi dispiace che non abbia funzionato per te :(
ls /proc/acpi/
? Grazie
Script simile senza calc o 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"
Ecco cosa uso. Osserva solo la differenza tra addebito completo e addebito corrente, oltre a vedere se l'addebito sta diminuendo, nel qual caso utilizza la notifica per avvisare l'utente.
#!/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
Questo non aiuterà tutti, ma mi ha aiutato: utilizzo byobu ogni volta che utilizzo un terminale e la batteria è una delle opzioni per la barra delle notifiche di stato.
Puoi digitare:
$ 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"