如何從Linux/Unix機器獲取硬件信息。 是否有一組API?如何獲得Linux/Unix上的硬件信息?
我試圖得到這樣的信息:
- 操作系統名稱。
- 操作系統版本。
- 可用網絡適配器。
- 有關網絡適配器的信息。
- 所有安裝的軟件。
我正在尋找一個應用程序,收集這些信息,並以一個很好的格式顯示它。 我已經使用了與Mac OS X的「system_profile」命令行工具類似的東西。我想知道是否有類似的東西可用於Linux。
如何從Linux/Unix機器獲取硬件信息。 是否有一組API?如何獲得Linux/Unix上的硬件信息?
我試圖得到這樣的信息:
我正在尋找一個應用程序,收集這些信息,並以一個很好的格式顯示它。 我已經使用了與Mac OS X的「system_profile」命令行工具類似的東西。我想知道是否有類似的東西可用於Linux。
如果你需要一個簡單的答案,使用方法:
cat /proc/cpuinfo
cat /proc/meminfo
lspci
lsusb
和收穫你從這些命令的輸出需要的任何信息。 (注:cut
命令可以在這裏你的朋友,如果你正在寫一個shell腳本)。
如果您需要更詳細,添加一個-v
開關來從lspci
和lsusb
命令詳細輸出。
如果你正在尋找的是一個功能更加完善的API,然後使用HAL,儘管這可能是你正在嘗試建立一個矯枉過正。
或者用一種很好的腳本語言編寫一些腳本來按照你想要的方式獲取和格式化數據。不要忘記爲網絡適配器信息添加ifconfig。 – fritzone 2009-11-13 08:02:55
有一個bash命令lshw - 列表硬件
是否有像OS X的system_profiler這樣的工具。 – Unicorn 2009-11-13 07:13:24
在某些情況下,lshw可能不可用,但提供類似信息的dmidecode通常是(我在考慮VMware ESX管理程序)。 – Suppressingfire 2009-11-13 07:22:20
@Unicorn,你可以更具體地瞭解你想要提取的硬件信息嗎? – Suppressingfire 2009-11-13 07:23:28
我會用hal
,硬件抽象層。它包括一些GUI命令,一些tty命令(可以在shell程序中使用)以及c和多種其他語言的庫綁定。
HAL並不是真正的「linux」的標準部分,但我認爲它被大多數現代發行版使用。
希望我能夠投票兩次,這是驚人的。 – 2009-11-13 15:47:26
既然你提到API,請嘗試exec命令族爲C.你可以使用它們來執行其他人提到的這些二進制文件。要創建一個強大/靈活的解決方案,您可能還必須利用Unix fork()命令。您還必須開發一種捕獲這些實用程序輸出的輸出的機制。看看Unix管道。
嘗試sudo lshw
。 這是最簡單的。
從命令行工具到內核API調用有很多種方法。除非你告訴我們你想要做什麼,否則任何答案都只能是猜測。 – DevSolar 2009-11-13 07:27:28