मैं टर्मिनल के माध्यम से बैटरी की स्थिति की जांच कैसे करूं?


320

मैं एक कमांड चाहता हूं जो टर्मिनल में बैटरी की स्थिति प्रदर्शित करता है।


29
$ upower -i $(upower -e | grep 'BAT') | grep -E "state|to\ full|percentage"
जेक बर्गर

जवाबों:


335

नीचे दिए गए आदेश बैटरी के बारे में बहुत अधिक स्थिति और सांख्यिकीय जानकारी का उत्पादन करते हैं। /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%

यदि आप अक्सर उस कमांड को चलाना चाहते हैं, तो आप पूरे कमांड के लिए बैश उर्फ ​​बना सकते हैं। उदाहरण:

alias bat='upower -i /org/freedesktop/UPower/devices/battery_BAT0| grep -E "state|to\ full|percentage"'

अपनी .bashrc फ़ाइल के अंत में उसे जोड़ें, और आप टर्मिनल में किसी भी समय 'बैट' टाइप कर सकते हैं।

एक upower -d( --dump) कमांड भी है जो सभी उपलब्ध बिजली संसाधनों जैसे लैपटॉप बैटरी, बाहरी चूहों, आदि के लिए जानकारी दिखाता है।


9
upower --enumerateउपयोगी हो सकता है अगर आप सुनिश्चित नहीं हैं कि कैसे उपयोग करें upower
लैंड्रोनी

5
@landroni और आशुलिपि विकल्प है upower -e, कि कमांड के लिए उपलब्ध रास्तों को सूचीबद्ध करता है upower -i ...। यदि आप आलसी हैं और बस सभी उपकरणों की सूची चाहते हैं, तो उपयोग करें upower -d( upower --dump)।
लेकेनस्टाइन

1
वास्तव में। मुझे लगता है कि यह उत्तर के लिए एक उपयोगी जोड़ होगा, क्योंकि जब मैंने पहली बार उपयोग करने की कोशिश की तो upowerमैं तुरंत खो गया।
लैंड्रोनी

1
@landroni अच्छा बिंदु, मैंने जवाब अपडेट कर दिया है। यदि आपके पास अधिक संबंधित जोड़ हैं, तो इसे संपादित करने के लिए स्वतंत्र महसूस करें।
Lekensteyn

8
एक और वन-लाइनर हो सकता हैupower -i $(upower -e | grep BAT) | grep --color=never -E "state|to\ full|to\ empty|percentage"
विल्फ

124

एक दोस्ताना अनुस्मारक : के बाद से लिनक्स कर्नेल 2.6.24 का उपयोग कर /procACPI जानकारी स्टोर करने के लिए किया गया है हतोत्साहित और पदावनत

अब हमें उपयोग करने के लिए प्रोत्साहित किया जाता है -> /sys/class/power_supply/BAT0

अद्यतन: लिनक्स 3.19 और इसके बाद, हम निम्नलिखित निर्देशिका -> को देखना चाहिए /sys/class/power_supply/BAT1/

उदाहरण के लिए आर्कन लिनक्स पर चलने वाले लिनक्स 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

1
विशेष रूप से, /sys/class/power_supply/BAT0/capacityवर्तमान चार्ज प्रतिशत दिखाने के लिए लगता है।
thomasa88

पदावनत ... क्या यह अभी भी काम करता है?
neverMind9

3
+1, यह स्वीकृत उत्तर होना चाहिए, क्योंकि यह अतिरिक्त सॉफ़्टवेयर पर भरोसा नहीं करता है जो स्थापित नहीं किया जा सकता है और इस प्रश्न का उत्तर देने की आवश्यकता नहीं है। @ neverMind9: मुझे नहीं पता कि आपका क्या मतलब /procहै कि वह पदावनत है लेकिन /sysमेरे लिए पूरी तरह से काम करता है, यहां तक ​​कि कर्नेल 4.20 में भी।
कॉमफ्रीक

