คำตอบ:
คำสั่งด้านล่างแสดงสถานะล็อตและข้อมูลสถิติเกี่ยวกับแบตเตอรี่ /org/...
เส้นทางที่สามารถพบได้กับคำสั่งupower -e
( --enumerate
)
upower -i /org/freedesktop/UPower/devices/battery_BAT0
ตัวอย่างผลลัพธ์:
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
คุณสามารถใช้เครื่องมือเช่น grep เพื่อรับข้อมูลที่คุณต้องการจากผลลัพธ์ทั้งหมด
วิธีง่ายๆอย่างหนึ่ง: การไพพ์คำสั่งข้างต้นลงใน
grep -E "state|to\ full|percentage"
เอาท์พุท:
state: charging
time to full: 57.3 minutes
percentage: 42.5469%
หากคุณต้องการเรียกใช้คำสั่งนั้นบ่อยครั้งคุณสามารถสร้าง Bash alias สำหรับคำสั่งทั้งหมดได้ ตัวอย่าง:
alias bat='upower -i /org/freedesktop/UPower/devices/battery_BAT0| grep -E "state|to\ full|percentage"'
เพิ่มเข้าไปที่ท้ายไฟล์. bashrc ของคุณและคุณสามารถพิมพ์ 'bat' ได้ทุกเมื่อในเทอร์มินัล
นอกจากนี้ยังมีคำสั่งupower -d
( --dump
) ที่แสดงข้อมูลสำหรับแหล่งพลังงานที่มีอยู่ทั้งหมดเช่นแบตเตอรี่แล็ปท็อปหนูภายนอกเป็นต้น
upower --enumerate
มีประโยชน์หากคุณไม่แน่ใจว่าจะใช้งานupower
อย่างไร
upower -e
upower -i ...
หากคุณขี้เกียจและต้องการรายการอุปกรณ์ทั้งหมดให้ใช้upower -d
( upower --dump
)
upower
ฉันจะหลงทางทันที
upower -i $(upower -e | grep BAT) | grep --color=never -E "state|to\ full|to\ empty|percentage"
เตือนมิตร : ตั้งแต่ลินุกซ์เคอร์เนล2.6.24ใช้/proc
ในการจัดเก็บข้อมูล ACPI ได้รับกำลังใจและเลิกใช้
ตอนนี้เราได้รับการสนับสนุนการใช้งาน /sys/class/power_supply/BAT0
->
อัปเดต: Linux 3.19 ขึ้นไปเราควรดูที่ไดเรกทอรีดังต่อไปนี้ -> /sys/class/power_supply/BAT1/
ตัวอย่างเช่นการตรวจสอบความจุ & สถานะบน Arch Linux ที่ใช้ 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
ดูเหมือนจะแสดงเปอร์เซ็นต์ค่าใช้จ่ายในปัจจุบัน
/proc
เลิกใช้แล้ว แต่/sys
ทำงานได้อย่างสมบูรณ์แบบสำหรับฉันแม้ในเคอร์เนล 4.20
read
ฟังก์ชั่นเช่นใน PHP $capacity = trim(file_get_contents("/sys/class/power_supply/BAT0/capacity"));
ทำให้มันง่ายสุดและไม่ขึ้นกับการพึ่งพาภายนอกใด ๆ
ก่อนติดตั้งacpi
โดยใช้คำสั่งนี้
sudo apt-get install acpi
จากนั้นเรียกใช้:
acpi
ตัวอย่างผลลัพธ์:
Battery 0: Discharging, 61%, 01:10:12 remaining
หรือสำหรับเอาต์พุต verbose เพิ่มเติมที่อัพเดตอย่างต่อเนื่อง:
watch --interval=5 acpi -V
เอาท์พุท:
ทุก ๆ 5.0s: acpi -V พุธ 8 มกราคม 15:45:35 2014 แบตเตอรี่ 0: เต็ม 100% อะแดปเตอร์ 0: ออนไลน์ ความร้อน 0: ตกลง, 44.0 องศาเซลเซียส ความร้อน 0: จุดเดินทาง 0 สลับไปที่โหมดวิกฤติที่อุณหภูมิ 127.0 องศาเซลเซียส ความร้อน 0: จุดเดินทาง 1 เปลี่ยนเป็นโหมดร้อนที่อุณหภูมิ 127.0 องศาเซลเซียส การทำให้เย็นลง 0: intel_powerclamp ไม่มีข้อมูลสถานะให้ใช้ การระบายความร้อน 1: pkg-temp-0 ไม่มีข้อมูลสถานะ คูลลิ่ง 2: LCD 100 จาก 100 คูลลิ่ง 3: จอแอลซีดี 100 จาก 100 คูลลิ่ง 4: โปรเซสเซอร์ 0 จาก 10 คูลลิ่ง 5: โปรเซสเซอร์ 0 จาก 10 คูลลิ่ง 6: โปรเซสเซอร์ 0 จาก 10 คูลลิ่ง 7: โปรเซสเซอร์ 0 จาก 10 คูลลิ่ง 8: โปรเซสเซอร์ 0 จาก 10 คูลลิ่ง 9: โปรเซสเซอร์ 0 จาก 10 คูลลิ่ง 10: โปรเซสเซอร์ 0 จาก 10 คูลลิ่ง 11: โปรเซสเซอร์ 0 จาก 10
ขอบคุณ @Wilf สิ่งนี้ใช้ได้กับ Ubuntu 17.10 ของฉันบน Lenovo Yoga 720:
upower -i $(upower -e | grep '/battery') | grep --color=never -E "state|to\ full|to\ empty|percentage"
เอาท์พุท:
state: fully-charged
percentage: 100%
หรือเพียงแค่ค่าตัวเลขกับซับอันนี้
upower -i $(upower -e | grep '/battery') | grep --color=never -E percentage|xargs|cut -d' ' -f2|sed s/%//
battery
แทนBAT
เพื่อให้มันทำงานได้ upower --enumerate
ฉันพบว่ามี
battery
งานใน Ubuntu ก็เลยเปลี่ยนจากBAT
การพิมพ์คำสั่งก็เพียงพอแล้ว
acpi
สำหรับข้อมูลรายละเอียดคุณสามารถพิมพ์
acpi -V
ฉันไม่ต้องติดตั้งแพ็กเกจใด ๆ มาก่อน
ระบบ: เดเบียน 7.2 64 บิต
นี่คือบทความเกี่ยวกับแพคเกจที่สามารถตรวจสอบอายุแบตเตอรี่ของคุณที่บรรทัดคำสั่ง
โดยพื้นฐานแล้วสิ่งที่คุณต้องทำคือ:
sudo apt-get install acpi
acpi -V
บางทีคุณสามารถลอง:
cat /proc/acpi/battery/BAT0/state
cat /proc/acpi/battery/BAT0/info
/proc
เพื่อจัดเก็บข้อมูล ACPI ได้รับการสนับสนุนและเลิกใช้ตั้งแต่ 2.6.24 ตอนนี้มัน/sys/class/power_supply/BAT0
มา
ฉันไปงานเลี้ยงสายนิดหน่อย แต่นี่คือส่วนเล็ก ๆ ของฉัน จากคำตอบก่อนหน้านี้ฉันได้สร้างสคริปต์ง่ายๆ:
#!/bin/bash
# Description: Battery charge in percentage
grep POWER_SUPPLY_CAPACITY /sys/class/power_supply/BAT1/uevent
เอาต์พุตสำหรับการดำเนินการนี้ (./batpower) จะเป็นดังนี้:
POWER_SUPPLY_CAPACITY=23
หมายเหตุ: หมายเลข batery อาจแตกต่างกันสำหรับคุณในกรณีของฉันคือ BAT1 แต่คุณสามารถค้นหาได้โดย cd'ing ถึง / sys / class / power_supply หรือตามที่ Lekensteyn พูดถึงผ่าน upower -e
เครื่องของฉัน: Ubuntu 13.10, 3.11.0
แทนที่BAT1ในโค้ด bash ด้านบนเป็นBAT0หากคุณมี Ubuntu รุ่นเก่ากว่าเช่น 13.04 หรือใหม่กว่า
สคริปต์ที่ปรับปรุงใหม่:ตั้งแต่โพสต์ดั้งเดิมของฉันฉันได้ปรับปรุงสคริปต์เล็กน้อย:
#!/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
และเช่นเคยให้ความสนใจกับช่องว่างด้วยการทุบตี นี่คือการอธิบายตนเองทั้งหมด หากแบตเตอรี่มีอยู่ก็จะปรากฏขึ้นหากไม่ได้ - สคริปต์จะบอกให้คุณทราบ ตอนนี้ไปที่ไฟล์. bashrc ของคุณและเพิ่ม $ (batpower) ไปที่พรอมต์ของคุณ นี่คือพรหมของฉัน:
PS1='[$(batpower)]\n${debian_chroot:+($debian_chroot)}[*\u@Ubuntu*]:\w\$ '
อัปเดตเทอร์มินัลของคุณหรือเปิดแท็บหรือหน้าต่างใหม่และตอนนี้คุณสามารถตรวจสอบการชาร์จแบตเตอรี่อย่างต่อเนื่องในเทอร์มินัล! รวมถึง tty ด้วย! ขอให้สคริปต์ได้รับการยกย่อง!
/sys/class/power_supply/BAT0
และ/sys/class/power_supply/BAT1
... มันสามารถเป็นได้ทั้ง และคุณควรใช้เส้นทางนั้น ( /sys/class/power_supply/BAT#
)
คุณสามารถทำได้โดยไม่ต้องติดตั้งแพ็คเกจเพิ่มเติม:
$ 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%
คำสั่งนี้จะถูกยกขึ้นจากแหล่งที่มาของ byobu มันอาจจะเป็นผู้สมัครที่ดีสำหรับนามแฝงทุบตี
/sys/class/power_supply/BAT0/
รันคำสั่งต่อไปนี้ในเทอร์มินัลเพื่อรับข้อมูลรายละเอียด:
cat /proc/acpi/battery/BAT0/info
หากคุณต้องการให้รัฐทำ:
cat /proc/acpi/battery/BAT0/state
ติดตั้ง acpi จากนั้นใช้watch
เพื่อตรวจสอบบรรทัดคำสั่งผ่านอย่างต่อเนื่อง
เช่น
watch --interval=5 acpi -V
จะแสดงข้อมูลเช่นด้านล่างและจะอัพเดททุก 5 วินาที
แบตเตอรี่ 0: เต็ม, 100%, ไม่มีข้อมูลอัตรา
แบตเตอรี่ 0: ความจุการออกแบบ 6000 mAh, กำลังการผลิตเต็มที่สุดท้าย 3424 mAh = 57%
คำถามคือทำไมมีคนทำเช่นนี้? ฉันมีแล็ปท็อปที่มีหน้าจอ LCD แตกซึ่งตอนนี้ฉันใช้เป็นกล่องบิตซอร์เรนต์
นี่ทำงานสำหรับฉันใน Ubuntu 14.04:
cat /sys/class/power_supply/BAT0/capacity
ฉันจะแนะนำacpi
แต่หลังจากอ่านแล้วมันไม่ทำงานใน 11.10 ฉันมีความคิด
โปรดพิมพ์สิ่งนี้ในเทอร์มินัลของคุณ:
ls /proc/acpi/battery/BAT0
หรือBAT1
หากคุณได้รับ "ไฟล์หรือไดเรกทอรีไม่พบ" สิ่งนี้จะไม่ทำงาน
แต่ถ้ามันแสดงรายการไฟล์นี่เป็นสคริปต์[วางลงใน / usr / games / หรือไดเรกทอรีอื่น ๆ ใน $ PATH และเรียกใช้sudo chmod +x /usr/games/batterypercent
หรือชื่อที่คุณตั้งไว้]ที่ฉันเพิ่งเขียนถึงคุณซึ่งจะให้เปอร์เซ็นต์แบตเตอรี่โดยประมาณ [ดูด้านล่าง]:
(หมายเหตุหากไม่ได้ติดตั้งไว้แล้วติดตั้งโปรแกรมcalc
จาก 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)%
ฉันได้ทดสอบสคริปต์นี้บนแล็ปท็อปของฉัน ฉันบอกว่าประมาณข้างต้นเพราะacpi
แสดงแบตเตอรี่ 93% และสคริปต์ของฉันแสดงแบตเตอรี่ 90% ดังนั้นลองใช้สคริปต์นี้เทียบกับเปอร์เซ็นต์แบตเตอรี่ GUI ของคุณและดูว่ามันเป็นอย่างไร ในกรณีของฉันดูเหมือนว่าจะต่ำกว่าอัตราร้อยละของ acpi 3% อย่างสม่ำเสมอ ในกรณีนั้นคุณสามารถเพิ่มบรรทัดนี้ก่อนบรรทัดสุดท้าย: percent=$((percent + 3))
โดยที่ "3" คือเปอร์เซ็นต์ที่ต่ำ
** ใน lenovo ของฉันแบตเตอรี่แสดงรายการเป็น BAT1 ลองด้วยเช่นกัน (12.04 LTS)
acpi
ใช้งานไม่ได้เพราะฉันเดาว่า 11.10 ไม่รองรับฟังก์ชั่น ACPI ของแล็ปท็อปของคุณเช่นกัน [แบตเตอรี่ ฯลฯ ] ฉันคิดว่าฉันเคยมีประสบการณ์เช่นนี้เมื่ออัพเกรดในอดีต ฉันยังอยู่ที่ 11.04 ขออภัยที่ว่านี้ไม่ได้ทำงานสำหรับยา :(
ls /proc/acpi/
? ขอบคุณ
สคริปต์ที่คล้ายกันโดยไม่มี calc หรือ 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"
นี่คือสิ่งที่ฉันใช้ เพียงแค่ดูความแตกต่างระหว่างการชาร์จเต็มและค่าใช้จ่ายในปัจจุบันเช่นเดียวกับการดูว่าค่าใช้จ่ายลดลงซึ่งในกรณีนี้จะใช้การแจ้งเตือนเพื่อแจ้งเตือนผู้ใช้
#!/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
เราสามารถสะท้อนเปอร์เซ็นต์ด้วยคำสั่งนั้น
upower -i $(upower -e | grep 'BAT') | grep -E "state|to\ full|percentage" | awk '/perc/{print $2}'
65%
ในกรณีที่คุณต้องการแยกค่านั้น
สิ่งนี้จะไม่ช่วยให้ทุกคน แต่มันทำให้ฉัน - ฉันใช้byobuทุกครั้งที่ฉันใช้เทอร์มินัลและแบตเตอรี่เป็นหนึ่งในตัวเลือกสำหรับแถบการแจ้งเตือนสถานะ
คุณสามารถพิมพ์:
$ acpi -i
Battery 0: Discharging, 98%, 02:51:14 remaining
Battery 0: design capacity 4400 mAh, last full capacity 3733 mAh = 84%
หรือ
$ 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"