Vraag Hoe de batterijstatus controleren met behulp van de terminal?


Ik wil graag een opdracht die de batterijstatus via de terminal controleert


269
2017-10-20 01:24


oorsprong


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


antwoorden:


Het onderstaande commando geeft veel status en statistische informatie over de batterij. De /org/... pad kan gevonden worden met het commando upower -e (--enumerate).

upower -i /org/freedesktop/UPower/devices/battery_BAT0

Voorbeelduitvoer:

  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

Je zou tools zoals grep kunnen gebruiken om precies die informatie te krijgen die je wilt van al die uitvoer.

Een eenvoudige manier: het bovenstaande commando doorgeven

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

uitgangen:

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

Als u vaak dat commando wilt uitvoeren, kunt u een Bash-alias maken voor het hele commando. Voorbeeld:

alias bat='upower -i /org/freedesktop/UPower/devices/battery_BAT0| grep -E "state|to\ full|percentage"'

Voeg dat toe aan het einde van je .bashrc-bestand, en je kunt altijd 'bat' typen in de terminal.

Er is ook een upower -d (--dump) opdracht die informatie toont voor alle beschikbare stroombronnen, zoals laptopbatterijen, externe muizen, enz.


281
2018-02-09 17:42



upower --enumerate kan handig zijn als u niet zeker weet hoe u het moet gebruiken upower. - landroni
@landroni En de steno-optie is upower -e, die opdracht geeft de beschikbare paden voor upower -i .... Als je lui bent en gewoon een lijst met alle apparaten wilt, gebruik je upower -d (upower --dump). - Lekensteyn
Inderdaad. Ik denk dat dit een nuttige aanvulling zou zijn op het antwoord zelf, zoals toen ik het voor het eerst probeerde te gebruiken upower Ik was meteen verdwaald. - landroni
@landroni Goed punt, ik heb het antwoord bijgewerkt. Je kunt het gratis bewerken als je meer gerelateerde toevoegingen hebt. - Lekensteyn
Een andere one-liner zou kunnen zijn upower -i $(upower -e | grep BAT) | grep --color=never -E "state|to\ full|to\ empty|percentage" - Wilf


Een vriendelijke herinnering: sinds Linux-kernel 2.6.24 gebruik makend van /proc om ACPI-info op te slaan is geweest ontmoedigd en verouderd.

Nu worden we aangemoedigd om -> te gebruiken /sys/class/power_supply/BAT0.

UPDATE: Linux 3.19 en verder moeten we de volgende directory bekijken -> /sys/class/power_supply/BAT1/

Bijvoorbeeld capaciteit -> cat /sys/class/power_supply/BAT1/capacity status -> cat /sys/class/power_supply/BAT1/status


99
2018-06-17 08:35



In het bijzonder, /sys/class/power_supply/BAT0/capacity lijkt het huidige kostenpercentage te tonen. - thomasa88
Verouderd… werkt het nog steeds? - neverMind9


Eerste installatie acpi door dit commando uit te voeren,

sudo apt-get install acpi

Voer dan uit:

acpi

Voorbeelduitvoer:

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

Of voor een meer uitgebreide uitvoer die voortdurend wordt bijgewerkt:

watch --interval=5 acpi -V

Output:

Elke 5.0s: acpi -V Wed 8 januari 15:45:35 2014

Batterij 0: volledig, 100%
Adapter 0: online
Thermisch 0: ok, 44.0 graden C
Thermische 0: uitschakelpunt 0 schakelt naar modus kritisch op temperatuur 127,0 graden Celsius
Thermisch 0: uitschakelpunt 1 schakelt over naar de modus warm op temperatuur 127,0 graden Celsius
Koeling 0: intel_powerclamp Geen statusinformatie beschikbaar
Koeling 1: pkg-temp-0 geen toestandsinformatie beschikbaar
Koeling 2: LCD 100 van 100
Koeling 3: LCD 100 van 100
Koeling 4: Processor 0 van 10
Koeling 5: Processor 0 van 10
Koeling 6: Processor 0 van 10
Koeling 7: Processor 0 van 10
Koeling 8: Processor 0 van 10
Koeling 9: Processor 0 van 10
Koeling 10: processor 0 van 10
Koeling 11: Processor 0 van 10

59
2017-11-24 20:20





Dankzij @Wilf werkt dit op mijn Ubuntu 17.10 op 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%

Of alleen de numerieke waarde met deze voering

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

26
2017-07-02 08:56



Op Fedora 23 Ik moest grep voor battery in plaats van BAT om het te laten werken. Ik vond dat met upower --enumerate. - erik
grep voor battery werkt ook in Ubuntu, dus ik heb het veranderd van BAT - rubo77


Het is genoeg om het commando te typen

acpi

Voor gedetailleerde informatie kunt u typen

acpi -V

Ik hoefde geen pakketten eerder te installeren.

Systeem: Debian 7,2 64-bits


23
2017-07-26 14:36





Misschien kun je het proberen:

cat /proc/acpi/battery/BAT0/state

cat /proc/acpi/battery/BAT0/info


15
2017-10-20 05:36



gebruik makend van /proc het opslaan van ACPI-info is ontmoedigd en verouderd sinds 2.6.24. Nu zit het erin /sys/class/power_supply/BAT0. - Terry Wang


Hier is een artikel over een pakket dat uw batterijduur op de opdrachtregel kan controleren.

Kort gezegd, alles wat je hoeft te doen is:

sudo apt-get install acpi
acpi -V

15
2018-06-10 04:57





Ik ben een beetje laat voor het feest, maar hier is mijn kleine bijdrage. Op basis van de vorige antwoorden, heb ik een eenvoudig script batpower gemaakt:

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

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

De uitvoer voor het uitvoeren van deze (./batpower) is zoiets als dit:

POWER_SUPPLY_CAPACITY=23

N.B. : het batery-nummer kan voor jou anders zijn, in mijn geval is het BAT1, maar je kunt het altijd achterhalen door cd'ing naar / sys / class / power_supply of zoals Lekensteyn vermeldde via upower -e

Mijn machine: Ubuntu 13.10, 3.11.0

Vervangen BAT1 in de bovenstaande bash-code in BAT0 als je de oudere versie Ubuntu hebt, d.w.z. 13.04 of later.

VERBETERDE SCRIPT: Sinds mijn oorspronkelijke bericht heb ik een kleine verbetering in het script aangebracht:

#!/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 

Let zoals altijd op spaties met bash. Dit is alles voor zichzelf. Als de batterij aanwezig is, wordt deze weergegeven, zo niet - het script zal dit aangeven. Ga nu naar je .bashrc-bestand en voeg $ (batpower) toe aan je prompt. Hier is mijn promt:

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

Werk uw terminal bij of open een nieuw tabblad of venster en nu kunt u de batterijlading voortdurend in de terminal volgen! inclusief tty! Moge de scripting worden geprezen! enter image description here


11
2017-07-23 03:23



U moet controleren op /sys/class/power_supply/BAT0 en /sys/class/power_supply/BAT1 ... Dat kan het ook zijn. En je zou dat pad moeten gebruiken (/sys/class/power_supply/BAT#). - dylnmc
In mijn Ubuntu 12.04 netbook (nadat ik ben overgeschakeld naar BAT0), lijkt het erop dat ik geen POWER_SUPPLY_CAPACITY-regel krijg. Het lijkt erop dat ik het wel kan berekenen, uit de waarden POWER_SUPPLY_CHARGE_FULL en POWER_SUPPLY_CHARGE_NOW. - mwfearnley