1
@comfreak मेरे लिए भी काम करता है, वास्तव में।
neverMind9

1
न केवल यह एसेकटर उत्तर होना चाहिए, बल्कि डेटा को पुनः प्राप्त करना किसी भी प्रोग्रामिंग भाषा का उपयोग करके प्राप्त किया जा सकता है read, जिसमें PHP में एक फ़ंक्शन है जो $capacity = trim(file_get_contents("/sys/class/power_supply/BAT0/capacity"));इसे सुपर आसान बनाता है और किसी भी बाहरी निर्भरता पर निर्भर नहीं है।
अमीन NAIRI

67

acpiइस कमांड को चलाकर पहले स्थापित करें,

sudo apt-get install acpi

तो भागो:

acpi

नमूना उत्पादन:

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

या लगातार अद्यतन करने वाले अधिक वर्बोज़ आउटपुट के लिए:

watch --interval=5 acpi -V

आउटपुट:

हर 5.0s: acpi -V बुध जनवरी 8 15:45:35 2014

बैटरी 0: पूर्ण, 100%
एडाप्टर 0: ऑन-लाइन
थर्मल 0: ठीक है, 44.0 डिग्री सेल्सियस
थर्मल 0: ट्रिप प्वाइंट 0 स्विच तापमान 127.0 डिग्री सेल्सियस पर महत्वपूर्ण मोड में आता है
थर्मल 0: ट्रिप पॉइंट 1 स्विच 127.0 डिग्री सेल्सियस तापमान पर गर्म होता है
कूलिंग 0: Intel_powerclamp कोई राज्य जानकारी उपलब्ध नहीं है
कूलिंग 1: pkg-temp-0 कोई राज्य जानकारी उपलब्ध नहीं है
कूलिंग 2: एलसीडी 100 की 100
कूलिंग 3: एलसीडी 100 की 100
कूलिंग 4: 10 का प्रोसेसर 0
कूलिंग 5: 10 का प्रोसेसर 0
कूलिंग 6: 10 का प्रोसेसर 0
कूलिंग 7: 10 का प्रोसेसर 0
कूलिंग 8: 10 का प्रोसेसर 0
कूलिंग 9: 10 का प्रोसेसर 0
कूलिंग 10: प्रोसेसर 10 का 0
कूलिंग 11: 10 का प्रोसेसर 0

29

@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/%//

पर फेडोरा 23 मैं के लिए grep पड़ा batteryबजाय BATयह काम करने के लिए। मुझे वह मिल गया upower --enumerate
एरिक

batteryउबंटू में भी काम के लिए grep , तो मैं इसे से बदल दियाBAT
rubo77

28

यह कमांड टाइप करने के लिए पर्याप्त है

acpi

विस्तृत जानकारी के लिए आप टाइप कर सकते हैं

acpi -V

मुझे पहले कोई पैकेज स्थापित नहीं करना था।

सिस्टम: डेबियन 7.2 64 बिट


19

यहां एक पैकेज पर एक लेख है जो कमांड लाइन पर आपकी बैटरी जीवन की जांच कर सकता है।

मूल रूप से, आपको बस इतना करना है:

sudo apt-get install acpi
acpi -V

18

शायद आप कोशिश कर सकते हैं:

cat /proc/acpi/battery/BAT0/state

cat /proc/acpi/battery/BAT0/info


23
/procस्टोर करने के लिए उपयोग ACPI जानकारी 2.6.24 के बाद से हतोत्साहित और पदावनत किया गया है। अब इसमें है /sys/class/power_supply/BAT0
टेरी वैंग

14

मैं पार्टी में थोड़ा लेट हूं लेकिन यहां मेरा थोड़ा योगदान है। पिछले उत्तरों के आधार पर, मैंने एक साधारण स्क्रिप्ट बैटपावर बनाई है:

#!/bin/bash
# Description: Battery  charge in percentage

grep POWER_SUPPLY_CAPACITY /sys/class/power_supply/BAT1/uevent

