Antworten:
Der folgende Befehl gibt einen Chargenstatus und statistische Informationen über die Batterie aus. Den /org/...
Pfad finden Sie mit dem Befehl 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önnen Tools wie grep verwenden, um genau die Informationen zu erhalten, die Sie von all diesen Ausgaben benötigen.
Eine einfache Möglichkeit: Leiten Sie 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 dies am Ende Ihrer .bashrc-Datei hinzu, und Sie können jederzeit im Terminal 'bat' eingeben.
Es gibt auch einen upower -d
( --dump
) -Befehl, der Informationen zu allen verfügbaren Stromquellen wie Laptop-Batterien, externen Mäusen usw. anzeigt.
upower --enumerate
kann nützlich sein, wenn Sie sich nicht sicher sind, wie Sie es verwenden sollen upower
.
upower -e
, dass der Befehl die verfügbaren Pfade für auflistet upower -i ...
. Wenn Sie faul sind und nur eine Liste aller Geräte möchten, verwenden Sie upower -d
( upower --dump
).
upower
mich sofort verlaufen habe , als ich zum ersten Mal versuchte, sie zu verwenden .
upower -i $(upower -e | grep BAT) | grep --color=never -E "state|to\ full|to\ empty|percentage"
Eine freundliche Erinnerung : Da Linux - Kernel 2.6.24 mit /proc
ACPI Informationen zu speichern , wurde entmutigt und veraltet .
Jetzt werden 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/
Zum Beispiel Überprüfen von Kapazität und Status auf Arch Linux unter Linux 4.20 ->
# uname -a
Linux netbook 4.20.1-arch1-1-ARCH #1 SMP PREEMPT Wed Jan 9 20:25:43 UTC 2019 x86_64 GNU/Linux
# cat /sys/class/power_supply/BAT1/capacity
99
# cat /sys/class/power_supply/BAT1/status
Charging
/sys/class/power_supply/BAT0/capacity
scheint der aktuelle Ladungsprozentsatz anzuzeigen.
/proc
ist veraltet, aber es /sys
funktioniert perfekt für mich, auch in Kernel 4.20.
read
Funktion wie in PHP aufweist $capacity = trim(file_get_contents("/sys/class/power_supply/BAT0/capacity"));
, die es supereinfach macht und nicht von externen Abhängigkeiten abhängig ist.
Installieren Sie zuerst, 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 wird:
watch --interval=5 acpi -V
Ausgabe:
Alle 5.0s: acpi -V Mi Jan 8 15:45:35 2014 Batterie 0: voll, 100% Adapter 0: online Thermal 0: ok, 44,0 ° C Thermal 0: Auslösepunkt 0 wechselt bei 127,0 ° C in den kritischen Modus Thermal 0: Auslösepunkt 1 wechselt in den Modus Heiß bei einer Temperatur von 127,0 ° C Kühlung 0: intel_powerclamp Keine Statusinformationen 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
Dank @Wilf funktioniert dies 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/%//
battery
anstatt BAT
es zum Laufen zu bringen. Ich fand das mit upower --enumerate
.
battery
Arbeiten in Ubuntu auch, so habe ich es vonBAT
Es reicht aus, 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
Hier ist ein Artikel über ein Paket, mit dem Sie die Akkulaufzeit in der Befehlszeile überprüfen können.
Grundsätzlich müssen Sie nur Folgendes tun:
sudo apt-get install acpi
acpi -V
Vielleicht können Sie versuchen:
cat /proc/acpi/battery/BAT0/state
cat /proc/acpi/battery/BAT0/info
/proc
Speichern von ACPI-Informationen wird seit 2.6.24 nicht mehr empfohlen. Jetzt ist es in /sys/class/power_supply/BAT0
.
Ich bin ein bisschen 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 dieses Befehls (./batpower) wird ungefähr so aussehen:
POWER_SUPPLY_CAPACITY=23
NB: Die Baterie-Nummer kann für Sie unterschiedlich sein, in meinem Fall ist es BAT1, aber Sie können es immer herausfinden, indem Sie an / sys / class / power_supply oder wie von Lekensteyn durch upower -e erwähnt schreiben
Mein Rechner: Ubuntu 13.10, 3.11.0
Ersetzen Sie BAT1 im obigen Bash-Code durch BAT0, wenn Sie eine ältere Ubuntu-Version haben, z. B. 13.04 oder höher.
VERBESSERTES SCRIPT: Seit meinem ursprünglichen Post habe ich eine kleine Verbesserung am Script 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
Achten Sie wie immer auf Leerzeichen mit Bash. Das ist alles selbsterklärend. Wenn die Batterie vorhanden ist, wird sie angezeigt, wenn nicht - das Skript sagt es Ihnen. Wechseln Sie nun zu Ihrer .bashrc-Datei und fügen Sie Ihrer Eingabeaufforderung $ (batpower) hinzu. Hier ist mein Promt:
PS1='[$(batpower)]\n${debian_chroot:+($debian_chroot)}[*\u@Ubuntu*]:\w\$ '
Aktualisieren Sie Ihr Terminal oder öffnen Sie einen neuen Tab oder ein neues Fenster. Jetzt können Sie die Akkuladung im Terminal ständig überwachen! einschließlich tty! Möge das Drehbuch gelobt werden!
/sys/class/power_supply/BAT0
und /sys/class/power_supply/BAT1
... Es kann entweder sein. Und Sie sollten diesen Pfad verwenden ( /sys/class/power_supply/BAT#
).
Sie können dies 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 von byobus Quelle aufgehoben . Es könnte ein guter Kandidat für einen Bash-Alias sein .
/sys/class/power_supply/BAT0/
Installieren Sie acpi und verwenden Sie dann watch
, um die Befehlszeile kontinuierlich zu überwachen.
Z.B
watch --interval=5 acpi -V
zeigt die folgenden Informationen an und wird alle 5 Sekunden aktualisiert.
Akku 0: voll, 100%, Tarifinformation nicht verfügbar
Akku 0: Auslegungskapazität 6000 mAh, letzte volle Kapazität 3424 mAh = 57%
Die Frage ist, warum jemand dies tun würde? Nun, ich habe einen Laptop mit kaputtem LCD-Bildschirm, den ich jetzt als Bittorrent-Box verwende.
Dies hat den Job für mich in Ubuntu 14.04 gemacht:
cat /sys/class/power_supply/BAT0/capacity
Ich wollte vorschlagen, acpi
aber nachdem ich gelesen hatte, dass es in 11.10 nicht funktioniert, hatte ich eine Idee.
Bitte geben Sie dies in Ihr Terminal ein:
ls /proc/acpi/battery/BAT0
oderBAT1
Wenn Sie eine "Datei oder ein Verzeichnis nicht gefunden" bekommen, funktioniert dies nicht.
Aber wenn es Dateien auflistet, dann ist hier ein Skript [fügen Sie es in / usr / games / oder ein anderes Verzeichnis in $ PATH ein, und führen sudo chmod +x /usr/games/batterypercent
Sie es aus, oder wie auch immer Sie es nennen] , das ich gerade für Sie geschrieben habe und das Ihnen einen geschätzten Prozentsatz der Batterie gibt [Siehe unten]:
(Beachten Sie , wenn nicht bereits installiert ist , installieren Sie das Programm calc
aus dem Repo: sudo apt-get install apcalc
)
#!/bin/bash
math() { calc -d "$@"|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)%
Ich habe dieses Skript auf meinem Laptop getestet. Ich sage Schätzung oben, weil acpi
93% der Batterie angezeigt werden und mein Skript 90% der Batterie anzeigt. Versuchen Sie also, dieses Skript anhand Ihres GUI-Batterieprozentsatzes zu testen und festzustellen, wie schwach die Batterie ist. In meinem Fall scheint es durchweg 3% niedriger als der Prozentsatz von acpi zu sein. In diesem Fall können Sie diese Zeile direkt vor der letzten Zeile einfügen: percent=$((percent + 3))
wobei "3" der Prozentsatz ist, um den sie niedrig ist.
** In meinem Lenovo ist der Akku als BAT1 aufgeführt, versuchen Sie das auch. (12.04 LTS)
acpi
es nicht funktioniert, da 11.10 vermutlich auch nicht die ACPI-Funktionen Ihres Laptops unterstützt [Akku usw.]. Ich glaube, ich habe so etwas in der Vergangenheit beim Upgrade erlebt. Ich bin aber immer noch am 11.04. Entschuldigung, dass dies nicht funktioniert hat :(
ls /proc/acpi/
? Vielen Dank
Ähnliches Skript ohne calc oder 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"
Hier ist was ich benutze. Es wird lediglich der Unterschied zwischen voller Ladung und aktueller Ladung untersucht und es wird geprüft, ob die Ladung sinkt. In diesem Fall wird eine Benachrichtigung verwendet, um den Benutzer zu benachrichtigen.
#!/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
Sie können entweder Folgendes eingeben:
$ acpi -i
Battery 0: Discharging, 98%, 02:51:14 remaining
Battery 0: design capacity 4400 mAh, last full capacity 3733 mAh = 84%
oder
$ upower -i $(upower -e | grep BAT)
native-path: BAT0
model: PA5109U-1BRS
serial: FA80
power supply: yes
updated: lun. 07 janv. 2019 03:54:18 CET (24 seconds ago)
has history: yes
has statistics: yes
battery
present: yes
rechargeable: yes
state: discharging
energy: 39,521 Wh
energy-empty: 0 Wh
energy-full: 40,328 Wh
energy-full-design: 47,52 Wh
energy-rate: 13,856 W
voltage: 10,8 V
time to empty: 2,9 hours
percentage: 98%
capacity: 84,8632%
technology: lithium-ion
History (charge):
1546829628 98,000 discharging
1546829593 99,000 discharging
History (rate):
1546829658 13,856 discharging
1546829628 14,752 discharging
1546829597 4,806 discharging
1546829594 2,678 discharging
cat /proc/acpi/ac_adapter/AC/state
cat: /proc/acpi/ac_adapter/AC0/state: No such file or directory
$ upower -i $(upower -e | grep 'BAT') | grep -E "state|to\ full|percentage"