Pilin durumunu terminalden nasıl kontrol edebilirim?


320

Terminaldeki pil durumunu gösteren bir komut istiyorum.


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

Yanıtlar:


335

Aşağıdaki komut, batarya hakkında çok fazla durum ve istatistiksel bilgi verir. /org/...Yol komutuyla bulunabilir upower -e( --enumerate).

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

Örnek çıktı:

  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

Tüm çıktılardan istediğiniz bilgileri almak için grep gibi araçları kullanabilirsiniz.

Tek basit yol: yukarıdaki komutu borulara aktarmak

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

çıktılar:

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

Bu komutu sık sık çalıştırmak isterseniz, komutun tamamı için Bash takma adı kullanabilirsiniz. Örnek:

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

Bunu .bashrc dosyanızın sonuna ekleyin ve terminalde istediğiniz zaman 'yarasa' yazabilirsiniz.

Ayrıca dizüstü bilgisayar pilleri, harici fareler, vb. Gibi mevcut tüm güç kaynakları için bilgileri gösteren bir upower -d( --dump) komutu vardır.


9
upower --enumeratenasıl kullanılacağından emin değilseniz faydalı olabilir upower.
landroni

5
@landroni Kısayol seçeneği upower -e, bu komutun kullanılabilir yollarını listeler upower -i .... Tembelseniz ve sadece tüm cihazların bir listesini görmek istiyorsanız, upower -d( upower --dump) kullanın .
Lekensteyn

1
Aslında. Sanırım bu, ilk kullanmaya çalıştığımda upowerhemen kaybolduğum gibi, cevabın kendisine yararlı bir katkı olacağını düşünüyorum .
landroni

1
@landroni İyi nokta, cevabı güncelledik. Daha fazla ilgili eklemeniz varsa, düzenlemek için çekinmeyin.
Lekensteyn

8
Başka bir liner olabilirupower -i $(upower -e | grep BAT) | grep --color=never -E "state|to\ full|to\ empty|percentage"
Wilf

124

Dostça bir hatırlatma : Linux çekirdeği 2.6.24'ten beri /procACPI bilgisini saklamak için kullanıldığında cesareti kırıldı ve kullanımdan kaldırıldı .

Şimdi kullanmaya teşvik ediyoruz -> /sys/class/power_supply/BAT0.

GÜNCELLEME: Linux 3.19 ve sonrası, aşağıdaki dizine bakmalıyız -> /sys/class/power_supply/BAT1/

Örneğin, Linux 4.20 çalıştıran Arch Linux'ta kapasite ve durum kontrolü

# 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

1
Özellikle, /sys/class/power_supply/BAT0/capacitygeçerli ücret yüzdesini gösteriyor gibi görünüyor.
thomasa88

İtiraz edildi… hala çalışıyor mu?
AslaMind9

3
+1, bu kabul edilebilecek cevap olmalıdır, çünkü yüklenmeyebilecek fazladan yazılıma dayanmaz ve bu soruyu yanıtlaması gerekmez. @ neverMind9: Kastettiğin ne anlama geldiğini bilmiyorum /procama /sys4.20 çekirdeğinde bile benim için mükemmel çalışıyor.
comfreak

1
@comfreak Aslında benim için de çalışıyor.
AslaMind9

1
Bu sadece alıcı cevabı değil aynı zamanda readPHP'ye benzer bir işlevi olan herhangi bir programlama dili kullanılarak veri elde edilebiliyor $capacity = trim(file_get_contents("/sys/class/power_supply/BAT0/capacity"));.
Amin NAIRI

67

İlk önce acpibu komutu çalıştırarak kurun ,

sudo apt-get install acpi

O zaman koş:

acpi

Örnek çıktı:

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

Veya sürekli güncellenen daha ayrıntılı bir çıktı için:

watch --interval=5 acpi -V

Çıktı:

Her 5.0s: acpi -V Çar Jan 8 15:45:35 2014

Batarya 0: Tam,% 100
Adaptör 0: çevrimiçi
Termal 0: tamam, 44.0 derece c
Termal 0: açma noktası 0, 127,0 derece C sıcaklıkta kritik moda geçer
Termal 0: açma noktası 1, 127.0 derece C sıcaklıkta sıcak moda geçer
0 soğutma: intel_powerclamp Durum bilgisi yok
Soğutma 1: pkg-temp-0 durum bilgisi yok
Soğutma 2: LCD 100/100
Soğutma 3: LCD 100/100
Soğutma 4: İşlemci 0/10
Soğutma 5: İşlemci 0/10
Soğutma 6: İşlemci 0/10
Soğutma 7: İşlemci 0/10
Soğutma 8: İşlemci 0/10
Soğutma 9: İşlemci 0/10
Soğutma 10: İşlemci 0/10
Soğutma 11: İşlemci 0/10

