Wie kann ich den Batteriezustand mit dem Terminal überprüfen?

276

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

    
Joe 20.10.2011, 03:24

18 Antworten

290

Mit dem folgenden Befehl werden viel Status und statistische Informationen zur Batterie angezeigt. Der Pfad /org/... kann mit dem Befehl upower -e ( --enumerate ) gefunden werden.

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önnen Tools wie grep verwenden, um aus der gesamten Ausgabe nur die gewünschten Informationen zu erhalten.

Eine einfache Möglichkeit: den obigen Befehl in

weiterleiten
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 für den gesamten Befehl einen Bash-Alias eingeben. Beispiel:

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

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

Es gibt auch einen Befehl upower -d ( --dump ), der Informationen zu allen verfügbaren Stromressourcen wie Laptopbatterien, externe Mäuse usw.

enthält     
Lekensteyn 09.02.2012 18:42
105

Eine freundliche Erinnerung : Seit dem Linux-Kernel 2.6.24 wurde die Verwendung von /proc zum Speichern von ACPI-Informationen nicht empfohlen und nicht mehr empfohlen .

Jetzt können wir - > /sys/class/power_supply/BAT0 .

UPDATE: Linux 3.19 und höher sollten wir uns das folgende Verzeichnis ansehen - > /sys/class/power_supply/BAT1/

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

    
Terry Wang 17.06.2013 10:35
60

Installieren Sie zuerst acpi , indem Sie diesen Befehl ausführen,

sudo apt-get install acpi

Dann führe aus:

acpi

Beispielausgabe:

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

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

watch --interval=5 acpi -V

Ausgabe:

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

Dank @Wilf funktioniert das auf meinem Ubuntu 17.10 unter 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 numerische Wert mit diesem einen Liner

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

Es reicht aus, den Befehl einzugeben

  

acpi

Für detaillierte Informationen können Sie

eingeben
  

acpi -V

Ich musste zuvor keine Pakete installieren.

System: Debian 7.2 64bit

    
user309404 26.07.2014 16:36
16

Vielleicht können Sie folgendes versuchen:

cat /proc/acpi/battery/BAT0/state

cat /proc/acpi/battery/BAT0/info

    
Mariano L 20.10.2011 07:36
16

Hier finden Sie einen Artikel zu einem Paket, mit dem Sie Ihre Daten überprüfen können Akkulaufzeit an der Befehlszeile.

Grundsätzlich müssen Sie nur Folgendes tun:

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

Ich bin etwas spät auf der Party, aber hier ist mein kleiner Beitrag. Basierend auf den vorherigen Antworten habe ich ein einfaches Skript batpower erstellt:

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

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

Die Ausgabe für die Ausführung (./batpower) sieht etwa so aus:

POWER_SUPPLY_CAPACITY=23

NB. : Die Nummer der Batterie kann für Sie anders sein, in meinem Fall ist es BAT1, aber Sie können es immer herausfinden, indem Sie nach / sys / class / power_supply oder wie von Lekensteyn erwähnt durch upower -e

cd'ing

Mein Computer: Ubuntu 13.10, 3.11.0

Ersetzen Sie BAT1 im obigen Bash-Code in BAT0 , wenn Sie eine ältere Ubuntu-Version haben, d. h. 13.04 oder höher.

VERBESSERTES SCRIPT: Seit meinem ursprünglichen Beitrag habe ich das Skript etwas verbessert:

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

Achten Sie wie immer auf Leerzeichen mit Bash. Das ist alles selbsterklärend. Wenn Batterie vorhanden ist, wird sie angezeigt, falls nicht - das Skript wird Ihnen dies mitteilen. Gehen Sie jetzt zu Ihrer .bashrc-Datei und fügen Sie Ihrer Aufforderung $ (batpower) hinzu. Hier ist mein Promt:

PS1='[$(batpower)]\n${debian_chroot:+($debian_chroot)}[*\[email protected]*]:\w$ ' 

Aktualisieren Sie Ihr Terminal oder öffnen Sie eine neue Registerkarte oder ein neues Fenster. Jetzt können Sie den Ladezustand des Akkus ständig überwachen. einschließlich tty! Möge das Drehbuch gelobt werden!

    
Sergiy Kolodyazhnyy 23.07.2014 05:23
9

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

