通過命令列獲取計算機硬體詳細資訊。
你可能會有很多的原因需要查清計算機硬體的詳細資訊。例如,你需要修復某些問題並在論壇上發出請求,人們可能會立即詢問你的計算機具體的資訊。或者當你想要升級計算機設定時,你需要知道現有的硬體型號和能夠升級的型號。這些都需要查詢你的計算機具體規格資訊。
最簡單的方法是使用標準的 Linux GUI 程式之一:
或者,你也可以拆開計算機機箱去檢視硬碟、記憶體和其他裝置上的標籤資訊。或者你可以在系統啟動時,按下相應的按鍵進入 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 的任何資訊。使用 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 availableMem: 11891 1326 8877 212 1687 10077Swap: 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 |
你有喜歡的命令被我忽略掉的嗎?請新增評論分享給大家。