답변:
아래 명령은 배터리에 대한 로트 상태 및 통계 정보를 출력합니다. /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"
친절한 알림 : 리눅스 커널부터 2.6.24 사용하여 /proc
ACPI 정보를 저장하기 위해이되어 낙담 하고 사용되지 .
이제->를 사용하는 것이 좋습니다 /sys/class/power_supply/BAT0
.
업데이트 : Linux 3.19 이상에서는 다음 디렉토리를 봐야합니다-> /sys/class/power_supply/BAT1/
예를 들어 Linux 4.20을 실행하는 Arch Linux에서 용량 및 상태 확인->
# 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.0 초마다 : acpi -V 수 1 월 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 of 100 냉각 3 : LCD 100 of 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 덕분에 Lenovo Yoga 720의 Ubuntu 17.10에서 작동합니다.
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
우분투에서도 작품에 대한 grep , 그래서 나는 그것을 변경했습니다BAT
아마도 당신은 시도 할 수 있습니다 :
cat /proc/acpi/battery/BAT0/state
cat /proc/acpi/battery/BAT0/info
/proc
2.6.24 이후 ACPI 정보를 저장 하는 데 사용 하지 않는 것이 권장되지 않습니다. 이제에 /sys/class/power_supply/BAT0
있습니다.
나는 파티에 조금 늦었지만 여기에 약간의 기여가 있습니다. 이전 답변을 기반으로 간단한 스크립트 배트를 만들었습니다.
#!/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로 cd하거나 Lepowersteyn이 upower -e를 통해 언급 한 것처럼 항상 찾을 수 있습니다
내 기계 : 우분투 13.10, 3.11.0
교체 BAT1을 위 bash는 코드에서 BAT0 당신이 우분투 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 포함! 스크립팅이 칭찬 되길 바랍니다!
/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%
이 명령은 byobu의 source 에서 해제되었습니다 . Bash 별명에 적합한 후보 일 수 있습니다 .
/sys/class/power_supply/BAT0/
자세한 정보를 얻으려면 터미널에서 다음 명령을 실행하십시오.
cat /proc/acpi/battery/BAT0/info
당신이 상태를 원한다면 :
cat /proc/acpi/battery/BAT0/state
나는 제안하려고 acpi
했지만 11.10에서 작동하지 않으면 아이디어가있었습니다.
터미널에 이것을 입력하십시오 :
ls /proc/acpi/battery/BAT0
또는BAT1
"파일 또는 디렉토리를 찾을 수 없음"이 표시되면 작동하지 않습니다.
이 파일을 나열하지만, 여기에 스크립트의 [$ 경로는 / usr / 게임 / 또는 다른 디렉토리에 붙여, 실행 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 %의 배터리를 표시합니다, 그래서 당신의 GUI 배터리 비율에 대해이 스크립트를 시도하고 그것이 얼마나 떨어져 참조하십시오. 제 경우에는 acpi의 백분율보다 일관되게 3 % 더 낮은 것 같습니다. 이 경우 마지막 줄 바로 앞에이 줄을 추가 할 수 있습니다. percent=$((percent + 3))
여기서 "3"은 낮은 비율입니다.
** 레노버에서 배터리는 BAT1으로 표시됩니다. (12.04 LTS)
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"
여기 내가 사용하는 것이 있습니다. 완전 충전과 현재 충전의 차이점을 살펴보고 충전이 중단되는지 확인하고 어떤 경우에 notify를 사용하여 사용자에게 경고합니다.
#!/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
$ upower -i $(upower -e | grep 'BAT') | grep -E "state|to\ full|percentage"