如何获取Linux / Unix上的硬件信息?

时间:2009-11-13 07:01:02

标签: c++ c linux unix system

如何从Linux / Unix机器获取硬​​件信息。 有一组API吗?

我正在尝试获取以下信息:

  • 操作系统名称。
  • 操作系统版本。
  • 可用的网络适配器。
  • 有关网络适配器的信息。
  • 所有已安装的软件。

我正在寻找一个收集此信息并以漂亮格式显示的应用程序。 我使用了与Mac OS X的“system_profile”命令行工具类似的东西 我想知道Linux上是否也有类似的东西。

7 个答案:

答案 0 :(得分:15)

如果您需要简单的答案,请使用:

  • cat /proc/cpuinfo
  • cat /proc/meminfo
  • lspci
  • lsusb

并从这些命令的输出中获取所需的任何信息。 (注意:如果您正在编写shell脚本,cut命令可能是您的朋友。)

如果您需要更多详细信息,请添加-v开关以获取lspcilsusb命令的详细输出。

如果您正在寻找的是功能更完善的API,那么请使用HAL,尽管这可能对您正在尝试构建的内容造成过大的威胁。

答案 1 :(得分:8)

如果您正在寻找显示系统信息的工具,HardInfo等GUI工具对您有用。

在Ubuntu中,你可以像这样安装HardInfo ......

  

sudo apt-get install hardinfo

干杯

答案 2 :(得分:7)

有一个bash命令lshw - list hardware

答案 3 :(得分:2)

我会使用硬件抽象层hal。它包括一些GUI命令,一些tty命令(可以从shell程序中使用),以及c和多种其他语言的库绑定。

HAL并不是“linux”的标准版本,但我认为它被大多数现代发行版所使用。

答案 4 :(得分:1)

试试sudo lshw。 这是最简单的。

答案 5 :(得分:0)

由于您提到了API,请尝试使用C的exec系列命令。您可以使用它们执行其他人提到的这些二进制文件。要创建一个强大/灵活的解决方案,您可能还必须利用Unix fork()命令。您还必须开发一种机制来捕获这些实用程序所产生的输出。查看Unix管道。

答案 6 :(得分:0)

您可以使用inxi提供所有硬件信息,包括CPU温度等。

在基于Red Hat的操作系统上安装 sudo dnf install inixi

在基于Debian的操作系统上安装 apt-get install inxi