Câu hỏi Làm thế nào để kiểm tra tình trạng pin bằng cách sử dụng thiết bị đầu cuối?


Tôi muốn một lệnh kiểm tra tình trạng pin thông qua thiết bị đầu cuối


269
2017-10-20 01:24


gốc


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


Các câu trả lời:


Lệnh dưới đây xuất ra nhiều trạng thái và thông tin thống kê về pin. Các /org/... đường dẫn có thể được tìm thấy với lệnh upower -e (--enumerate).

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

Ví dụ đầu ra:

  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

Bạn có thể sử dụng các công cụ như grep để lấy thông tin bạn muốn từ tất cả các đầu ra đó.

Một cách đơn giản: đường ống lệnh trên vào

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

kết quả đầu ra:

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

Nếu bạn thường muốn chạy lệnh đó, thì bạn có thể tạo một bí danh Bash cho toàn bộ lệnh. Thí dụ:

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

Thêm vào cuối tệp .bashrc của bạn và bạn có thể nhập 'bat' bất cứ lúc nào, trong thiết bị đầu cuối.

Cũng có một upower -d (--dump) lệnh hiển thị thông tin cho tất cả các nguồn năng lượng sẵn có như pin máy tính xách tay, chuột ngoài, v.v.


282
2018-02-09 17:42



upower --enumerate có thể hữu ích nếu bạn không chắc chắn cách sử dụng upower. - landroni
@landroni Và tùy chọn viết tắt là upower -e, lệnh đó liệt kê các đường dẫn có sẵn cho upower -i .... Nếu bạn lười biếng và chỉ muốn danh sách tất cả các thiết bị, hãy sử dụng upower -d (upower --dump). - Lekensteyn
Thật. Tôi nghĩ rằng đây sẽ là một bổ sung hữu ích cho câu trả lời, như khi tôi lần đầu tiên cố gắng sử dụng upower Tôi lập tức bị lạc. - landroni
@landroni Điểm tốt, tôi đã cập nhật câu trả lời. Vui lòng chỉnh sửa nó nếu bạn có nhiều bổ sung liên quan. - Lekensteyn
Một lớp lót khác có thể là upower -i $(upower -e | grep BAT) | grep --color=never -E "state|to\ full|to\ empty|percentage" - Wilf


Lời nhắc thân thiện: kể từ hạt nhân Linux 2,6,24 sử dụng /proc để lưu trữ thông tin ACPI đã được chán nản và không dùng nữa.

Bây giờ chúng tôi được khuyến khích sử dụng -> /sys/class/power_supply/BAT0.

CẬP NHẬT: Linux 3.19 trở đi, chúng ta nên xem thư mục sau -> /sys/class/power_supply/BAT1/

Ví dụ công suất -> cat /sys/class/power_supply/BAT1/capacity trạng thái -> cat /sys/class/power_supply/BAT1/status


99
2018-06-17 08:35



Đặc biệt, /sys/class/power_supply/BAT0/capacity dường như hiển thị phần trăm phí hiện tại. - thomasa88
Không được chấp nhận… Nó vẫn hoạt động? - neverMind9


Cài đặt đầu tiên acpi bằng cách chạy lệnh này,

sudo apt-get install acpi

Sau đó chạy:

acpi

Đầu ra mẫu:

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

Hoặc cho một đầu ra tiết hơn mà liên tục cập nhật:

watch --interval=5 acpi -V

Đầu ra:

Mỗi 5.0: acpi -V Thứ tư ngày 8 tháng 1 15:45:35 2014

Pin 0: Đầy, 100%
Bộ chuyển đổi 0: trực tuyến
Nhiệt 0: ok, 44,0 độ C
Nhiệt 0: điểm chuyển mạch 0 chuyển sang chế độ quan trọng ở nhiệt độ 127,0 độ C
Nhiệt 0: chuyển mạch điểm 1 sang chế độ nóng ở nhiệt độ 127,0 độ C
Làm mát 0: intel_powerclamp không có thông tin trạng thái
Làm mát 1: pkg-temp-0 không có thông tin trạng thái
Làm mát 2: LCD 100 của 100
Làm mát 3: LCD 100 của 100
Làm mát 4: Bộ xử lý 0 trên 10
Làm mát 5: Bộ xử lý 0 trên 10
Làm mát 6: Bộ xử lý 0 trên 10
Làm mát 7: Bộ xử lý 0 trên 10
Làm mát 8: Bộ xử lý 0 trên 10
Làm mát 9: Bộ xử lý 0 trên 10
Làm mát 10: Bộ xử lý 0 trên 10
Làm mát 11: Bộ xử lý 0 trên 10

