Bagaimana cara memeriksa status baterai melalui terminal?


320

Saya ingin perintah yang menampilkan status baterai di terminal.


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

Jawaban:


335

Perintah di bawah ini mengeluarkan banyak status dan informasi statistik tentang baterai. The /org/...path dapat ditemukan dengan perintah upower -e( --enumerate).

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

Contoh output:

  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

Anda dapat menggunakan alat seperti grep untuk mendapatkan informasi yang Anda inginkan dari semua keluaran itu.

Satu cara sederhana: memasukkan perintah di atas ke dalam

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

output:

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

Jika Anda sering ingin menjalankan perintah itu, maka Anda bisa membuat alias Bash untuk seluruh perintah. Contoh:

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

Tambahkan itu ke akhir file .bashrc Anda, dan Anda dapat mengetik 'bat' kapan saja, di terminal.

Ada juga perintah upower -d( --dump) yang menampilkan informasi untuk semua sumber daya yang tersedia seperti baterai laptop, mouse eksternal, dll.


9
upower --enumeratedapat bermanfaat jika Anda tidak yakin cara menggunakannya upower.
— landroni

5
@ Landroni Dan opsi singkat adalah upower -e, perintah itu mencantumkan jalur yang tersedia untuk upower -i .... Jika Anda malas dan hanya ingin daftar semua perangkat, gunakan upower -d( upower --dump).
— Lekensteyn

1
Memang. Saya pikir ini akan menjadi tambahan yang berguna untuk jawaban itu sendiri, karena ketika saya pertama kali mencoba menggunakan upowersaya langsung tersesat.
— landroni

1
@ Landroni Poin bagus, saya telah memperbarui jawabannya. Jangan ragu untuk mengeditnya jika Anda memiliki tambahan terkait lainnya.
— Lekensteyn

8
Satu kalimat lagi bisa jadiupower -i $(upower -e | grep BAT) | grep --color=never -E "state|to\ full|to\ empty|percentage"
— Wilf

124

Pengingat yang ramah : sejak Linux kernel 2.6.24 menggunakan /procuntuk menyimpan informasi ACPI telah putus asa dan usang .

Sekarang kami didorong untuk menggunakan -> /sys/class/power_supply/BAT0.

UPDATE: Linux 3.19 dan selanjutnya, kita harus melihat direktori berikut -> /sys/class/power_supply/BAT1/

Misalnya memeriksa kapasitas & status di Arch Linux yang menjalankan 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

1
Secara khusus, /sys/class/power_supply/BAT0/capacitytampaknya menunjukkan persentase tagihan saat ini.
— thomasa88

Sudah usang ... apakah masih berfungsi?
— neverMind9

3
+1, ini harus menjadi jawaban yang diterima, karena tidak bergantung pada perangkat lunak tambahan yang mungkin tidak diinstal dan tidak diperlukan untuk menjawab pertanyaan ini. @ neverMind9: Saya tidak tahu maksud Anda /procsudah usang tetapi /sysberfungsi dengan baik untuk saya, bahkan di kernel 4.20.
— comfreak

1
@comfreak Bekerja untuk saya juga, sebenarnya.
— neverMind9

1
Tidak hanya ini yang harus menjadi jawaban penerima, tetapi mengambil data dapat dicapai dengan menggunakan bahasa pemrograman apa pun yang memiliki readfungsi seperti dalam PHP $capacity = trim(file_get_contents("/sys/class/power_supply/BAT0/capacity"));membuatnya sangat mudah dan tidak tergantung pada ketergantungan eksternal.
— Amin NAIRI

67

Pertama instal acpidengan menjalankan perintah ini,

sudo apt-get install acpi

Lalu lari:

acpi

Output sampel:

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

Atau untuk output yang lebih verbal yang terus diperbarui:

watch --interval=5 acpi -V

Keluaran:

Setiap 5.0: acpi -V Rab 8 Jan 15:45:35 2014

Baterai 0: Penuh, 100%
Adaptor 0: online
Panas 0: ok, 44,0 derajat C
Thermal 0: trip point 0 beralih ke mode kritis pada suhu 127.0 derajat C
Panas 0: titik trip 1 beralih ke mode panas pada suhu 127,0 derajat C
Pendinginan 0: intel_powerclamp tidak ada informasi keadaan yang tersedia
Pendinginan 1: pkg-temp-0 tidak ada informasi keadaan tersedia
Pendinginan 2: LCD 100 dari 100
Pendinginan 3: LCD 100 dari 100
Pendinginan 4: Prosesor 0 dari 10
Pendinginan 5: Prosesor 0 dari 10
Pendinginan 6: Prosesor 0 dari 10
Pendinginan 7: Prosesor 0 dari 10
Pendinginan 8: Prosesor 0 dari 10
Pendinginan 9: Prosesor 0 dari 10
Pendinginan 10: Prosesor 0 dari 10
Pendinginan 11: Prosesor 0 dari 10

