Frage Wie kann ich den Batteriestatus über das Terminal prüfen?


Ich möchte einen Befehl, der den Batteriestatus über das Terminal überprüft


268
2017-10-20 01:24


Ursprung


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


Antworten:


Der folgende Befehl gibt eine Menge Status und statistische Informationen über die Batterie aus. Das /org/... Pfad kann mit dem Befehl gefunden werden upower -e (--enumerate).

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

Beispielausgabe:

  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

Sie könnten Tools wie grep verwenden, um nur die Informationen zu erhalten, die Sie für die Ausgabe benötigen.

Ein einfacher Weg: den obigen Befehl in

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

Ausgänge:

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

Wenn Sie diesen Befehl häufig ausführen möchten, können Sie einen Bash-Alias ​​für den gesamten Befehl erstellen. Beispiel:

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

Fügen Sie das am Ende Ihrer .bashrc-Datei hinzu, und Sie können "bat" jederzeit im Terminal eingeben.

Da ist auch ein upower -d (--dump) Befehl, der Informationen für alle verfügbaren Energiequellen wie Laptopbatterien, externe Mäuse usw. anzeigt.


280
2018-02-09 17:42



upower --enumerate kann nützlich sein, wenn Sie nicht sicher sind, wie Sie es verwenden upower. - landroni
@landroni Und die Kurzschreibweise ist upower -e, dieser Befehl listet die verfügbaren Pfade für upower -i .... Wenn Sie faul sind und nur eine Liste aller Geräte möchten, verwenden Sie upower -d (upower --dump). - Lekensteyn
Tatsächlich. Ich denke, das wäre eine nützliche Ergänzung zur Antwort selbst, als ich es zum ersten Mal benutzte upower Ich habe mich sofort verlaufen. - landroni
@landroni Guter Punkt, ich habe die Antwort aktualisiert. Fühlen Sie sich frei, es zu bearbeiten, wenn Sie mehr verwandte Zusätze haben. - Lekensteyn
Ein weiterer One-Liner könnte sein upower -i $(upower -e | grep BAT) | grep --color=never -E "state|to\ full|to\ empty|percentage" - Wilf


Eine freundliche Erinnerung: seit Linux-Kernel 2.6.24 verwenden /proc ACPI-Informationen zu speichern war entmutigt und veraltet.

Jetzt sind wir ermutigt zu verwenden -> /sys/class/power_supply/BAT0.

UPDATE: Ab Linux 3.19 sollten wir uns das folgende Verzeichnis ansehen -> /sys/class/power_supply/BAT1/

Beispielsweise Kapazität -> cat /sys/class/power_supply/BAT1/capacity Status -> cat /sys/class/power_supply/BAT1/status


99
2018-06-17 08:35



Speziell, /sys/class/power_supply/BAT0/capacity scheint den aktuellen Gebührenanteil zu zeigen. - thomasa88
Veraltet ... Funktioniert es noch? - neverMind9


Erste Installation acpi indem Sie diesen Befehl ausführen,

sudo apt-get install acpi

Dann renne:

acpi

Beispielausgabe:

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

Oder für eine ausführlichere Ausgabe, die ständig aktualisiert:

watch --interval=5 acpi -V

Ausgabe:

Alle 5.0s: acpi -V Wed Jan 8 15:45:35 2014

Batterie 0: Voll, 100%
Adapter 0: online
Thermal 0: ok, 44,0 ° C
Thermal 0: Auslösepunkt 0 schaltet bei Temperatur 127,0 ° C in den Modus kritisch
Thermal 0: Der Auslösepunkt 1 wechselt bei einer Temperatur von 127,0 ° C in den Modus "Heiß"
Kühlung 0: intel_powerclamp keine Zustandsinformationen verfügbar
Kühlung 1: pkg-temp-0 keine Statusinformationen verfügbar
Kühlung 2: LCD 100 von 100
Kühlung 3: LCD 100 von 100
Kühlung 4: Prozessor 0 von 10
Kühlung 5: Prozessor 0 von 10
Kühlung 6: Prozessor 0 von 10
Kühlung 7: Prozessor 0 von 10
Kühlung 8: Prozessor 0 von 10
Kühlung 9: Prozessor 0 von 10
Kühlung 10: Prozessor 0 von 10
Kühlung 11: Prozessor 0 von 10

59
2017-11-24 20:20





Dank @Wilf funktioniert das auf meinem Ubuntu 17.10 auf Lenovo Yoga 720:

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

Ausgabe:

state:               fully-charged
percentage:          100%

Oder nur der Zahlenwert mit diesem einen Liner

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

26
2017-07-02 08:56



