Ответы:
Приведенная ниже команда выводит много состояния и статистическую информацию о батарее. /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 градусов C Тепловой 0: точка срабатывания 0 переключается в критический режим при температуре 127,0 градусов C Тепловой 0: точка срабатывания 1 переключается в горячий режим при температуре 127,0 градусов C Охлаждение 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
Вот статья о пакете, который может проверить время автономной работы в командной строке.
В общем, все, что вам нужно сделать, это:
sudo apt-get install acpi
acpi -V
Я немного опоздал на вечеринку, но вот мой маленький вклад. Основываясь на предыдущих ответах, я сделал простой скрипт:
#!/bin/bash
# Description: Battery charge in percentage
grep POWER_SUPPLY_CAPACITY /sys/class/power_supply/BAT1/uevent
Выход для выполнения этого (./batpower) будет примерно таким:
POWER_SUPPLY_CAPACITY=23
NB: номер батареи может отличаться для вас, в моем случае это BAT1, но вы всегда можете узнать его, перейдя в / 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
Как всегда, обратите внимание на пробелы с bash. Это все говорит само за себя. Если батарея присутствует, она появится, если нет - скрипт скажет вам об этом. Теперь перейдите к файлу .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%
Эта команда взята из источника Бёбу . Это может быть хорошим кандидатом на псевдоним Bash .
/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%
Вопрос в том, зачем кому-то это делать? Ну, у меня есть ноутбук с битым ЖК-экраном, который я сейчас использую в качестве своего битторрента.
Я собирался предложить, 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% заряда батареи, поэтому попробуйте этот сценарий по отношению к проценту батареи вашего графического интерфейса и посмотрите, насколько он отключен. В моем случае он, по-видимому, на 3% ниже, чем процент acpi. В этом случае вы можете добавить эту строку прямо перед последней строкой:, 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"