用 Linux 命令顯示硬體信息
你可能會有很多的原因需要查清計算機硬體的詳細信息。例如,你需要修復某些問題並在論壇上發出請求,人們可能會立即詢問你的計算機具體的信息。或者當你想要升級計算機配置時,你需要知道現有的硬體型號和能夠升級的型號。這些都需要查詢你的計算機具體規格信息。
最簡單的方法是使用標準的 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
在閱讀輸出時,了解常見的網路縮寫十分有用:
縮寫 | 含義 |
---|---|
lo |
迴環介面 |
eth0 或 enp* |
乙太網介面 |
wlan0 |
無線網介面 |
ppp0 |
點對點協議介面(由撥號數據機、PPTP VPN 連接或者 USB 數據機使用) |
vboxnet0 或 vmnet* |
虛擬機網路介面 |
表中的星號是通配符,代表不同系統的任意字元。
使用以下命令顯示默認網關和路由表:
ip route | column -t
或
netstat -r
軟體
讓我們以顯示最底層軟體詳細信息的兩條命令來結束。例如,如果你想知道是否安裝了最新的固件該怎麼辦?這條命令顯示了 UEFI 或 BIOS 的日期和版本:
dmidecode -t bios
內核版本是多少,以及它是 64 位的嗎?網路主機名是什麼?使用下面的命令查出結果:
uname -a
快速查詢表
用途 | 命令 |
---|---|
顯示所有硬體信息 | inxi -Fxz 或 hwinfo --short 或 lshw -short |
CPU 信息 | lscpu 或 lshw -C cpu |
顯示 CPU 功能(例如 PAE、SSE2) | lshw -C cpu | grep -i capabilities |
報告 CPU 位數 | lshw -C cpu | grep -i width |
顯示當前內存大小和配置 | dmidecode -t memory | grep -i size 或 lshw -short -C memory |
顯示硬體支持的最大內存 | dmidecode -t memory | grep -i max |
確定是否有空閑內存插槽 | lshw -short -C memory | grep -i empty (輸出為空表示沒有可用插槽) |
確定顯卡內存數量 | lspci | grep -i vga 然後指定設備號再次使用;例如:lspci -v -s 00:02.0 顯卡內存數量就是 prefetchable 的值 |
顯示當前內存使用情況 | free -m 或 top |
列出磁碟驅動器 | lshw -short -C disk |
顯示指定磁碟驅動器的詳細信息 | hdparm -i /dev/sda (需要的話替換掉 sda ) |
列出磁碟和分區信息 | lsblk (簡單) 或 fdisk -l (詳細) |
列出分區 ID(UUID) | blkid |
列出已掛載文件系統掛載點以及已用和可用空間 | df -m |
列出 USB 設備 | lsusb |
列出 PCI 設備 | lspci |
顯示網卡詳細信息 | lshw -C network |
顯示網路介面 | ifconfig -a 或 ip link show 或 netstat -i |
顯示路由表 | ip route | column -t 或 netstat -r |
顯示 UEFI/BIOS 信息 | dmidecode -t bios |
顯示內核版本網路主機名等 | uname -a |
你有喜歡的命令被我忽略掉的嗎?請添加評論分享給大家。
via: https://opensource.com/article/19/9/linux-commands-hardware-information
作者:Howard Fosdick 選題:lujun9972 譯者:way-ww 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive