Вопрос Как проверить состояние батареи с помощью терминала?


Мне нужна команда, которая проверяет состояние батареи через терминал


269
2017-10-20 01:24


происхождения


$ upower -i $(upower -e | grep 'BAT') | grep -E "state|to\ full|percentage" - Jake Berger


ответы:


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


282
2018-02-09 17:42



upower --enumerate может быть полезна, если вы не знаете, как использовать upower, - landroni
@landroni И сокращенный вариант upower -e, эта команда перечисляет доступные пути для upower -i ..., Если вы ленивы и хотите получить список всех устройств, используйте upower -d (upower --dump). - Lekensteyn
В самом деле. Я думаю, что это было бы полезным дополнением к самому ответу, так как когда я впервые попытался использовать upower Я сразу заблудился. - landroni
@landroni Хорошая мысль, я обновил ответ. Не стесняйтесь редактировать его, если у вас есть больше связанных дополнений. - Lekensteyn
Еще один лайнер может быть upower -i $(upower -e | grep BAT) | grep --color=never -E "state|to\ full|to\ empty|percentage" - Wilf


Дружелюбное напоминание: поскольку ядро ​​Linux 2.6.24 с помощью /proc для хранения информации ACPI обескураженный а также осуждается,

Теперь нам рекомендуется использовать -> /sys/class/power_supply/BAT0,

UPDATE: Linux 3.19 и далее, мы должны посмотреть на следующий каталог -> /sys/class/power_supply/BAT1/

Например емкость -> cat /sys/class/power_supply/BAT1/capacity статус -> cat /sys/class/power_supply/BAT1/status


99
2018-06-17 08:35



В частности, /sys/class/power_supply/BAT0/capacity похоже, показывает текущий процент заряда. - thomasa88
Устаревшие ... он все еще работает? - neverMind9


Сначала установите acpi выполнив эту команду,

sudo apt-get install acpi

Затем выполните:

acpi

Пример вывода:

Battery 0: Discharging, 61%, 01:10:12 remaining

Или для более подробного вывода, который постоянно обновляется:

watch --interval=5 acpi -V

Вывод:

Каждые 5,0 секунд: acpi -V Wed Jan 8 15:45:35 2014

Батарея 0: полная, 100%
Адаптер 0: он-лайн
Термальный 0: нормально, 44,0 градусов C
Thermal 0: точка отключения 0 переключается в режим, критический при температуре 127,0 градусов C
Thermal 0: точка отключения 1 переключается в режим горячий при температуре 127,0 градусов C
Охлаждение 0: intel_powerclamp информация о состоянии отсутствует
Охлаждение 1: pkg-temp-0 информация о состоянии отсутствует
Охлаждение 2: ЖК-дисплей 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

59
2017-11-24 20:20





Благодаря @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/%//

26
2017-07-02 08:56



На Fedora 23 Мне пришлось battery вместо BAT чтобы он работал. Я обнаружил, что с upower --enumerate, - erik
grep для battery работает в Ubuntu тоже, поэтому я изменил его с BAT - rubo77


Достаточно ввести команду

acpi

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

acpi -V

Раньше мне не приходилось устанавливать какие-либо пакеты.

система: Debian 7.2 64bit


23
2017-07-26 14:36





Возможно, вы можете попробовать:

cat /proc/acpi/battery/BAT0/state

cat /proc/acpi/battery/BAT0/info


15
2017-10-20 05:36



с помощью /proc для хранения информации ACPI была отклонена и устарела с 2.6.24. Теперь он находится в /sys/class/power_supply/BAT0, - Terry Wang


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

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

sudo apt-get install acpi
acpi -V

15
2018-06-10 04:57





Я немного опаздываю на вечеринку, но вот мой небольшой вклад. Основываясь на предыдущих ответах, я создал простую скриптовую силу:

#!/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 to / 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 

Как всегда, обратите внимание на пространства с bash. Это все понятно. Если аккумулятор присутствует, он будет отображаться, если нет - сценарий скажет вам об этом. Теперь перейдите в ваш .bashrc-файл и добавьте $ (batpower) в свою подсказку. Вот мой promt:

PS1='[$(batpower)]\n${debian_chroot:+($debian_chroot)}[*\u@Ubuntu*]:\w\$ ' 

Обновите терминал или откройте новую вкладку или окно, и теперь вы можете постоянно контролировать заряд батареи в терминале! включая tty! Пусть будут приветствоваться сценарии! enter image description here


11
2017-07-23 03:23



Вам нужно проверить /sys/class/power_supply/BAT0 а также /sys/class/power_supply/BAT1 Это может быть и то. И вы должны использовать этот путь (/sys/class/power_supply/BAT#). - dylnmc
В моем нетбуке Ubuntu 12.04 (после перехода на BAT0), похоже, у меня нет линии POWER_SUPPLY_CAPACITY. Похоже, я мог вычислить его, начиная с значений POWER_SUPPLY_CHARGE_FULL и POWER_SUPPLY_CHARGE_NOW. - mwfearnley


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

cat /proc/acpi/battery/BAT0/info

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

cat /proc/acpi/battery/BAT0/state

9
2018-04-19 12:20



Да, это сработало :) Спасибо! - infoquad