cat /proc/acpi/battery/BAT0/info

Wenn Sie nur möchten, dass der Status ausgeführt wird:

cat /proc/acpi/battery/BAT0/state
    
MEM 19.04.2011 14:20
9

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

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

Dieser Befehl wird von der Quelle von byobu aufgehoben. Dies könnte ein guter Kandidat für einen Bash-Alias sein.

    
ændrük 10.06.2011 07:35
5

Installieren Sie acpi, und verwenden Sie watch , um die Befehlszeile kontinuierlich zu überwachen.

z. B.

watch --interval=5 acpi -V

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

  

Batterie 0: Vollständig, 100%, Rateninformationen nicht verfügbar
  Batterie 0: Auslegungskapazität 6000 mAh, letzte volle Kapazität 3424 mAh = 57%

Die Frage ist, warum jemand dies tun sollte. Nun, ich habe einen Laptop mit einem kaputten LCD-Bildschirm, den ich jetzt als Bittorrent-Box verwende.

    
iceburn 30.08.2011 22:33
5

Dies hat mir in Ubuntu 14.04 geholfen:

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

Ich wollte acpi vorschlagen, aber nachdem ich es in 11.10 nicht gelesen habe, hatte ich eine Idee.

Bitte geben Sie dies in Ihr Terminal ein: ls /proc/acpi/battery/BAT0 oder BAT1

Wenn Sie eine "Datei oder ein Verzeichnis nicht gefunden" erhalten, funktioniert dies nicht.

Aber wenn es Dateien auflistet, dann hier ein Skript [fügen Sie es in / usr / games / oder in ein anderes Verzeichnis in $ PATH ein und führen Sie sudo chmod +x /usr/games/batterypercent aus, oder wie auch immer Sie es nennen] Ich habe gerade für Sie geschrieben, dass Sie eine Schätzung des Batterieprozentsatzes erhalten [siehe unten]:

(Hinweis: Falls noch nicht installiert, installieren Sie das Programm calc aus dem Repo: 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 }')
current=$(grep 'remaining capacity:' state|awk '{print }')
percent=$(math "($current / $max) * 100");
echo $(echo $percent|cut -d. -f1)%

Ich habe dieses Skript auf meinem Laptop getestet. Ich sage Schätzung , da acpi 93% Batterie anzeigt und mein Skript 90% Batterie anzeigt. Versuchen Sie dieses Skript mit Ihrem GUI-Batterieprozentsatz und sehen Sie, wie es aus ist. In meinem Fall scheint es konstant 3% niedriger zu sein als der acpi-Prozentsatz. In diesem Fall können Sie diese Zeile direkt vor der letzten Zeile hinzufügen: percent=$((percent + 3)) , wobei "3" der Prozentsatz ist, um den der Wert um.

liegt

** In meinem Lenovo ist der Akku als BAT1 aufgeführt. Versuchen Sie das auch. (12,04 LTS)

    
Matt 20.10.2011 04:42
1

Ähnliches Skript ohne Calc oder Apcalc:

#! /bin/bash
cd /proc/acpi/battery/BAT0;
max=$(grep 'design capacity:' info|awk '{print }')
current=$(grep 'remaining capacity:' state|awk '{print }')
percent=$(expr $current"00" / $max )
echo -e "Current capacity: \t$current"
echo -e "Max capacity:  \t$max"
echo -e "Percent: \t\t$percent"
    
xerostomus 15.11.2014 19:24
1

Hier ist was ich benutze. Es wird nur der Unterschied zwischen der vollen Ladung und der aktuellen Ladung betrachtet und es wird geprüft, ob die Gebühr sinkt. In diesem Fall wird der Benutzer benachrichtigt, um ihn darauf aufmerksam zu machen.

#!/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
    
Mark Simmons 28.02.2016 13:47
0

Das hilft nicht jedem, aber es hat mir geholfen - ich verwende byobu , wenn ich ein Terminal verwende, und Batterie ist eine der Optionen für die Statusbenachrichtigungsleiste.

    
sheepeatingtaz 07.01.2016 09:41
0

Mit diesem Befehl können wir nur den Prozentsatz wiedergeben

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

65%

für den Fall, dass Sie diesen Wert extrahieren müssen

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

Das funktioniert:

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

Tags und Links