59
2017-11-24 20:20





Nhờ @Wilf hoạt động trên Ubuntu 17.10 của tôi trên Lenovo Yoga 720:

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

Đầu ra:

state:               fully-charged
percentage:          100%

Hoặc chỉ là giá trị số với một lớp lót này

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

26
2017-07-02 08:56



Trên Fedora 23 Tôi đã phải grep cho battery thay vì BAT Để làm cho nó hoạt động. Tôi thấy rằng với upower --enumerate. - erik
grep cho battery cũng hoạt động trong Ubuntu, vì vậy tôi đã thay đổi nó từ BAT - rubo77


Đủ để nhập lệnh

acpi

Để biết thông tin chi tiết, bạn có thể nhập

acpi -V

Tôi không phải cài đặt bất kỳ gói nào trước đây.

Hệ thống: Debian 7.2 64bit


23
2017-07-26 14:36





Có thể bạn có thể thử:

cat /proc/acpi/battery/BAT0/state

cat /proc/acpi/battery/BAT0/info


15
2017-10-20 05:36



sử dụng /proc để lưu trữ thông tin ACPI đã được khuyến khích và không được chấp nhận kể từ 2.6.24. Bây giờ nó ở /sys/class/power_supply/BAT0. - Terry Wang


Đây là một bài viết về một gói có thể kiểm tra tuổi thọ pin của bạn tại dòng lệnh.

Về cơ bản, tất cả những gì bạn phải làm là:

sudo apt-get install acpi
acpi -V

15
2018-06-10 04:57





Tôi đến muộn một chút nhưng đây là đóng góp nhỏ của tôi. Dựa trên các câu trả lời trước, tôi đã tạo ra một mã nguồn đơn giản:

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

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

Đầu ra để thực hiện điều này (./batpower) sẽ là một cái gì đó như thế này:

POWER_SUPPLY_CAPACITY=23

N.B. : số batery có thể khác nhau cho bạn, trong trường hợp của tôi nó là BAT1, nhưng bạn luôn có thể tìm thấy nó bằng cd'ing to / sys / class / power_supply hoặc như Lekensteyn được đề cập thông qua upower -e

Máy của tôi: Ubuntu 13.10, 3.11.0

Thay thế BAT1 trong mã bash ở trên để BAT0 nếu bạn có phiên bản Ubuntu cũ hơn, tức là từ 13.04 trở lên.

CẬP NHẬT CẢI TIẾN: Kể từ bài đăng gốc của tôi, tôi đã thực hiện một cải tiến nhỏ cho tập lệnh:

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

Như mọi khi, chú ý đến không gian với bash. Đây là tất cả tự giải thích. Nếu có pin, nó sẽ hiển thị, nếu không - kịch bản sẽ cho bạn biết như vậy. Bây giờ, hãy truy cập tệp .bashrc của bạn và thêm $ (batpower) vào lời nhắc của bạn. Đây là promt của tôi:

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

Cập nhật thiết bị đầu cuối của bạn hoặc mở tab hoặc cửa sổ mới và bây giờ bạn có thể theo dõi mức sạc pin liên tục trong thiết bị đầu cuối! bao gồm cả tty! Có thể kịch bản được ca ngợi! enter image description here


11
2017-07-23 03:23



Bạn cần kiểm tra /sys/class/power_supply/BAT0 và /sys/class/power_supply/BAT1 ... Nó có thể là một trong hai. Và bạn nên sử dụng đường dẫn đó (/sys/class/power_supply/BAT#). - dylnmc
Trong netbook Ubuntu 12.04 của tôi (sau khi chuyển sang BAT0), tôi dường như không nhận được dòng POWER_SUPPLY_CAPACITY. Dường như tôi có thể tính toán nó mặc dù, từ các giá trị POWER_SUPPLY_CHARGE_FULL và POWER_SUPPLY_CHARGE_NOW. - mwfearnley


Chạy lệnh sau trong terminal để nhận thông tin chi tiết:

cat /proc/acpi/battery/BAT0/info

Nếu bạn chỉ muốn nhà nước làm:

cat /proc/acpi/battery/BAT0/state

9
2018-04-19 12:20



Có, nó đã làm việc :) Cảm ơn! - infoquad


Bạn có thể làm điều đó mà không cần cài đặt thêm bất kỳ gói nào:

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

Lệnh này được gỡ bỏ từ nguồn của byobu. Nó có thể là một ứng cử viên tốt cho một Bí danh Bash.


9
2018-06-10 05:35



+1 từ tôi! CLI FTW. Nếu bạn có 2 pin thay đổi BAT0 cho BAT1 :) - Rinzwind