Как проверить состояние батареи через терминал?

Я хотел бы команду, которая отображает состояние батареи в терминале.

386
задан 3 February 2019 в 19:02

19 ответов

Приведенная ниже команда выводит много информации о состоянии и статистике батареи. Путь /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), которая отображает информацию обо всех доступных источниках питания, таких как батареи ноутбука, внешние мыши и т. Д.

0
ответ дан 3 February 2019 в 19:02

Вы можете ввести:

$ 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
0
ответ дан 3 February 2019 в 19:02

Вот что я использую. Он просто смотрит на разницу между полным зарядом и текущим зарядом, а также видит, падает ли заряд, и в этом случае он использует уведомление, чтобы предупредить пользователя.

#!/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
0
ответ дан 3 February 2019 в 19:02

Аналогичный скрипт без 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"
0
ответ дан 3 February 2019 в 19:02

Это не всем поможет, но мне помогло - я использую byobu всякий раз, когда использую терминал, а батарея - это один из вариантов панели уведомлений о состоянии.

0
ответ дан 3 February 2019 в 19:02

Мы можем отобразить только процент с этой командой

upower -i $(upower -e | grep 'BAT') | grep -E "state|to\ full|percentage" | awk '/perc/{print $2}'

65%

, если вам нужно извлечь это значение

0
ответ дан 3 February 2019 в 19:02
cat /proc/acpi/ac_adapter/AC/state
0
ответ дан 3 February 2019 в 19:02

Это помогло мне в ubuntu 14.04:

cat /sys/class/power_supply/BAT0/capacity
0
ответ дан 3 February 2019 в 19:02

Я собирался предложить 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)

4
ответ дан 3 February 2019 в 19:02

Я немного опоздал на вечеринку, но вот мой маленький вклад. Основываясь на предыдущих ответах, я сделал простой скрипт 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! Да хвалится сценарий! enter image description here

0
ответ дан 3 February 2019 в 19:02

Установите acpi, затем используйте watch для непрерывного мониторинга через командную строку.

, например,

watch --interval=5 acpi -V

покажет информацию, подобную приведенной ниже, и будет обновляться каждые 5 секунд.

Батарея 0: полная, 100%, информация о скорости недоступна
Батарея 0: расчетная емкость 6000 мАч, последняя полная емкость 3424 мАч = 57%

Вопрос зачем кому-то это делать? Ну, у меня есть ноутбук с битым ЖК-экраном, который я сейчас использую в качестве своего битторрента.

0
ответ дан 3 February 2019 в 19:02

Может быть, вы можете попробовать:

cat /proc/acpi/battery/BAT0/state

cat /proc/acpi/battery/BAT0/info

0
ответ дан 3 February 2019 в 19:02

Благодаря @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/%//
0
ответ дан 3 February 2019 в 19:02

Дружеское напоминание : поскольку ядро ​​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
0
ответ дан 3 February 2019 в 19:02

Достаточно набрать команду

acpi

Для получения подробной информации вы можете набрать

acpi -V [ 115]

Мне не нужно было устанавливать какие-либо пакеты раньше.

Система: Debian 7.2, 64-битная

0
ответ дан 3 February 2019 в 19:02

Сначала установите 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
0
ответ дан 3 February 2019 в 19:02

Вы можете сделать это без установки каких-либо дополнительных пакетов:

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

0
ответ дан 3 February 2019 в 19:02

Здесь - статья о пакете, который может проверить время автономной работы в командной строке.

По сути, все, что вам нужно сделать, это:

sudo apt-get install acpi
acpi -V
0
ответ дан 3 February 2019 в 19:02

Выполните следующую команду в терминале для получения подробной информации:

cat /proc/acpi/battery/BAT0/info

Если вы просто хотите, чтобы состояние делало:

cat /proc/acpi/battery/BAT0/state
0
ответ дан 3 February 2019 в 19:02

Другие вопросы по тегам:

Похожие вопросы: