通過命令行獲取計算機硬件詳細信息。
-- Howard Fosdick(作者)
你可能會有很多的原因需要查清計算機硬件的詳細信息。例如,你需要修復某些問題并在論壇上發出請求,人們可能會立即詢問你的計算機具體的信息。或者當你想要升級計算機配置時,你需要知道現有的硬件型號和能夠升級的型號。這些都需要查詢你的計算機具體規格信息。
最簡單的方法是使用標準的 linux GUI 程序之一:
- i-nex 收集硬件信息,并且類似于 windows 下流行的 CPU-Z 的顯示。
- HardInfo 顯示硬件具體信息,甚至包括一組八個的流行的性能基準程序,你可以用它們評估你的系統性能。
- KInfoCenter 和 Lshw 也能夠顯示硬件的詳細信息,并且可以從許多軟件倉庫中獲取。
或者,你也可以拆開計算機機箱去查看硬盤、內存和其他設備上的標簽信息。或者你可以在系統啟動時,按下 相應的按鍵 進入 UEFI 和 BIOS 界面獲得信息。這兩種方式都會向你顯示硬件信息但省略軟件信息。
你也可以使用命令行獲取硬件信息。等一下… 這聽起來有些困難。為什么你會要這樣做?
有時候通過使用一條針對性強的命令可以很輕松的找到特定信息。也可能你沒有可用的 GUI 程序或者只是不想安裝這樣的程序。
使用命令行的主要原因可能是編寫腳本。無論你是使用 Linux shell 還是其他編程語言來編寫腳本通常都需要使用命令行。
很多檢測硬件信息的命令行都需要使用 root 權限。所以要么切換到 root 用戶,要么使用 sudo 在普通用戶狀態下發出命令:
sudo <the_line_command>
并按提示輸入你的密碼。
這篇文章介紹了很多用于發現系統信息的有用命令。文章最后的快速查詢表對它們作出了總結。
硬件概述
下面幾條命令可以全面概述計算機硬件信息。
inxi 命令能夠列出包括 CPU、圖形、音頻、網絡、驅動、分區、傳感器等詳細信息。當論壇里的人嘗試幫助其他人解決問題的時候,他們常常詢問此命令的輸出。這是解決問題的標準診斷程序:
inxi -Fxz
-F 參數意味著你將得到完整的輸出,x 增加細節信息,z 參數隱藏像 mac 和 IP 等私人身份信息。
hwinfo 和 lshw 命令以不同的格式顯示大量相同的信息:
hwinfo --short
或
lshw -short
這兩條命令的長格式輸出非常詳細,但也有點難以閱讀:
hwinfo
或
lshw
CPU 詳細信息
通過命令你可以了解關于你的 CPU 的任何信息。使用 lscpu 命令或與它相近的 lshw 命令查看 CPU 的詳細信息:
lscpu
或
lshw -C cpu
在這兩個例子中,輸出的最后幾行都列出了所有 CPU 的功能。你可以查看你的處理器是否支持特定的功能。
使用這些命令的時候,你可以通過使用 grep 命令過濾復雜的信息,并縮小所需信息范圍。例如,只查看 CPU 品牌和型號:
lshw -C cpu | grep -i product
僅查看 CPU 的速度(兆赫茲):
lscpu | grep -i mhz
或其 BogoMips 額定功率:
lscpu | grep -i bogo
grep 命令的 -i 參數代表搜索結果忽略大小寫。
內存
Linux 命令行使你能夠收集關于你的計算機內存的所有可能的詳細信息。你甚至可以不拆開計算機機箱就能確定是否可以為計算機添加額外的內存條。
使用 dmidecode 命令列出每根內存條和其容量:
dmidecode -t memory | grep -i size
使用以下命令獲取系統內存更多的信息,包括類型、容量、速度和電壓:
lshw -short -C memory
你肯定想知道的一件事是你的計算機可以安裝的最大內存:
dmidecode -t memory | grep -i max
現在檢查一下計算機是否有空閑的插槽可以插入額外的內存條。你可以通過使用命令在不打開計算機機箱的情況下就做到:
lshw -short -C memory | grep -i empty
輸出為空則意味著所有的插槽都在使用中。
確定你的計算機擁有多少顯卡內存需要下面的命令。首先使用 lspci 列出所有設備信息然后過濾出你想要的顯卡設備信息:
lspci | grep -i vga
視頻控制器的設備號輸出信息通常如下:
00:02.0 VGA compatible controller: Intel Corporation 82Q35 Express Integrated Graphics Controller (rev 02)
現在再加上視頻設備號重新運行 lspci 命令:
lspci -v -s 00:02.0
輸出信息中 prefetchable 那一行顯示了系統中的顯卡內存大小:
... Memory at f0100000 (32-bit, non-prefetchable) [size=512K] I/O ports at 1230 [size=8] Memory at e0000000 (32-bit, prefetchable) [size=256M] Memory at f0000000 (32-bit, non-prefetchable) [size=1M] ...
最后使用下面的命令展示當前內存使用量(兆字節):
free -m
這條命令告訴你多少內存是空閑的,多少命令正在使用中以及交換內存的大小和是否正在使用。例如,輸出信息如下:
total used free shared buff/cache available Mem: 11891 1326 8877 212 1687 10077 Swap: 1999 0 1999
top 命令為你提供內存使用更加詳細的信息。它顯示了當前全部內存和 CPU 使用情況并按照進程 ID、用戶 ID 及正在運行的命令細分。同時這條命令也是全屏輸出:
top
磁盤文件系統和設備
你可以輕松確定有關磁盤、分區、文件系統和其他設備信息。
顯示每個磁盤設備的描述信息:
lshw -short -C disk
通過以下命令獲取任何指定的 SATA 磁盤詳細信息,例如其型號、序列號以及支持的模式和扇區數量等:
hdparm -i /dev/sda
當然,如果需要的話你應該將 sda 替換成 sdb 或者其他設備號。
要列出所有磁盤及其分區和大小,請使用以下命令:
lsblk
使用以下命令獲取更多有關扇區數量、大小、文件系統 ID 和 類型以及分區開始和結束扇區:
fdisk -l
要啟動 Linux,你需要確定 GRUB 引導程序的可掛載分區。你可以使用 blkid 命令找到此信息。它列出了每個分區的唯一標識符(UUID)及其文件系統類型(例如 ext3 或 ext4):
blkid
使用以下命令列出已掛載的文件系統和它們的掛載點,以及已用的空間和可用的空間(兆字節為單位):
df -m
最后,你可以列出所有的 USB 和 PCI 總線以及其他設備的詳細信息:
lsusb
或
lspci
網絡
Linux 提供大量的網絡相關命令,下面只是幾個例子。
查看你的網卡硬件詳細信息:
lshw -C network
ifconfig 是顯示網絡接口的傳統命令:
ifconfig -a
但是現在很多人們使用:
ip link show
或
netstat -i
在閱讀輸出時,了解常見的網絡縮寫十分有用:
表中的星號是通配符,代表不同系統的任意字符。
使用以下命令顯示默認網關和路由表:
ip route | column -t
或
netstat -r
軟件
讓我們以顯示最底層軟件詳細信息的兩條命令來結束。例如,如果你想知道是否安裝了最新的固件該怎么辦?這條命令顯示了 UEFI 或 BIOS 的日期和版本:
dmidecode -t bios
內核版本是多少,以及它是 64 位的嗎?網絡主機名是什么?使用下面的命令查出結果:
uname -a
快速查詢表
你有喜歡的命令被我忽略掉的嗎?請添加評論分享給大家。
via: https://opensource.com/article/19/9/linux-commands-hardware-information
作者: Howard Fosdick 選題: lujun9972 譯者: way-ww 校對: wxy
本文由 LCTT 原創編譯, Linux中國 榮譽推出