इसे निष्पादित करने के लिए आउटपुट (.batpower) कुछ इस तरह से होने वाला है:

POWER_SUPPLY_CAPACITY=23

NB: batery नंबर आपके लिए अलग हो सकता है, मेरे मामले में यह BAT1 है, लेकिन आप इसे हमेशा cd'ing / sys / class / power_supply द्वारा या Lekensteyn के रूप में upower -e के माध्यम से उल्लेख कर सकते हैं

मेरी मशीन: उबंटू 13.10, 3.11.0

बदलें BAT1 के लिए ऊपर बैश कोड में 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 

हमेशा की तरह, बैश के साथ रिक्त स्थान पर ध्यान दें। यह सब आत्म व्याख्यात्मक है। यदि बैटरी मौजूद है, तो यह दिखाई देगा, यदि नहीं - स्क्रिप्ट आपको बताएगी। अब, अपने .bashrc फ़ाइल पर जाएं और अपने प्रॉम्प्ट में $ (बैटपावर) जोड़ें। यहाँ मेरा प्रोमो है:

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#) का उपयोग करना चाहिए ।
16

मेरे Ubuntu 12.04 नेटबुक में (BAT0 में बदलने के बाद), मुझे एक POWER_SUPPLY_CAPACITY लाइन नहीं मिल रही है। ऐसा लगता है कि मैं इसकी गणना हालांकि, POWER_SUPPLY_CHARGE_FULL और POWER_SUPPLY_CHARGE_NOW मानों से कर सकता हूं।
mwfearnley

Upvoted लेकिन बैटमैन (बैटरी मैनेजर) अवचेतन रूप से बैटरपॉवर की तुलना में इसके पास एक अच्छा रिंग है :) एक गंभीर नोट पर यह दिलचस्प है कि आप 2014 में AskUbuntu में लिख रहे थे और आज आप कितने अलग हैं।
विनयुनुच्स

@ WinEunuuuchs2Unix हाँ, जब से मैंने शुरुआत की है, मैंने कुछ नई चालें सीखी हैं। बैटमैन के पास एक अच्छी रिंग होगी लेकिन यह कॉपीराइट होने की संभावना है;)
सर्जियो कोलोडियाज़नी

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%

यह आदेश बायोबू के स्रोत से उठाया गया है । यह एक बैश उर्फ ​​के लिए एक अच्छा उम्मीदवार हो सकता है ।


मुझ से +1! सीएलआई FTW। यदि आपके पास BAT1 के लिए 2 बैटरी का परिवर्तन BAT0 है :)
Rinzwind

2.6.24 के बाद से हतोत्साहित किया जाता है, हम का उपयोग करना चाहिए/sys/class/power_supply/BAT0/
पाब्लो एक

9

विस्तृत जानकारी प्राप्त करने के लिए टर्मिनल में निम्नलिखित कमांड चलाएँ:

cat /proc/acpi/battery/BAT0/info

यदि आप सिर्फ राज्य करना चाहते हैं:

cat /proc/acpi/battery/BAT0/state

यह अन्य समान जवाब में हतोत्साहित किया गया है
पाब्लो ए

6

एसपीआई स्थापित करें, फिर watchथ्रू कमांड लाइन को लगातार मॉनिटर करने के लिए उपयोग करें।

उदाहरण के लिए

watch --interval=5 acpi -V

नीचे दी गई जानकारी दिखाएंगे और हर 5 सेकंड में अपडेट करेंगे।

बैटरी 0: पूर्ण, 100%, दर जानकारी अनुपलब्ध
बैटरी 0: डिज़ाइन क्षमता 6000 mAh, अंतिम पूर्ण क्षमता 3424 mAh =%

सवाल यह है कि कोई ऐसा क्यों करेगा? खैर, मेरे पास टूटी हुई एलसीडी स्क्रीन के साथ एक लैपटॉप है जिसे अब मैं अपने बिटोरेंट बॉक्स के रूप में उपयोग कर रहा हूं।