29

Berkat @Wilf ini berfungsi di Ubuntu 17.10 saya di Lenovo Yoga 720:

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

Keluaran:

state:               fully-charged
percentage:          100%

Atau hanya nilai numerik dengan liner satu ini

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

Pada Fedora 23, saya harus mencari tahu batteryalih - alih BATmembuatnya bekerja. Saya menemukan itu dengan upower --enumerate.
— erik

grep untuk batterybekerja di Ubuntu juga, jadi saya mengubahnya dariBAT
— rubo77

28

Cukup dengan mengetik perintah

acpi

Untuk informasi rinci, Anda dapat mengetik

acpi -V

Saya tidak perlu menginstal paket apa pun sebelumnya.

Sistem: Debian 7.2 64bit


19

Berikut adalah artikel tentang paket yang dapat memeriksa masa pakai baterai Anda di baris perintah.

Pada dasarnya, yang harus Anda lakukan adalah:

sudo apt-get install acpi
acpi -V

18

Mungkin Anda bisa mencoba:

cat /proc/acpi/battery/BAT0/state

cat /proc/acpi/battery/BAT0/info


23
menggunakan /procuntuk menyimpan info ACPI telah tidak disarankan dan ditinggalkan sejak 2.6.24. Sekarang di /sys/class/power_supply/BAT0.
— Terry Wang

14

Saya sedikit terlambat ke pesta, tapi inilah kontribusi kecil saya. Berdasarkan jawaban sebelumnya, saya telah membuat script sederhana:

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

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

Output untuk mengeksekusi ini (./batpower) akan menjadi seperti ini:

POWER_SUPPLY_CAPACITY=23

NB: angka batery mungkin berbeda untuk Anda, dalam kasus saya itu adalah BAT1, tetapi Anda selalu dapat menemukannya dengan cd'ing ke / sys / class / power_supply atau seperti yang Lekensteyn sebutkan melalui upower -e

Mesin saya: Ubuntu 13.10, 3.11.0

Ganti BAT1 dalam kode bash di atas ke BAT0 jika Anda memiliki versi Ubuntu yang lebih lama yaitu 13,04 atau lebih baru.

MENINGKATKAN SCRIPT: Sejak posting asli saya, saya telah membuat sedikit perbaikan pada skrip:

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

Seperti biasa, perhatikan spasi dengan bash. Ini semua jelas. Jika baterai ada, itu akan muncul, jika tidak - skrip akan memberitahu Anda begitu. Sekarang, buka file .bashrc Anda dan tambahkan $ (batpower) ke prompt Anda. Inilah janji saya:

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

Perbarui terminal Anda atau buka tab atau jendela baru, dan sekarang Anda dapat memonitor pengisian baterai terus-menerus di terminal! termasuk tty! Semoga skripnya dipuji! masukkan deskripsi gambar di sini


Anda perlu memeriksa /sys/class/power_supply/BAT0dan /sys/class/power_supply/BAT1... Ini bisa berupa. Dan Anda harus menggunakan jalur itu ( /sys/class/power_supply/BAT#).
— dylnmc

Di netbook Ubuntu 12.04 saya (setelah berganti ke BAT0), saya sepertinya tidak mendapatkan baris POWER_SUPPLY_CAPACITY. Sepertinya saya bisa menghitungnya, dari nilai POWER_SUPPLY_CHARGE_FULL dan POWER_SUPPLY_CHARGE_NOW.
— mwfearnley

Terpilih tetapi Batman (Manajer Baterai) secara tidak sadar memiliki dering yang lebih bagus daripada Batpower :) Pada catatan yang serius menarik Anda menulis di AskUbuntu pada tahun 2014 dan betapa berbedanya Anda hari ini.
— WinEunuuchs2Unix

@ WinEunuuuchs2Unix Ya, saya sudah agak berubah sejak saya mulai, belajar beberapa trik baru. batman akan memiliki cincin yang bagus untuk itu tetapi kemungkinan hak cipta;)
— Sergiy Kolodyazhnyy