Auf Fedora 23 Ich musste grepsen battery Anstatt von BAT damit es funktioniert. Ich habe das mit gefunden upower --enumerate. - erik
grep für battery funktioniert auch in Ubuntu, also änderte ich es von BAT - rubo77


Es genügt, den Befehl einzugeben

acpi

Für detaillierte Informationen können Sie eingeben

acpi -V

Ich musste vorher keine Pakete installieren.

System: Debian 7.2 64bit


23
2017-07-26 14:36





Vielleicht können Sie versuchen:

cat /proc/acpi/battery/BAT0/state

cat /proc/acpi/battery/BAT0/info


15
2017-10-20 05:36



verwenden /proc zum Speichern von ACPI-Informationen wurde seit 2.6.24 abgeraten und nicht weiter unterstützt. Jetzt ist es drin /sys/class/power_supply/BAT0. - Terry Wang


Hier ist ein Artikel zu einem Paket, mit dem Sie die Akkulaufzeit in der Befehlszeile überprüfen können.

Im Grunde müssen Sie nur Folgendes tun:

sudo apt-get install acpi
acpi -V

15
2018-06-10 04:57





Ich bin ein wenig zu spät zur Party, aber hier ist mein kleiner Beitrag. Basierend auf den vorherigen Antworten habe ich ein einfaches Skript batpower gemacht:

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

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

Die Ausgabe für die Ausführung dieser (./batpower) wird in etwa so aussehen:

POWER_SUPPLY_CAPACITY=23

N.B. : Die Batery-Nummer kann für dich anders sein, in meinem Fall ist es BAT1, aber du kannst es immer herausfinden, indem du nach / sys / class / power_supply oder wie Lekensteyn durch upower -e erwähnt hast

Meine Maschine: Ubuntu 13.10, 3.11.0

Ersetzen BAT1 im obigen Bash-Code zu BAT0 wenn Sie eine ältere Version von Ubuntu haben, d. h. 13.04 oder später.

VERBESSERTES SCRIPT: Seit meinem ursprünglichen Beitrag habe ich eine kleine Verbesserung des Skripts vorgenommen:

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

Wie immer, achten Sie auf Leerzeichen mit Bash. Das ist alles selbsterklärend. Wenn Batterie vorhanden ist, wird es angezeigt, wenn nicht - das Skript wird es Ihnen sagen. Gehen Sie nun zu Ihrer .bashrc-Datei und fügen Sie Ihrer Aufforderung $ (batpower) hinzu. Hier ist mein Vorschlag:

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

Aktualisieren Sie Ihr Terminal oder öffnen Sie eine neue Registerkarte oder ein neues Fenster, und jetzt können Sie die Akkuladung ständig im Terminal überwachen! einschließlich tty! Möge das Scripting gelobt werden! enter image description here


11
2017-07-23 03:23



Sie müssen nachsehen /sys/class/power_supply/BAT0 und /sys/class/power_supply/BAT1 ... Es kann beides sein. Und du solltest diesen Pfad benutzen (/sys/class/power_supply/BAT#). - dylnmc
In meinem Ubuntu 12.04 Netbook (nachdem ich zu BAT0 gewechselt habe), scheint ich keine POWER_SUPPLY_CAPACITY-Leitung zu bekommen. Es sieht so aus, als könnte ich es aus den Werten POWER_SUPPLY_CHARGE_FULL und POWER_SUPPLY_CHARGE_NOW berechnen. - mwfearnley


Führen Sie den folgenden Befehl in einem Terminal aus, um detaillierte Informationen zu erhalten:

cat /proc/acpi/battery/BAT0/info

Wenn Sie nur wollen, dass der Staat tut:

cat /proc/acpi/battery/BAT0/state

9
2018-04-19 12:20



Ja, es hat funktioniert :) Danke! - infoquad


Sie können es tun, ohne zusätzliche Pakete zu installieren:

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

Dieser Befehl wird aufgehoben byobus Quelle. Es könnte ein guter Kandidat für eine sein Bash Alias.


9
2018-06-10 05:35



+1 von mir! CLI FTW. Wenn Sie 2 Batteriewechsel BAT0 für BAT1 haben :) - Rinzwind


Installieren Sie acpi, dann verwenden Sie watch kontinuierlich durch Befehlszeile überwachen.

Z.B.

watch --interval=5 acpi -V

zeigt die Informationen wie unten an und wird alle 5 Sekunden aktualisiert.

Batterie 0: Voll, 100%, keine Preisinformationen verfügbar
  Batterie 0: Auslegungskapazität 6000 mAh, letzte volle Kapazität 3424 mAh = 57%

Frage ist warum würde jemand das tun? Nun, ich habe einen Laptop mit defektem LCD-Bildschirm, den ich jetzt als meine Bittorrent-Box benutze.


5
2017-08-30 20:33