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

Недавно я столкнулся с этой проблемой при обновлении с Lubuntu 12.04 до 13.04, хотя я (возможно, по глупости) фактически создал новую учетную запись пользователя с тем же именем, но с другим паролем. Мне пришлось войти в TTY1 с моим новым паролем и запустить ecryptfs-mount-private, используя старую фразу-пароль , прежде чем я смог войти.

Не уверен, поможет ли это в вашем случае, но удалось решить проблему, перефразировав фразу-пароль ( источник ):

ecryptfs-rewrap-passphrase /home/.ecryptfs/$USER/.ecryptfs/wrapped-passphrase

После этого у меня не возникло проблем с отсутствием моей подписи в связке ключей; Я могу просто войти через графический интерфейс без каких-либо хлопот.

Надеюсь, это поможет!

306
задан 04.02.2019, 04:02

19 ответов

cat /proc/acpi/ac_adapter/AC/state
0
ответ дан 24.04.2019, 11:19
  • 1
    не уверенный, что you' ре, говорящее о здесь. выполнение его в терминале дало cat: /proc/acpi/ac_adapter/AC0/state: No such file or directory – fabian789 20.04.2011, 02:06

Приведенная ниже команда выводит много информации о состоянии и статистике батареи. Путь /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
ответ дан 24.04.2019, 11:19
  • 1
    upower --enumerate может быть полезным, если Вы не уверены, как использовать upower. – Ahmed 20.02.2014, 10:50
  • 2
    @landroni И опция стенографии upower -e, что списки команд доступные пути для upower -i .... Если Вы ленивы и просто хотите список всех устройств, используйте upower -d (upower --dump). – Revelation A.F 20.02.2014, 21:57
  • 3
    Действительно. Я думаю, что это было бы полезным дополнением к самому ответу, как тогда, когда я сначала пытался использовать upower, я сразу заблудился. – iBug 20.02.2014, 22:50
  • 4
    Положительная сторона @landroni, я обновил ответ. Не стесняйтесь редактировать его при больше связи дополнений. – MarGin 21.02.2014, 12:41
  • 5
    Другая острота могла быть upower -i $(upower -e | grep BAT) | grep --color=never -E "state|to\ full|to\ empty|percentage" – Dima Rostopira 07.06.2014, 11:27

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

$ 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
ответ дан 24.04.2019, 11:19

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

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

65%

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

0
ответ дан 24.04.2019, 11:19

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

0
ответ дан 24.04.2019, 11:19

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

#!/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
ответ дан 24.04.2019, 11:19

Аналогичный скрипт без 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
ответ дан 24.04.2019, 11:19

Я собирался предложить acpi, но после прочтения, что он не работает в 11.10, у меня появилась идея.

Пожалуйста, введите это в своем терминале: ls /proc/acpi/battery/BAT0 или BAT1

Если вы получили «файл или каталог не найден», то это не сработает.

Но, если он перечисляет файлы, то вот скрипт [вставьте его в / usr / games / или другой каталог в $ PATH и запустите sudo chmod +x /usr/games/batterypercent, или как вы его называете] [119 ], который я только что написал для вас, который даст вам приблизительный процент заряда батареи [см. ниже]:

(Обратите внимание, если программа еще не установлена, установите программу 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)

0
ответ дан 24.04.2019, 11:19

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

, например,

watch --interval=5 acpi -V

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

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

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

0
ответ дан 24.04.2019, 11:19

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

cat /sys/class/power_supply/BAT0/capacity
0
ответ дан 24.04.2019, 11:19

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

$ 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
ответ дан 24.04.2019, 11:19
  • 1
    +1 от меня! CLI FTW. Если у Вас есть 2 battery' s изменяют BAT0 для BAT1:) – Stephen P 10.06.2011, 21:31
  • 2
    Препятствуют, с тех пор 2.6.24, мы должны использовать /sys/class/power_supply/BAT0/ – womp 27.02.2019, 10:35

Я немного опоздал на вечеринку, но вот мой маленький вклад. Основываясь на предыдущих ответах, я сделал простой скрипт 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
ответ дан 24.04.2019, 11:19
  • 1
    Необходимо проверить на /sys/class/power_supply/BAT0 и /sys/class/power_supply/BAT1... Это может быть также. И необходимо использовать тот путь (/sys/class/power_supply/BAT#). – André Caron 09.11.2015, 04:09
  • 2
    В моем нетбуке Ubuntu 12.04 (после изменения на BAT0), я don' t, кажется, получают строку POWER_SUPPLY_CAPACITY. Похоже, что я мог вычислить его, хотя, от POWER_SUPPLY_CHARGE_FULL и POWER_SUPPLY_CHARGE_NOW оценивает. – thomasrutter 27.12.2016, 03:46

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

cat /proc/acpi/battery/BAT0/state

cat /proc/acpi/battery/BAT0/info

0
ответ дан 24.04.2019, 11:19
  • 1
    использованию /proc для хранения информации ACPI препятствовали и удерживали от использования с тех пор 2.6.24. Теперь it' s в /sys/class/power_supply/BAT0. – mplungjan 17.06.2013, 22:34

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

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

sudo apt-get install acpi
acpi -V
0
ответ дан 24.04.2019, 11:19

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

acpi

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

acpi -V [ 115]

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

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

0
ответ дан 24.04.2019, 11:19

Благодаря @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
ответ дан 24.04.2019, 11:19
  • 1
    На Fedora 23 я имел к grep для battery вместо BAT, чтобы заставить его работать. Я нашел это с upower --enumerate. – Greg Brown 27.08.2016, 12:45
  • 2
    grep для battery работы в Ubuntu также, таким образом, я изменил его от BAT – Greg Brown 07.02.2018, 13:11

Сначала установите 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
ответ дан 24.04.2019, 11:19

Дружеское напоминание : поскольку ядро ​​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
ответ дан 24.04.2019, 11:19
  • 1
    А именно, /sys/class/power_supply/BAT0/capacity, кажется, показывает текущий процент заряда. – Ravindra babu 07.08.2018, 00:09
  • 2
    Deprecated†¦ это все еще работает? – Dheeraj V.S. 29.08.2018, 05:21
  • 3
    +1, это должно быть принятым ответом, начиная с него doesn' t полагаются на дополнительное программное обеспечение, которое не могло бы быть установлено и не нужно для ответа на этот вопрос. @neverMind9: Я don' t знают то, что Вы имеете в виду /proc, удерживается от использования, но /sys работы отлично для меня, даже в ядре 4.20. – David Wasser 16.01.2019, 05:20
  • 4
    Работы @comfreak для меня также, на самом деле. – Manmohan Soni 16.01.2019, 13:28
  • 5
    Terry, возможно, на Arch они запускают с BAT1, но кажется, что на Ubuntu всегда BAT0, по крайней мере, в наше время, и AFAIK, почти все портативные устройства используют всего одну батарею (я don' t знают, почему acpi -b или acpitool -B производит три). – Matt Lacey 27.02.2019, 13:17

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

cat /proc/acpi/battery/BAT0/info

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

cat /proc/acpi/battery/BAT0/state
0
ответ дан 24.04.2019, 11:19

Теги

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