10

Anda dapat melakukannya tanpa menginstal paket tambahan:

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

Perintah ini diangkat dari sumber byobu . Itu mungkin kandidat yang baik untuk alias Bash .


+1 dari saya! CLI FTW. Jika Anda memiliki 2 baterai, ganti BAT0 untuk BAT1 :)
— Rinzwind

Apakah berkecil hati sejak 2.6.24, kita harus menggunakan/sys/class/power_supply/BAT0/
— Pablo A

9

Jalankan perintah berikut di terminal untuk mendapatkan info terperinci:

cat /proc/acpi/battery/BAT0/info

Jika Anda hanya ingin negara melakukannya:

cat /proc/acpi/battery/BAT0/state

Ini tidak disarankan dalam jawaban identik lainnya.
— Pablo A

6

Instal acpi, lalu gunakan watchuntuk terus memonitor melalui baris perintah.

Misalnya

watch --interval=5 acpi -V

akan menampilkan informasi seperti di bawah ini dan akan diperbarui setiap 5 detik.

Baterai 0: Penuh, 100%, informasi tingkat tidak tersedia
Baterai 0: kapasitas desain 6000 mAh, kapasitas penuh terakhir 3424 mAh = 57%

Pertanyaannya adalah mengapa seseorang melakukan ini? Yah, saya punya laptop dengan layar LCD rusak yang sekarang saya gunakan sebagai kotak bittorrent saya.


5

Ini berhasil bagi saya di ubuntu 14.04:

cat /sys/class/power_supply/BAT0/capacity

4

Saya akan menyarankan acpitetapi setelah membaca itu tidak bekerja di 11,10, saya punya ide.

Silakan ketik ini di terminal Anda: ls /proc/acpi/battery/BAT0 atauBAT1

Jika Anda mendapatkan "file atau direktori tidak ditemukan" maka ini tidak akan berhasil.

Tapi, jika daftar file, maka inilah skrip [rekatkan ke / usr / games / atau direktori lain di $ PATH, dan jalankan sudo chmod +x /usr/games/batterypercent, atau apa pun nama Anda] yang baru saja saya tulis untuk Anda yang akan memberi Anda perkiraan persentase baterai [Lihat di bawah]:

(Catatan, jika belum diinstal, instal program calcdari 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)%

Saya telah menguji skrip ini di laptop saya. Saya mengatakan perkiraan di atas karena acpimenunjukkan baterai 93%, dan skrip saya menunjukkan baterai 90%, jadi coba skrip ini terhadap persentase baterai GUI Anda, dan lihat bagaimana mematikannya. Dalam kasus saya, tampaknya secara konsisten 3% lebih rendah dari persentase acpi. Dalam hal ini, Anda dapat menambahkan baris ini tepat sebelum baris terakhir:, di percent=$((percent + 3))mana "3" adalah persentase yang rendah.

** Di lenovo saya, baterai terdaftar sebagai BAT1, coba itu juga. (12,04 LTS)


Matt, mencoba saran Anda, mendapat "Tidak ada file atau direktori"
— Joe

Argh .. oke, saya hampir yakin ini sebabnya acpi tidak bekerja, karena saya kira 11.10 tidak mendukung fungsi ACPI laptop Anda juga [baterai, dll]. Saya pikir saya pernah mengalami hal seperti ini ketika melakukan upgrade di masa lalu. Saya masih di 11,04 sekalipun. Maaf ini tidak berhasil untuk Anda :(
— Matt

Jadi, hanya ingin tahu, dapatkah Anda menempelkan hasilnya ls /proc/acpi/? Terima kasih
— Matt

1

Skrip serupa tanpa calc atau 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"

1

Inilah yang saya gunakan. Ini hanya melihat perbedaan antara muatan penuh dan muatan saat ini serta melihat apakah muatannya turun dalam kasus yang digunakan untuk memberi tahu pengguna.

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

Kita dapat mengulangi hanya persentase dengan perintah itu

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

65%

jika Anda perlu mengekstrak nilai itu


0

Ini tidak akan membantu semua orang, tapi itu bisa saya - saya menggunakan byobu setiap kali saya menggunakan terminal, dan baterai adalah salah satu opsi untuk bilah pemberitahuan status.


0

Anda dapat mengetik:

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

atau

$ 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
tidak yakin apa yang Anda bicarakan di sini. menjalankannya di terminal membericat: /proc/acpi/ac_adapter/AC0/state: No such file or directory
— infoquad
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.