29

@Wilf sayesinde bu, Lenovo Yoga 720'deki Ubuntu 17.10'da çalışıyor:

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

Çıktı:

state:               fully-charged
percentage:          100%

Veya bu tek gömlek ile sadece sayısal değer

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

23 Fedora'da çalışmasını sağlamak batteryyerine grep BATyapmak zorunda kaldım . Bunu buldum upower --enumerate.
erik

batteryBen de Ubuntu'da çalışmak için grep , ben de değiştirdimBAT
rubo77

28

Komutu yazmak yeterli

acpi

Detaylı bilgi için yazabilirsiniz

acpi -V

Daha önce hiç paket kurmak zorunda değildim.

Sistem: Debian 7.2 64bit


19

İşte paketteki pil ömrünü komut satırından kontrol edebilecek bir makale.

Temel olarak, yapmanız gereken tek şey:

sudo apt-get install acpi
acpi -V

18

Belki deneyebilirsiniz:

cat /proc/acpi/battery/BAT0/state

cat /proc/acpi/battery/BAT0/info


23
/procACPI bilgisini saklamak için kullanılması , 2.6.24'ten bu yana cesareti kırılmış ve kullanımdan kaldırılmıştır. Şimdi içeride /sys/class/power_supply/BAT0.
Terry Wang,

14

Partiye biraz geç kaldım ama işte benim küçük katkım. Önceki cevaplara dayanarak, basit bir komut dosyası gücü kullandım:

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

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

Bunu (./batpower) yürütme çıktısı şunun gibi olacak:

POWER_SUPPLY_CAPACITY=23

Not: batery numarası sizin için farklı olabilir, benim durumumda BAT1, ancak cd s / sys / class / power_supply ya da Lekensteyn'in upower -e'den bahsettiği gibi

Makinem: Ubuntu 13.10, 3.11.0

Yukarıdaki bash kodundaki BAT1'i , eski sürüm Ubuntu yani 13.04 veya sonraki bir sürümünüz varsa , BAT0 olarak değiştirin .

GELİŞTİRİLMİŞ SCRIPT: İlk gönderimden beri senaryo üzerinde küçük bir gelişme kaydettim:

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

Her zaman olduğu gibi, bash ile boşluklara dikkat edin. Bunların hepsi açıklayıcı. Eğer batarya varsa, ortaya çıkacaktır, değilse - senaryo size söyleyecektir. Şimdi, .bashrc dosyasına gidin ve isteminize $ (batpower) ekleyin. İşte benim madenim:

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

Terminalinizi güncelleyin veya yeni bir sekme veya pencere açın; artık terminaldeki pil şarjını sürekli olarak izleyebilirsiniz! tty dahil! Senaryo övülsün! görüntü tanımını buraya girin


Kontrol etmeniz gerekiyor /sys/class/power_supply/BAT0ve /sys/class/power_supply/BAT1... Ya olabilir. Ve bu yolu kullanmalısınız ( /sys/class/power_supply/BAT#).
dylnmc

Ubuntu 12.04 netbook'umda (BAT0 olarak değiştirdikten sonra), POWER_SUPPLY_CAPACITY hattım yok gibi görünüyor. POWER_SUPPLY_CHARGE_FULL ve POWER_SUPPLY_CHARGE_NOW değerlerinden hesaplayabilirim gibi görünüyor.
mwfearnley

Yükseltildi ama Batman (Akü Yöneticisi) bilinçaltında Batpower'dan daha hoş bir yüzüğü var :) Ciddi bir kayda göre, 2014'te AskUbuntu'da yazmanız ve bugün ne kadar farklı olduğun ilginç.
WinEunuuchs2Unix

@ WinEunuuuchs2Unix Evet, başladığımdan beri biraz değiştim, birkaç yeni numara öğrendim. batman güzel bir yüzüğü olurdu ama muhtemelen telif hakkı vardır;)
Sergiy Kolodyazhnyy

10

Herhangi bir ekstra paket kurmadan yapabilirsiniz.

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

Bu komut byobu kaynağından kaldırıldı . Bash takma adı için iyi bir aday olabilir .


