如何從命令行檢查 Linux 筆記本電腦的電池

已發表: 2022-08-20
顯示 bash 提示符的 Linux 筆記本電腦
fatmawati achmad zaenuri/Shutterstock.com

筆記本電腦可讓您隨時隨地工作。 好吧,只要您的筆記本電腦的電池有壽命。 這是在 Linux 命令行上檢查電池的方法。

筆記本電腦電池

從交流電源適配器上拔下,您的筆記本電腦完全依賴電池供電。 如果您的電池不能勝任這項工作,那麼為屏幕供電、使用硬盤驅動器、訪問 Wi-Fi 和讀取用戶輸入都會突然停止。

製造商無法就筆記本電腦一直插電是好事還是壞事達成一致。 如果您不想這樣做,那麼當您外出時,您的筆記本電腦通常不會處於 100% 的電池充電狀態。

我應該讓我的筆記本電腦一直插著電源嗎?
相關我應該讓我的筆記本電腦一直插著電源嗎?

電池的使用壽命也會下降。 因此,舊電池無法保持與新電池相同的電量。 即使它是新的,你也不太可能得到製造商在其廣告中聲稱的內容。

知道您必須留意電池電量當然是使用筆記本電腦的重要組成部分。 這不是什麼新鮮事。 但是,如果您需要從命令行檢查電池怎麼辦?

也許您外出並使用 SSH 遠程連接到家中的筆記本電腦,但您不記得它是插上電源還是靠電池運行。 也許您將筆記本電腦用作無 GUI 的服務器或使用平鋪窗口管理器,而您沒有電池電量的屏幕顯示。

能夠在命令行中找出筆記本電腦的電源狀態意味著您也可以在腳本中包含這些技術。

使用 upower 檢查電池

upower命令可用於找出筆記本電腦可用的主電源和電池來源。 發現它們後,您可以詢問更多詳細信息。

-e (枚舉)選項列出了它可以找到的所有電源。

 超能-e 

用 upower 列出電源設備

第一個條目是 AC 適配器。 第二個是電池。 您可能會發現您的筆記本電腦中有幾塊電池。 另外,請注意,根據製造商的喜好,第一個電池有時編號為 1,有時編號為 0。

“DisplayDevice”條目不是電源。 它是一個複合設備,代表要在桌面環境中顯示的狀態圖標。

為了仔細查看我們的電池,我們將使用-i (信息)選項,並傳遞電池的完整描述符。

 upower -i /org/freedesktop/UPower/devices/battery_BAT1 

用 upower 檢查電池

最感興趣的兩項是“清空時間”值和“百分比”值。 這些指示電池可以繼續為筆記本電腦供電的持續時間,以及電池中剩餘電量的百分比。

拔下交流適配器後從 upower 輸出

需要注意的重要一點是,持續時間與筆記本電腦的當前活動有關。 如果筆記本電腦上的負載增加,則持續時間將減少。

通過 SSH 連接遠程使用我們的測試筆記本電腦意味著沒有使用筆記本電腦的內置顯示器。 它在很短的時間後自動消隱。 屏幕空白時,筆記本電腦的電池壽命比屏幕亮時長一個多小時。

如果連接了AC適配器, upower返回的信息略有不同。

 upower -i /org/freedesktop/UPower/devices/battery_BAT1 

插入交流適配器後從 upower 輸出

“Time to Empty”值已替換為“Time to Full”值,即電池達到 100% 之前的剩餘時間。 “圖標名稱”值也更改為“電池-充滿-充電-符號”,反映了市電電源的存在。

我們也可以更深入地了解交流適配器。

 upower -i /org/freedesktop/UPower/devices/line_power_ACAD 

在插入適配器的情況下,使用 upower 檢查 AC 適配器

如果交流適配器已插入,“在線”值將顯示“是”,如果拔出,則顯示“否”。

在拔下適配器的情況下,用 upower 檢查 AC 適配器

