Domanda Come controllare lo stato della batteria usando il terminale?


Vorrei un comando che controlli lo stato della batteria attraverso il terminale


268
2017-10-20 01:24


origine


$ upower -i $(upower -e | grep 'BAT') | grep -E "state|to\ full|percentage" - Jake Berger


risposte:


Il comando di sotto emette molto status e informazioni statistiche sulla batteria. Il /org/... il 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

Potresti usare strumenti come grep per ottenere solo le informazioni che desideri da tutto questo output.

Un modo semplice: convogliare il comando sopra in

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

uscite:

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

Se si desidera eseguire spesso tale comando, è possibile creare un alias di 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 upower -d (--dumpcomando che mostra informazioni per tutte le risorse di alimentazione disponibili come batterie per laptop, mouse esterni, ecc.


280
2018-02-09 17:42



upower --enumerate può essere utile se non sei sicuro di come usarlo upower. - landroni
@landroni E l'opzione stenografia è upower -e, quel comando elenca i percorsi disponibili per upower -i .... Se sei pigro e vuoi solo un elenco di tutti i dispositivi, usa upower -d (upower --dump). - Lekensteyn
Infatti. Penso che questa sarebbe un'aggiunta utile alla risposta stessa, come quando ho provato a usare per la prima volta upower Mi sono subito perso. - landroni
@landroni Bene, ho aggiornato la risposta. Sentiti libero di modificarlo se hai altre aggiunte correlate. - Lekensteyn
Un altro liner potrebbe essere upower -i $(upower -e | grep BAT) | grep --color=never -E "state|to\ full|to\ empty|percentage" - Wilf


Un promemoria amichevole: dal momento che il kernel di Linux 2.6.24 utilizzando /proc è stato archiviato informazioni ACPI sfiduciato e deprecato.

Ora siamo incoraggiati ad usare -> /sys/class/power_supply/BAT0.

AGGIORNAMENTO: da Linux 3.19 in poi, dovremmo esaminare la seguente directory -> /sys/class/power_supply/BAT1/

Per esempio capacità -> cat /sys/class/power_supply/BAT1/capacity stato -> cat /sys/class/power_supply/BAT1/status


99
2018-06-17 08:35



In particolare, /sys/class/power_supply/BAT0/capacity sembra mostrare la percentuale di carica attuale. - thomasa88
Deprecato ... funziona ancora? - neverMind9


Prima installazione acpi eseguendo questo comando,

sudo apt-get install acpi

Quindi esegui:

acpi

Uscita di esempio:

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.0s: acpi -V Wed 8 gennaio 15:45:35 2014

Batteria 0: piena, 100%
Adattatore 0: on-line
0 termico: ok, 44,0 gradi C
Termico 0: il punto di scatto 0 passa in modalità critica a temperatura 127,0 gradi C
Termico 0: il punto di scatto 1 passa in modalità caldo a temperatura 127,0 gradi C
Raffreddamento 0: intel_powerclamp nessuna informazione di stato disponibile
Raffreddamento 1: pkg-temp-0 nessuna informazione di 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

59
2017-11-24 20:20





Grazie a @Wilf questo funziona su 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 fodera

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

26
2017-07-02 08:56



Sopra Fedora 23 Ho dovuto per grep battery invece di BAT per farlo funzionare. L'ho trovato con upower --enumerate. - erik
grep for battery funziona anche in Ubuntu, quindi l'ho cambiato da BAT - rubo77


Basta digitare il comando

acpi

Per informazioni dettagliate puoi digitare

acpi -V

Non ho dovuto installare alcun pacchetto prima.

Sistema: Debian 7.2 a 64 bit


23
2017-07-26 14:36





Forse puoi provare:

cat /proc/acpi/battery/BAT0/state

cat /proc/acpi/battery/BAT0/info


15
2017-10-20 05:36



utilizzando /proc per memorizzare informazioni ACPI è stato scoraggiato e deprecato dal 2.6.24. Ora è dentro /sys/class/power_supply/BAT0. - Terry Wang


Qui è un articolo su un pacchetto che può controllare la durata della batteria sulla riga di comando.

Fondamentalmente, tutto ciò che devi fare è:

sudo apt-get install acpi
acpi -V

15
2018-06-10 04:57





Sono un po 'in ritardo per la festa, ma ecco il mio piccolo contributo. In base alle risposte precedenti, ho creato un semplice batpower di script:

#!/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 di simile a questo:

POWER_SUPPLY_CAPACITY=23

N.B. : il numero di batery potrebbe essere diverso per te, nel mio caso è BAT1, ma puoi sempre trovarlo da cd'ing a / sys / class / power_supply o come Lekensteyn ha menzionato tramite upower -e

La mia macchina: Ubuntu 13.10, 3.11.0

Sostituire BAT1 nel codice di bash sopra a BAT0 se hai una versione precedente di Ubuntu, 13.04 o successiva.

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, fai attenzione agli spazi con bash. Questo è tutto auto esplicativo. Se la batteria è presente, verrà visualizzata, in caso contrario, lo script te 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! incluso tty! Che lo scripting sia lodato! enter image description here


11
2017-07-23 03:23



È necessario verificare /sys/class/power_supply/BAT0 e /sys/class/power_supply/BAT1 ... Può essere o. E dovresti usare quel percorso (/sys/class/power_supply/BAT#). - dylnmc
Nel mio netbook di Ubuntu 12.04 (dopo aver cambiato in BAT0), non sembra che ottenga una linea POWER_SUPPLY_CAPACITY. Sembra che potrei calcolarlo, dai valori POWER_SUPPLY_CHARGE_FULL e POWER_SUPPLY_CHARGE_NOW. - mwfearnley


Esegui il seguente comando in un terminale per ottenere informazioni dettagliate:

cat /proc/acpi/battery/BAT0/info

Se vuoi solo che lo stato faccia:

cat /proc/acpi/battery/BAT0/state

9
2018-04-19 12:20



Sì, ha funzionato :) Grazie! - infoquad