How do I get hardware information on Linux/Unix?
How I can get hardware information from a Linux / Unix machine. Is there a set of APIs?
I am trying to get information like:
- OS name.
- OS version.
- available network adapters.
- information on network adapters.
- all the installed software.
I am looking for an application which collects this information and show it in a nice format. I have used something 开发者_如何学Gosimilar with the "system_profile" command line tool for Mac OS X. I was wondering if something similar is available for Linux as well.
If you need a simple answer, use:
cat /proc/cpuinfo
cat /proc/meminfo
lspci
lsusb
and harvest any info you need from the output of these commands. (Note: the cut
command may be your friend here if you are writing a shell script.)
Should you need more detail, add a -v
switch to get verbose output from the lspci
and lsusb
commands.
If what you are looking for is a more feature-complete API, then use HAL, though that may be an overkill for what you are trying to build.
If you are looking for a tool that show System Information, the GUI tool like HardInfo would useful for you.
In Ubuntu, you can install HardInfo like this...
sudo apt-get install hardinfo
Cheers
There is a bash command lshw - list hardware
I would use hal
, the hardware abstraction layer. It includes both some GUI commands, some tty commands (which can be used from shell programs), and library bindings for c and multiple other languages.
HAL is not really a standard part of "linux", but I think it is used by most modern distros.
Try sudo lshw
.
It's the easiest.
Since you mentioned API, try the exec family of commands for C. You can use them to execute these binaries that other people have mentioned. To create a robust/flexible solution you will probably also have to leverage the Unix fork() commands. You will also have to develop a mechanism for capturing the output spewed by these utilities. Look into Unix pipes for that.
You can use inxi which provide all hardware information including cpu temperature and so on.
Install on Red Hat based OS
sudo dnf install inixi
Install on Debian based OS
apt-get install inxi
精彩评论