檢查 /sys/class/power_supply/ 的內容

在筆記本電腦上,“/sys/class/power_supply/”目錄包含我們可以充分利用的信息。 兩個子目錄——“ACAD”和“BAT1”——包含我們可以參考的信息來檢查電池容量和交流適配器是否插入。

請注意,在您的筆記本電腦上,電池子目錄可能稱為“BAT0”。 如果您的筆記本電腦上安裝了多個電池,您將擁有多個電池子目錄。

如果 AC 適配器已插入,則“ACAD”子目錄中名為“online”的文件保存數字 1,如果未插入,則保存數字 0。

“BAT1”子目錄中名為“容量”的文件保存電池充電狀態的值。

 ls /sys/class/power_supply/
 貓 /sys/class/power_supply/ACAD/在線
cat /sys/class/power_supply/BAT1/容量

使用 cat 檢查在線和容量文件

這台筆記本電腦已插入交流適配器,電池電量為 81%。

因為這兩個值以簡單明了的方式呈現,所以它們非常適合在腳本中使用。

假設您有一個備份腳本,您只想在交流電源存在或電池電量大於 70% 時執行該腳本。 這個腳本的存根顯示瞭如何實現這一點。

 #!/bin/bash

charge_level="$(cat /sys/class/power_supply/BAT1/容量)"

ac_adapter="$(cat /sys/class/power_supply/ACAD/online)"

如果 [[ ac_adapter -eq 0 ]]; 

然後 

  如果 [[charge_level < 70 ]]; 

  然後 

    echo "備用電池電量不足:" $charge_level 

  別的 

    echo "電池電量充足,開始備份:" $charge_level 

  菲 

別的

  echo "On Mains power, 開始備份。" 

菲

該腳本從兩個文件中獲取值並將它們存儲在變量charge_levelac_adapter中。

如果未插入交流適配器,則ac_adapter中的值將為零。 如果是這種情況,腳本會檢查charge_level中的電池電量。 如果電池電量超過 70%,則備份運行。

如果插入了交流適配器,則備份運行,腳本不會檢查電池充電值。

將腳本複製到編輯器中並將其保存為“battery.sh”。 確保使用筆記本電腦上電池子目錄的正確路徑。

我們需要使用chmod命令使腳本可執行:

 chmod +x 電池.sh 

使腳本可執行

現在我們可以運行腳本了。 交流適配器已插入。

 ./電池.sh 

在插入交流適配器的情況下運行腳本

讓我們拔下 AC 適配器並再次運行它。

 ./電池.sh 

在拔下 AC 適配器的情況下運行腳本

正確檢測到筆記本電腦的電源狀況,腳本會相應地採取行動。

使用 acpi 檢查電池

如果您安裝了高級配置和電源接口包,您可以使用它來查詢筆記本電腦的電池和電源狀況。 如果您沒有安裝它,它是一個小包,安裝速度非常快。

在 Ubuntu 上,您可以使用此命令安裝它。

 sudo apt install acpi 

在 Ubuntu 上安裝 acpi

在 Fedora 上,您將使用:

 須藤 dnf 安裝 acpi 

在 Fedora 上安裝 acpi

在 Manjaro 上,您應該輸入:

 sudo pacman -Sy acpi 

在 Manjaro 上安裝 acpi

我們將使用帶有-a (AC 適配器)選項的命令,然後再次使用-b (電池)選項。 最後,我們將使用-b (電池)選項和-i (信息)選項運行它。 如果有的話,這會提供一些額外的信息。

 acpi -a
 acpi -b
 acpi-bi 

使用 acpi 檢查 AC 適配器和電池

知識就是力量

現在,您可以獲得有關為筆記本電腦供電的知識。

讓腳本檢查是否有電源或足夠的電池電量來執行高負載或長時間任務(如係統映像或升級)的能力特別強大。

相關:如何最大限度地延長 Linux 筆記本電腦的電池壽命