Відповіді:
Наведена нижче команда виводить багато статусу та статистичну інформацію про акумулятор. /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 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"
Дружнє нагадування : оскільки ядро Linux 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
Або для більш детального виводу, який постійно оновлюється:
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: LCD 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
Мені раніше не довелося встановлювати жодні пакунки.
Система: Debian 7.2 64bit
Я трохи запізнююся на вечірку, але ось мій маленький внесок. На основі попередніх відповідей я створив простий сценарій:
#!/bin/bash
# Description: Battery charge in percentage
grep POWER_SUPPLY_CAPACITY /sys/class/power_supply/BAT1/uevent
Вихід для виконання цього (./batpower) буде приблизно таким:
POWER_SUPPLY_CAPACITY=23
Примітка: номер батареї для вас може бути різним, в моєму випадку це BAT1, але ви завжди можете це дізнатися, перейшовши на cd'ing до / sys / class / power_supply або як Лекенштейн згадується через 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 мАг, остання повна ємність 3424 мАг = 57%
Питання: чому хтось би це робив? Ну, у мене є ноутбук зі зламаним РК-екраном, який я зараз використовую як свою коробку bittorrent.
Я збирався запропонувати, acpi
але прочитавши, що це не працює в 11.10, у мене виникла ідея.
Будь ласка, введіть це у своєму терміналі:
ls /proc/acpi/battery/BAT0
абоBAT1
Якщо ви отримали "файл чи каталог не знайдено", це не спрацює.
Але якщо в ньому перераховані файли, то ось сценарій [вставте його в / usr / games / або інший каталог у $ PATH, і запустіть sudo chmod +x /usr/games/batterypercent
, або як ви його назвете], що я тільки що написав для вас, який дасть вам оцінку відсотка заряду акумулятора [Дивіться нижче]:
(Зверніть увагу, якщо він ще не встановлений, встановіть програму calc
зі сховищ: 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, і подивіться, як він працює. У моєму випадку, здається, це на 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
Це не допоможе всім, але це зробило мене - я використовую 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"