5

इसने ubuntu 14.04 में मेरे लिए काम किया:

cat /sys/class/power_supply/BAT0/capacity

4

मैं सुझाव देने जा रहा था acpiलेकिन पढ़ने के बाद यह 11.10 में काम नहीं कर रहा था, मुझे एक विचार था।

कृपया इसे अपने टर्मिनल में टाइप करें: ls /proc/acpi/battery/BAT0 याBAT1

यदि आपको "फ़ाइल या निर्देशिका नहीं मिली है" तो यह काम नहीं कर रहा है।

लेकिन, अगर यह फाइलों को सूचीबद्ध करता है, तो यहां एक स्क्रिप्ट [इसे पेस्ट करें / यूएसआर / गेम्स / या अन्य निर्देशिका में $ पीएटीएच, और चलाएं 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)%

मैंने अपने लैपटॉप पर इस स्क्रिप्ट का परीक्षण किया है। मैं कहता हूं कि अनुमान ऊपर है क्योंकि acpi93% बैटरी दिखाता है, और मेरी स्क्रिप्ट 90% बैटरी दिखाती है, इसलिए इस स्क्रिप्ट को अपने GUI बैटरी प्रतिशत के खिलाफ आज़माएं, और देखें कि यह कैसे बंद है। मेरे मामले में, यह एसपीआई के प्रतिशत से लगातार 3% कम है। उस स्थिति में, आप अंतिम पंक्ति से ठीक पहले इस पंक्ति को जोड़ सकते हैं: percent=$((percent + 3))जहाँ "3" वह प्रतिशत है जो इसके द्वारा कम है।

** मेरे लीनोवो में, बैटरी को बैट 1 के रूप में सूचीबद्ध किया गया है, वह भी कोशिश करें। (12.04 एलटीएस)


मैट, आपके सुझाव की कोशिश की, एक "कोई फ़ाइल या निर्देशिका" नहीं मिला
जो

अर्घ .. ठीक है, मैं लगभग सकारात्मक हूं यही कारण है किacpi यह काम नहीं करता है, क्योंकि मुझे लगता है कि 11.10 आपके लैपटॉप के एसीपीआई कार्यों के साथ-साथ [बैटरी, आदि] का समर्थन नहीं करता है। मुझे लगता है कि मैंने अतीत में अपग्रेड करते समय कुछ ऐसा अनुभव किया है। मैं अभी भी 11.04 पर हूं। खेद है कि यह फिर से काम नहीं किया :(
मैट

तो, बस जिज्ञासु, आप के उत्पादन पेस्ट कर सकते हैं ls /proc/acpi/? धन्यवाद
मैट

1

कैल्क या एपैक के बिना समान स्क्रिप्ट:

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

1

यहाँ मैं क्या उपयोग है। यह सिर्फ फुल चार्ज और करंट चार्ज के बीच के अंतर को देखता है और साथ ही यह भी देखता है कि यह चार्ज किस स्थिति में ड्रॉप हो रहा है।

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

1

हम उस आदेश के साथ केवल प्रतिशत को प्रतिध्वनित कर सकते हैं

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

65%

अगर आपको उस मूल्य को निकालने की आवश्यकता है


0

यह हर किसी की मदद नहीं करेगा, लेकिन इसने मुझे किया - जब भी मैं टर्मिनल का उपयोग कर रहा होता हूं, तब मैं बायोबू का उपयोग करता हूं, और बैटरी स्टेटस नोटिफिकेशन बार के विकल्पों में से एक है।


0

आप या तो टाइप कर सकते हैं:

$ 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

-4
cat /proc/acpi/ac_adapter/AC/state

3
यकीन नहीं हो रहा है कि आप यहाँ क्या बात कर रहे हैं। टर्मिनल में इसे चलाने के लिएcat: /proc/acpi/ac_adapter/AC0/state: No such file or directory
infoquad
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.