Benden +1! CLI FTW. 2 adet pil değişimine sahipseniz BAT0, BAT1 için :)
Rinzwind

2.6.24'ten beri cesaret kırıcı, kullanmalıyız/sys/class/power_supply/BAT0/
Pablo A

9

Ayrıntılı bilgi almak için bir terminalde aşağıdaki komutu çalıştırın:

cat /proc/acpi/battery/BAT0/info

Sadece devletin yapmasını istiyorsan:

cat /proc/acpi/battery/BAT0/state

Bu cesareti olan diğer özdeş yanıtında.
Pablo A

6

Acpi'yi kurun, ardından watchkomut satırından sürekli izlemek için kullanın .

Örneğin

watch --interval=5 acpi -V

Aşağıdaki gibi bilgileri gösterecek ve her 5 saniyede bir güncellenecektir.

Batarya 0: Tam,% 100, kullanılamaz durum bilgisi
Batarya 0: tasarım kapasitesi 6000 mAh, son tam kapasite 3424 mAh = 57%

Soru, neden birileri bunu yapıyor? Şu an bittorrent kutum olarak kullandığım LCD ekranlı bozuk bir dizüstü bilgisayarım var.


5

Bu benim için ubuntu 14.04'te yaptı.

cat /sys/class/power_supply/BAT0/capacity

4

Bunu önerecektim acpiama okuduktan sonra 11.10'da işe yaramadı, bir fikrim vardı.

Lütfen bunu terminalinize yazın: ls /proc/acpi/battery/BAT0 veyaBAT1

Bir "dosya veya dizin bulunamadı" alırsanız bu işe yaramaz.

Ancak, eğer dosyaları listelerse, işte bu size yaklaşık bir pil yüzdesi verecek olan sadece sizin için yazdığım [/ usr / games / veya başka bir dizine $ PATH dizinine yapıştırın ve çalıştırın sudo chmod +x /usr/games/batterypercentya da ne adlandırırsanız] [Aşağıya bakınız]:

(Zaten yüklü değilse programı yüklemek, Not calcrepo: 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)%

Bu betiği dizüstü bilgisayarımda test ettim. Yukarıda tahmin ediyorum, çünkü acpi% 93 pil gösteriyor, ve senaryom% 90 pil gösteriyor, bu yüzden GUI pil yüzdesine göre bu betiği dene ve bunun ne kadar olduğunu görün. Benim durumumda, acpi'nin oranından sürekli olarak% 3 daha düşük görünüyor. Bu durumda, bu satırı son satırdan hemen önce ekleyebilirsiniz: percent=$((percent + 3))burada "3", düşük olduğu yüzdedir.

** Lenovo'mda pil BAT1 olarak listeleniyor, bunu da dene. (12.04 LTS)


Matt, önerini dene, "Dosya veya dizin yok"
Joe

Argh .. tamam, neredeyse pozitifim bu yüzden acpi işe yaramıyor, çünkü 11.10 dizüstü bilgisayarınızın ACPI işlevlerini de desteklemiyor. Geçmişte yükseltme yaparken böyle bir şey yaşadım galiba. Yine de hala 11.04'üm. Bunun sizin için işe yaramadığı için üzgünüm :(
Matt

Yani, sadece merak ediyorum, çıktısını yapıştırabilir misin ls /proc/acpi/? Thanks
Matt

1

Calc veya apcalc olmadan benzer betik:

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

1

İşte kullandığım şey. Sadece tam şarj ile mevcut şarj arasındaki farkın yanı sıra, şarjın düşüp düşmediğini görmek de kullanıcıyı uyarmak için bildirimde bulunur.

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

1

Bu komutla sadece yüzdeyi ekleyebiliriz.

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

% 65

bu değeri çıkarmanız gerekebilir


0

Bu herkese yardım etmeyecek, fakat benimle - bir terminal kullandığımda byobu kullanıyorum ve batarya durum bildirimi çubuğunun seçeneklerinden biri.


0

Aşağıdakilerden birini yazabilirsiniz:

$ acpi -i
Battery 0: Discharging, 98%, 02:51:14 remaining
Battery 0: design capacity 4400 mAh, last full capacity 3733 mAh = 84%

veya

$ 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

-4
cat /proc/acpi/ac_adapter/AC/state

3
Burada ne hakkında konuştuğunuzdan emin değilim. terminalde çalışan verdicat: /proc/acpi/ac_adapter/AC0/state: No such file or directory
infoquad
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.