Я хотел бы команду, которая отображает состояние батареи в терминале.
Приведенная ниже команда выводит много информации о состоянии и статистике батареи. Путь /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"
: вся команда. Пример:
alias bat='upower -i /org/freedesktop/UPower/devices/battery_BAT0| grep -E "state|to\ full|percentage"'
Добавьте это в конец вашего файла .bashrc, и вы можете в любое время набрать «bat» в терминале.
Существует также команда upower -d
(--dump
), которая отображает информацию обо всех доступных источниках питания, таких как батареи ноутбука, внешние мыши и т. Д.
Вы можете ввести:
$ 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
Вот что я использую. Он просто смотрит на разницу между полным зарядом и текущим зарядом, а также видит, падает ли заряд, и в этом случае он использует уведомление, чтобы предупредить пользователя.
#!/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
Аналогичный скрипт без 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"
Это не всем поможет, но мне помогло - я использую byobu всякий раз, когда использую терминал, а батарея - это один из вариантов панели уведомлений о состоянии.
Мы можем отобразить только процент с этой командой
upower -i $(upower -e | grep 'BAT') | grep -E "state|to\ full|percentage" | awk '/perc/{print $2}'
65%
, если вам нужно извлечь это значение
Это помогло мне в 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 и посмотрите, как от него. В моем случае это, кажется, последовательно на 3% ниже, чем процент acpi. В этом случае можно добавить эту строку прямо перед последней строкой: percent=$((percent + 3))
, где "3" процент, это низко.
** В моей Lenovo батарея перечислена как BAT1, попробуйте это также. (12.04 LTS)
Я немного опоздал на вечеринку, но вот мой маленький вклад. Основываясь на предыдущих ответах, я сделал простой скрипт batpower:
#!/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
My machine: 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! Да хвалится сценарий!
Установите acpi, затем используйте watch
для непрерывного мониторинга через командную строку.
, например,
watch --interval=5 acpi -V
покажет информацию, подобную приведенной ниже, и будет обновляться каждые 5 секунд.
Батарея 0: полная, 100%, информация о скорости недоступна
blockquote>
Батарея 0: расчетная емкость 6000 мАч, последняя полная емкость 3424 мАч = 57%Вопрос зачем кому-то это делать? Ну, у меня есть ноутбук с битым ЖК-экраном, который я сейчас использую в качестве своего битторрента.
Может быть, вы можете попробовать:
cat /proc/acpi/battery/BAT0/state
cat /proc/acpi/battery/BAT0/info
Благодаря @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/%//
Дружеское напоминание : поскольку ядро Linux 2.6.24 использование /proc
для хранения информации ACPI было не рекомендуется и не рекомендуется .
Теперь мы рекомендуем использовать -> /sys/class/power_supply/BAT0
.
ОБНОВЛЕНИЕ: Linux 3.19 и более поздних версий, мы должны посмотреть на следующий каталог -> /sys/class/power_supply/BAT1/
Например, проверка емкости & amp; состояние в 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
Достаточно набрать команду
blockquote>
acpi
Для получения подробной информации вы можете набрать
acpi -V
[ 115] blockquote>Мне не нужно было устанавливать какие-либо пакеты раньше.
Система: Debian 7.2, 64-битная
Сначала установите acpi
, выполнив эту команду,
sudo apt-get install acpi
Затем выполните:
acpi
<час> Пример вывода:
[ 112]Или для более подробного вывода, которое постоянно обновляется:
watch --interval=5 acpi -V
Вывод:
Every 5.0s: acpi -V Wed Jan 8 15:45:35 2014 Battery 0: Full, 100% Adapter 0: on-line Thermal 0: ok, 44.0 degrees C Thermal 0: trip point 0 switches to mode critical at temperature 127.0 degrees C Thermal 0: trip point 1 switches to mode hot at temperature 127.0 degrees C Cooling 0: intel_powerclamp no state information available Cooling 1: pkg-temp-0 no state information available Cooling 2: LCD 100 of 100 Cooling 3: LCD 100 of 100 Cooling 4: Processor 0 of 10 Cooling 5: Processor 0 of 10 Cooling 6: Processor 0 of 10 Cooling 7: Processor 0 of 10 Cooling 8: Processor 0 of 10 Cooling 9: Processor 0 of 10 Cooling 10: Processor 0 of 10 Cooling 11: Processor 0 of 10
Вы можете сделать это без установки каких-либо дополнительных пакетов:
$ 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 .
Здесь - статья о пакете, который может проверить время автономной работы в командной строке.
По сути, все, что вам нужно сделать, это:
sudo apt-get install acpi
acpi -V
Выполните следующую команду в терминале для получения подробной информации:
cat /proc/acpi/battery/BAT0/info
Если вы просто хотите, чтобы состояние делало:
cat /proc/acpi/battery/BAT0/state