Come controllare lo stato della batteria usando il terminale?

281

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

    
posta Joe 20.10.2011 - 03:24

18 risposte

295

Il comando di sotto emette molto status e informazioni statistiche sulla batteria. Il percorso /org/... 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 quell'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 ti piacerebbe spesso eseguire quel comando, potresti 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"'

Aggiungi questo 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 di alimentazione disponibili come batterie per laptop, mouse esterni, ecc.

    
risposta data Lekensteyn 09.02.2012 - 18:42
106

Un promemoria amichevole : dal momento che il kernel Linux 2.6.24 utilizzando /proc per archiviare informazioni ACPI è stato scoraggiato e deprecato .

Ora siamo incoraggiati a usare - & gt; % Co_de%.

AGGIORNAMENTO: da Linux 3.19 in poi, dovremmo esaminare la seguente directory - & gt; % Co_de%

Ad esempio capacità - & gt; %codice% stato - & gt; % Co_de%

    
risposta data Terry Wang 17.06.2013 - 10:35
60

Installa prima acpi eseguendo questo comando,

sudo apt-get install acpi

Quindi esegui:

acpi

Esempio di output:

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

O per un output più dettagliato che aggiorna costantemente:

watch --interval=5 acpi -V

Output:

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
    
risposta data Suhaib 24.11.2012 - 21:20
27

Grazie a @Wilf questo funziona sulla mia Ubuntu 17.10 su Lenovo Yoga 720:

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

Output:

state:               fully-charged
percentage:          100%

O solo il valore numerico con questo unico elemento

upower -i $(upower -e | grep '/battery') | grep --color=never -E percentage|xargs|cut -d' ' -f2|sed s/%//
    
risposta data rubo77 02.07.2014 - 10:56
24

È sufficiente digitare il comando

% Bl0ck_qu0te%

Per informazioni dettagliate puoi digitare

% Bl0ck_qu0te%

Non ho dovuto installare alcun pacchetto prima.

Sistema: Debian 7.2 a 64 bit

    
risposta data user309404 26.07.2014 - 16:36
16

Forse puoi provare:

cat /proc/acpi/battery/BAT0/state

cat /proc/acpi/battery/BAT0/info

    
risposta data Mariano L 20.10.2011 - 07:36
16

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

Fondamentalmente, tutto ciò che devi fare è:

sudo apt-get install acpi
acpi -V
    
risposta data josh-fuggle 10.06.2011 - 06:57
12

Sono un po 'in ritardo per la festa ma ecco il mio piccolo contributo. In base alle 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 di simile a questo:

POWER_SUPPLY_CAPACITY=23

NB. : 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

Sostituisci BAT1 nel codice di bash riportato sopra a BAT0 se hai una versione precedente di Ubuntu, ad esempio la 13.04 o successiva.

SCRIPT MIGLIORATO: Dal mio post originale, ho apportato un piccolo miglioramento allo 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 

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)}[*\[email protected]*]:\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!

    
risposta data Sergiy Kolodyazhnyy 23.07.2014 - 05:23
9

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
    
risposta data MEM 19.04.2011 - 14:20
9

Puoi farlo senza installare pacchetti aggiuntivi:

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

Questo comando viene rimosso dalla fonte di byobu . Potrebbe essere un buon candidato per un alias Bash .

    
risposta data ændrük 10.06.2011 - 07:35
5

Installa acpi, quindi usa watch per monitorare continuamente attraverso la riga di comando.

per es.

watch --interval=5 acpi -V

mostrerà le informazioni come sotto e si aggiornerà ogni 5 secondi.

% Bl0ck_qu0te%

La domanda è: perché qualcuno dovrebbe farlo? Bene, ho un portatile con schermo LCD rotto che sto usando come contenitore bittorrent.

    
risposta data iceburn 30.08.2011 - 22:33
5

Questo ha funzionato per me in Ubuntu 14.04:

cat /sys/class/power_supply/BAT0/capacity
    
risposta data the_saint 23.11.2014 - 14:29
4

Stavo per suggerire acpi ma dopo aver letto che non funziona in 11.10, ho avuto un'idea.

Per favore scrivi questo nel tuo terminale: ls /proc/acpi/battery/BAT0 o BAT1

Se si ottiene un "file o una directory non trovata", questo non funzionerà.

Ma, se elenca i file, ecco uno script [incollalo in / usr / games / o in un'altra directory in $ PATH ed esegui sudo chmod +x /usr/games/batterypercent , o come lo chiami tu che Ho appena scritto per te che ti darò una stima della percentuale della batteria [Vedi sotto]:

(Nota, se non è già installato, installa il programma calc dal repository: 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 $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 stima sopra perché acpi mostra il 93% della batteria, e il mio script mostra il 90% della batteria, quindi prova questo script contro la percentuale della batteria GUI e vedi come è spento. Nel mio caso, sembra essere costantemente inferiore del 3% rispetto alla percentuale di acpi. In tal caso, puoi aggiungere questa linea proprio prima dell'ultima riga: percent=$((percent + 3)) , dove "3" è la percentuale in cui è inferiore.

** Nel mio lenovo, la batteria è elencata come BAT1, provalo anche tu. (12.04 LTS)

    
risposta data Matt 20.10.2011 - 04:42
1

Ecco cosa uso. Guarda solo la differenza tra carica completa e carica corrente, oltre a vedere se la carica è in calo, nel qual caso utilizza 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
    
risposta data Mark Simmons 28.02.2016 - 13:47
1

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"
    
risposta data xerostomus 15.11.2014 - 19:24
0

Questo non aiuterà nessuno, ma mi ha fatto - io uso byobu ogni volta che sto usando un terminale, e la batteria è una delle opzioni per la barra delle notifiche di stato.

    
risposta data sheepeatingtaz 07.01.2016 - 09:41
0

Possiamo echo solo la percentuale con quel comando

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

65%

nel caso in cui sia necessario estrarre quel valore

    
risposta data intika 25.03.2018 - 13:56
-2
cat /proc/acpi/ac_adapter/AC/state
    
risposta data Todd Harris 19.04.2011 - 14:03
-2

Funziona:

cat /proc/acpi/ac_adapter/AC0/state
    
risposta data xerostomus 15.11.2014 - 18:35

Leggi altre domande sui tag