如何在Linux中检查笔记本电池状态和级别
在GUI模式下找到笔记本电池状态很容易。
通过将鼠标指针悬停在任务/顶杆中的电池指示灯上,可以轻松地告诉电池电平。
但是,来自命令行怎么样?
不是每个人都知道这个。
前一天,我的一位朋友询问如何从他的Ubuntu桌面终端检查他的笔记本电池电量,因此这篇文章。
其中我包含了五种简单的方法,可以在任何Linux发行版中检查终端中的笔记本电池状态和电平。
检查Linux终端的笔记本电池状态和级别
我们可以通过多种方法从命令行找到笔记本电池状态。
以下是几种方式。
方法1 - 使用"upowere"命令
UpowErd命令用大多数Linux发行版预装。
要使用upower显示电池状态,请打开终端并运行:
$upower -i /org/freedesktop/UPower/devices/battery_BAT0
示例输出:
native-path: BAT0 vendor: Samsung SDI model: DELL 7XFJJA2 serial: 4448 power supply: yes updated: Tuesday 01 October 2019 12:50:41 PM IST (101 seconds ago) has history: yes has statistics: yes battery present: yes rechargeable: yes state: fully-charged warning-level: none energy: 33.4443 Wh energy-empty: 0 Wh energy-full: 33.4443 Wh energy-full-design: 48.84 Wh energy-rate: 0.0111 W voltage: 12.446 V percentage: 100% capacity: 68.4773% technology: lithium-ion icon-name: 'battery-full-charged-symbolic'
如上所述,我的电池现在完全充电,电池电量为100%。
如果上面的命令没有任何原因工作,请尝试以下命令:
$upower -i `upower -e | grep 'BAT'`
示例输出:
native-path: BAT0 vendor: Samsung SDI model: DELL 7XFJJA2 serial: 4448 power supply: yes updated: Tuesday 01 October 2019 12:54:41 PM IST (48 seconds ago) has history: yes has statistics: yes battery present: yes rechargeable: yes state: fully-charged warning-level: none energy: 33.4443 Wh energy-empty: 0 Wh energy-full: 33.4443 Wh energy-full-design: 48.84 Wh energy-rate: 0.0111 W voltage: 12.446 V percentage: 100% capacity: 68.4773% technology: lithium-ion icon-name: 'battery-full-charged-symbolic'
Upower不仅仅显示电池状态,还可以显示已安装电池的完整细节,如型号,供应商名称,串行编号,状态,电压等。
我们还可以通过俯卧位和Grep命令的组合显示电池的状态,如下所示。
$upower -i $(upower -e | grep BAT) | grep --color=never -E "state|to\ full|to\ empty|percentage"
示例输出:
state: fully-charged percentage: 100
如上所述,我的笔记本电池已充满电。
有关更多详细信息,请参阅Man页面。
$man upower
方法2 - 使用"acpi"命令
ACPI命令显示Linux发行版中的电池状态和其他ACPI信息。
我们可能需要在某些Linux发行版中安装ACPI命令。
关于Arch Linux及其衍生品:
$sudo pacman -S acpi
在Debian,Ubuntu及其衍生品上安装ACPI:
$sudo apt-get install acpi
关于Rhel,Centos,Fedora:
$sudo yum install acpi
或者,
$sudo dnf install acpi
一旦安装了ACPI,运行以下命令:
$acpi -V
注意:其中"v"是大写字母。
示例输出:
Battery 0: Discharging, 98%, 01:43:14 remaining Battery 0: design capacity 4400 mAh, last full capacity 3013 mAh = 68% Battery 1: Discharging, 0%, rate information unavailable Adapter 0: off-line Thermal 0: ok, 60.5 degrees C Thermal 0: trip point 0 switches to mode critical at temperature 84.0 degrees C Cooling 0: Processor 0 of 3 Cooling 1: intel_powerclamp no state information available Cooling 2: Processor 0 of 3 Cooling 3: x86_pkg_temp no state information available Cooling 4: Processor 0 of 3 Cooling 5: LCD 0 of 15 Cooling 6: Processor 0 of 3
只检查电池充电状态。
为此,运行:
$acpi
示例输出:
Battery 0: Discharging, 98%, 01:48:14 remaining Battery 1: Discharging, 0%, rate information unavailable
检查电池温度:
$acpi -t
示例输出:
Thermal 0: ok, 58.5 degrees C
我们可以使用-f标志查看Fahrenheit中的上述输出:
$acpi -t -f
示例输出:
Thermal 0: ok, 144.5 degrees F
想知道是否连接了交流电源?
简单的!只需运行以下命令:
$acpi -a
示例输出:
Adapter 0: on-line
如果不可用交流电源,我们将看到以下输出:
Adapter 0: off-line
有关更多详细信息,请检查man 页面。
$man acpi
方法3:使用"cat"和"find"命令
我们可以使用CAT并查找命令来显示电池详细信息。
只要知道电池容量,运行:
$cat /sys/class/power_supply/BAT0/capacity
示例输出:
89
其中我的电池水平为89%。
有关电池的所有详细信息,该命令将是:
$find /sys/class/power_supply/BAT0/-type f | xargs -tn1 cat
示例输出:
cat /sys/class/power_supply/BAT0/uevent POWER_SUPPLY_NAME=BAT0 POWER_SUPPLY_STATUS=Discharging POWER_SUPPLY_PRESENT=1 POWER_SUPPLY_TECHNOLOGY=Li-ion POWER_SUPPLY_CYCLE_COUNT=0 POWER_SUPPLY_VOLTAGE_MIN_DESIGN=11100000 POWER_SUPPLY_VOLTAGE_NOW=11646000 POWER_SUPPLY_CURRENT_NOW=1905000 POWER_SUPPLY_CHARGE_FULL_DESIGN=4400000 POWER_SUPPLY_CHARGE_FULL=3013000 POWER_SUPPLY_CHARGE_NOW=2696000 POWER_SUPPLY_CAPACITY=89 POWER_SUPPLY_CAPACITY_LEVEL=Normal POWER_SUPPLY_MODEL_NAME=DELL 7XFJJA2 POWER_SUPPLY_MANUFACTURER=Samsung SDI POWER_SUPPLY_SERIAL_NUMBER= 4448 cat /sys/class/power_supply/BAT0/charge_full_design 4400000 cat /sys/class/power_supply/BAT0/serial_number 4448 cat /sys/class/power_supply/BAT0/technology Li-ion cat /sys/class/power_supply/BAT0/current_now 1905000 cat /sys/class/power_supply/BAT0/charge_now 2696000 cat /sys/class/power_supply/BAT0/present 1 cat /sys/class/power_supply/BAT0/power/runtime_active_time 0 cat /sys/class/power_supply/BAT0/power/runtime_active_kids 0 cat /sys/class/power_supply/BAT0/power/runtime_usage 0 cat /sys/class/power_supply/BAT0/power/runtime_status unsupported cat /sys/class/power_supply/BAT0/power/autosuspend_delay_ms cat: /sys/class/power_supply/BAT0/power/autosuspend_delay_ms: Input/output error cat /sys/class/power_supply/BAT0/power/async disabled cat /sys/class/power_supply/BAT0/power/runtime_suspended_time 0 cat /sys/class/power_supply/BAT0/power/runtime_enabled disabled cat /sys/class/power_supply/BAT0/power/control auto cat /sys/class/power_supply/BAT0/manufacturer Samsung SDI cat /sys/class/power_supply/BAT0/type Battery cat /sys/class/power_supply/BAT0/charge_full 3013000 cat /sys/class/power_supply/BAT0/capacity 89 cat /sys/class/power_supply/BAT0/cycle_count 0 cat /sys/class/power_supply/BAT0/voltage_now 11646000 cat /sys/class/power_supply/BAT0/status Discharging cat /sys/class/power_supply/BAT0/alarm 0 cat /sys/class/power_supply/BAT0/model_name DELL 7XFJJA2 cat /sys/class/power_supply/BAT0/voltage_min_design 11100000 cat /sys/class/power_supply/BAT0/capacity_level Normal
方法4:使用"Batstat"程序
Batstat是一个基于小型的基于NCURSES的CLI实用程序,可在UNIX的系统中显示笔记本电池状态。
它将显示以下详细信息:
- 电流电池电量
- 目前的能量
- 全收费能源
- 从程序开始时经过的时间,而无需跟踪机器的睡眠时间。
- 电池级历史
安装Batstat
git clone使用命令克隆最新版本:
$git clone https://github.com/Juve45/batstat.git
上面的命令将提取最新的Batstat版本并将其内容保存在名为"Batstat"的文件夹中。
CD进入Batstat/Bin /目录:
$cd batstat/bin/
将"batstat"二进制文件复制到路径,例如/usr/local/bin /。
$sudo cp batstat /usr/local/bin/
使用命令使其可执行:
$sudo chmod +x /usr/local/bin/batstat
最后,运行以下命令以查看电池状态。
$batstat
示例输出:
如上所述,我的电池处于充电模式。
此实用程序有一些限制。
首先撰写本教程,Batstat只能支持一个电池。
而且,它只从此文件夹中收集信息"/sys/class/power_supply /"。
如果机器包含在不同文件夹上的电池信息,则此程序将无法正常工作。
方法5:使用"电池级CLI"程序
电池电量-CLI是另一个命令行实用程序,可在Linux中显示电池电量。
与"Batstat"程序不同,它只会显示电池电量。
它不会找到电池是否充电。
它是用NodeJS编写的,因此确保系统安装了NodeJS。
如果未安装NodeJS,请参阅以下要了解如何安装它。
- 如何在Linux上安装nodejs
一旦安装了NodeJS,请签署以下命令以安装"电池级CLI"实用程序:
$npm install --global battery-level-cli
现在,我们可以使用命令查看电池级别:
$battery-level 100%