2009-11-13 4 views
7

Comment puis-je obtenir des informations sur le matériel à partir d'une machine Linux/Unix? Existe-t-il un ensemble d'API?Comment obtenir des informations sur Linux/Unix?

Je suis en train d'obtenir des informations comme:

  • nom du système d'exploitation.
  • Version du système d'exploitation.
  • cartes réseau disponibles.
  • informations sur les cartes réseau.
  • tous les logiciels installés.

Je suis à la recherche d'une application qui recueille cette information et la montre dans un format sympa. J'ai utilisé quelque chose de similaire avec l'outil de ligne de commande "system_profile" pour Mac OS X. Je me demandais si quelque chose de similaire était également disponible pour Linux.

+0

Il existe de nombreuses façons, des outils de ligne de commande aux appels d'API du noyau. À moins que vous ne nous disiez ce que vous essayez de faire, les réponses ne peuvent être que des conjectures. – DevSolar

Répondre

15

Si vous avez besoin d'une réponse simple, utilisez:

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

et la récolte toute information dont vous avez besoin de la sortie de ces commandes . (Remarque: la commande cut peut être votre ami ici si vous écrivez un script shell.)

Si vous avez besoin de plus de détails, ajouter un commutateur -v pour obtenir une sortie verbeuse des commandes lspci et lsusb. Si ce que vous recherchez est une API plus complète, utilisez HAL, bien que cela puisse être exagéré pour ce que vous essayez de construire.

+1

Ou écrivez un script dans un bon langage de script pour récupérer et formater les données comme vous le souhaitez. N'oubliez pas d'ajouter ifconfig pour les infos de l'adaptateur réseau. – fritzone

7

Il y a une commande bash lshw - liste du matériel

+0

existe-t-il un outil comme system_profiler d'OS X. – Unicorn

+0

Dans certains cas, lshw n'est peut-être pas disponible, mais dmidecode, qui fournit des informations similaires, l'est souvent (je pense aux hyperviseurs VMware ESX). – Suppressingfire

+0

@Unicorn, pouvez-vous être plus précis sur les informations matérielles que vous voulez extraire? – Suppressingfire

2

J'utiliser hal, la couche d'abstraction matérielle. Il comprend à la fois des commandes GUI, des commandes tty (qui peuvent être utilisées à partir de programmes shell) et des liaisons de bibliothèque pour c et plusieurs autres langages.

HAL n'est pas vraiment une partie standard de "linux", mais je pense qu'il est utilisé par la plupart des distributions modernes.

7

Si vous cherchez un outil qui affiche Information système, l'outil GUI comme HardInfo vous serait utile.

Dans Ubuntu, vous pouvez installer hardinfo comme ça ...

sudo apt-get install hardinfo

Vive

+1

J'aimerais pouvoir voter deux fois, c'est incroyable. –

0

Puisque vous avez mentionné l'API, essayez la famille exec des commandes pour C. Vous pouvez les utiliser pour exécuter ces binaires que d'autres personnes ont mentionné.Pour créer une solution robuste/flexible, vous devrez probablement utiliser les commandes Unix fork(). Vous devrez également développer un mécanisme pour capturer la production crachée par ces utilités. Regardez dans les tuyaux Unix pour cela.

1

Essayez sudo lshw. C'est le plus facile.

Questions connexes