Jawaban:
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.
upower --enumerate
dapat bermanfaat jika Anda tidak yakin cara menggunakannya upower
.
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
).
upower
saya langsung tersesat.
upower -i $(upower -e | grep BAT) | grep --color=never -E "state|to\ full|to\ empty|percentage"
Pengingat yang ramah : sejak Linux kernel 2.6.24 menggunakan /proc
untuk 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
/sys/class/power_supply/BAT0/capacity
tampaknya menunjukkan persentase tagihan saat ini.
/proc
sudah usang tetapi /sys
berfungsi dengan baik untuk saya, bahkan di kernel 4.20.
read
fungsi seperti dalam PHP $capacity = trim(file_get_contents("/sys/class/power_supply/BAT0/capacity"));
membuatnya sangat mudah dan tidak tergantung pada ketergantungan eksternal.
Pertama instal acpi
dengan 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
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/%//
battery
alih - alih BAT
membuatnya bekerja. Saya menemukan itu dengan upower --enumerate
.
battery
bekerja di Ubuntu juga, jadi saya mengubahnya dariBAT
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
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
Mungkin Anda bisa mencoba:
cat /proc/acpi/battery/BAT0/state
cat /proc/acpi/battery/BAT0/info
/proc
untuk menyimpan info ACPI telah tidak disarankan dan ditinggalkan sejak 2.6.24. Sekarang di /sys/class/power_supply/BAT0
.
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!
/sys/class/power_supply/BAT0
dan /sys/class/power_supply/BAT1
... Ini bisa berupa. Dan Anda harus menggunakan jalur itu ( /sys/class/power_supply/BAT#
).
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 .
/sys/class/power_supply/BAT0/
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
Instal acpi, lalu gunakan watch
untuk 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.
Saya akan menyarankan acpi
tetapi 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 calc
dari 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 acpi
menunjukkan 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)
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 :(
ls /proc/acpi/
? Terima kasih
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"
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
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.
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
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"