Ce document va essayer de répondre le mieux possible à ces deux questions :
Ce document peut être, d'une certaine façon, considéré comme une suite de Trucs & Astuces, car il vous fournit seulement une liste de commandes vous permettant de répondre aux deux questions ci-dessus. Par ailleurs, notez que la liste des commandes fournies n'est pas exhaustive.
Il vous est vivement recommandé, de faire un man sur les commandes avant de les lancer, ceci afin de connaître leurs fonctions et leurs options.
Absolument rien ne garantit que votre distribution fournisse et/ou installe toutes les commandes utilisées dans ce document.
Presque toutes les commandes citées ici sont des commandes en ligne, à exécuter en init 3 ou dans un terminal. Il existe aussi de nombreux outils graphiques pour décortiquer le système mais je ne les aborderai pas.
Enfin, il s'avère qu'en fonction de votre distribution et de la configuration générale du système, les commandes suivantes peuvent être lancées avec un utilisateur normal, dans le cas contraire utilisez le root. A vous de voir et de tester.
Ce document aborde un sujet plutôt technique, il n'est pas forcément à la portée de tout le monde. Les commandes ne sont pas compliquées mais l'interprétation de leurs résultats peuvent l'être.
Pour savoir avec quelles options noyau votre système a démarré, faire :
Ce qui retourne par exemple :
Cela pourra être utile pour comprendre pourquoi le système fait ou supporte ceci ou cela alors que nous ne lui avons dit nulle part. Normalement vous devriez retrouver ces options dans la configuration de votre loader.
Pour avoir une vue générale du matériel installé :
Ce qui retourne quelque chose comme ça:
Si la commande lsdev n'est pas fournie par votre distribution, essayez :
et les autres commandes de cet article.
Afin de connaître les caractéristiques de votre processeur :
Par exemple cela renvoie :
Pour connaître le pourcentage d'utilisation du processeur :
Et enfin depuis combien de temps la machine n'a pas redémarré :
Quels sont les IRQs utilisés :
Voici la partie du résultat qui nous intéresse :
Ou pour tous les IRQs possibles :
Par exemple, cela affiche, en plus, les IRQs 3 et 4, les ports série, qui ne sont pas utilisés ici.
La commande procinfo peut servir pour la mémoire, l'occupation du processeur... Bref, faites man procinfo pour en savoir plus.
Comme pour lsdev, la commande procinfo peut être manquante, alors faites aussi :
Pour afficher la RAM et la SWAP disponibles en Mo :
Ce qui donne :
Pour avoir plus d'informations sur la mémoire (RAM et SWAP) de GNU/Linux, allez voir le Trucs & Astuces : Aide mémoire sur la mémoire.
Avoir une première idée des cartes PCI et AGP installées :
Personnellement, je préfère :
Ce qui retourne :
Malgré le nom de la commande, nous pouvons voir que la dernière ligne est ma carte vidéo AGP.
Pour avoir plus d'informations sur les cartes :
Encore plus d'informations sur les cartes ?
Pour savoir quelles cartes sont Plug and Play :
NDR : Cette commande fait partie du paquet pcmcia-cs qui contient aussi d'autres commandes pour le matériel pcmcia. N'ayant pas de tel matériel, je ne les ai pas testées.
La première chose, combien de partitions avez-vous sur chaque disque dur, de quel type sont-elles et comment s'appellent-t-elles ?
Ce qui affiche, par exemple :
C'est le retour que l'on obtient avec un système GNU/Linux utilisant Devfs. La vieille norme de nommage est conservée par des liens symboliques, faites donc :
afin de voir la correspondance entre /dev/ide/host0/bus0/target1/lun0/part9 et /dev/hdb9, par exemple.
Pour vérifier si le DMA est activé pour votre disque dur :
Ce qui retourne :
Pour tester les performances de votre cache et de votre disque dur :
Ce qui retourne :
Modifiez /dev/hda en fonction de votre disque dur.
NDR : Pour information, le fichier correspondant aux partitions est /proc/partitions.
Pour connaître la liste des systèmes de fichiers supportés par votre noyau, faites :
Ce qui renvoie :
NDR : Ce n'est pas vraiment du matériel, car cela dépend de la compilation de votre noyau, mais bon... :-)
Il y a des chances pour qu'à l'installation votre distribution détermine vos lecteurs de CDROMs, DVDs et graveurs. Mais si ce n'est pas le cas, ou si vous souhaitez en savoir plus, voici comment nous pouvons déterminer quel dev il faut monter pour pouvoir utiliser ces lecteurs et graveurs.
Sous /proc/ide pour les IDE, sinon ce sera /proc/scsi, vous trouverez un ide1 et un ide2. Sous ces répertoires vous retrouverez hda, hdb, hdc et/ou hdd. Et enfin, là, vous trouverez :
Pour voir en une seule fois vos périphériques IDE, faites :
Ce qui renvoie :
Ou
Pour savoir si votre graveur est reconnu en tant que graveur, faites (obligatoirement en root) :
Spécifique au noyau 2.4.x :
Spécifique au noyau 2.6.x :
Afin de connaitre vos périphériques USB, vous avez la commande lsusb :
Retourne :
Pour avoir plus de détails, vous pouvez faire :
Hormis cela, vous pouvez consulter le répertoire /proc/bus/usb.
Enfin, pour tout ce que l'on vient de voir et plus encore, il y a :
Cette commande retourne trop d'informations pour les restituer ici. Mais par exemple, pour savoir comment monter une clé USB, cela aide lorsque vous tombez sur ce genre d'informations :
Spécifique au noyau 2.4.x :
Spécifique au noyau 2.6.x :
J'ai mis ici en gras le block special device (/dev/sde1 ou ubb1) à utiliser pour la commande mount.
Toutes ces commandes peuvent vous aider à mieux connaître votre système, mais surtout à le configurer et à l'optimiser.
Comme vous l'avez sûrement remarqué, le répertoire /proc est très utile ! Sachez que, généralement, les outils s'appuient sur ce répertoire pour vous retourner les informations. Vous ne risquez rien à le parcourir et à faire des less des fichiers que vous y rencontrerez. En plus, c'est la seule méthode qui marchera sur toutes les distributions.
Votre distribution vous fournit peut être maintenant un outil à tout faire pour explorer votre configuration matérielle : lshw. Cet outil va vous permettre de synthétiser des informations concernant la mémoire, la version du firmware, la configuration de la carte mère, la version du CPU et sa vitesse, la configuration du cache, la vitesse du bus...
lshw va en fait lire dans tous les fichiers nécessaires (fichiers listés dans le man de l'outil) pour en récupérer les informations nécessaires. Le résultat peut être extrait au format texte, XML ou HTML.
Une des sorties écran le plus simple reprend le modèle de la commande ioscan qu'on retrouve sur les systèmes HP-UX.
où
Vous avez également la possibilité d'obtenir une description complète de votre configuration matérielle. Par défaut, le résultat est affiché sur la sortie standard. Pour la conserver il suffit donc de faire une redirection dans un fichier
lshw propose une option permettant une récupération des informations au format XML et/ou HTML. La commande est simple :
# lshw -html
Elle sort une page html sur la sortie standard.
Pour afficher cette page, une commande du type :
# lshw -html > /tmp/lshw.html ; konqueror file:/tmp/lshw.html
fonctionne très bien.
Enfin, il existe un client Gtk : gtk-lshw ou lshw -X
Afin de connaître la version, voire le nom, de votre distribution, sachez qu'il existe souvent un fichier :
Il suffit donc de faire un cat de ce fichier.
Par exemple, pour la Mandrake c'est /etc/mandrake-release et pour la Slackware, /etc/slackware-version.
Pour connaître le nom de votre machine :
Le nom de la machine, ou hostname, fait partie du paramétrage réseau d'une machine. Je ne peux donc que vous conseiller la lecture de l'Exploration de la configuration réseau afin d'en savoir plus.
La version de votre noyau actuel est obtenue ainsi :
Pour connaître la configuration actuelle du noyau :
Maintenant, vous avez deux solutions pour lire la configuration de votre noyau :
Tout d'abord, tous les modules se trouvent sous :
Pour avoir une idée des modules à charger, vous pouvez utiliser les commandes sur les périphériques expliquées dans ce document. Sinon allez dans le répertoire :
et cherchez sans oublier les sous-répertoires. En particulier, lisez le fichier modules.txt.
Pour avoir de plus amples informations sur un module particulier, et donc sur un driver, faites :
Pour savoir quels sont les modules chargés en mémoire :
Exemple concret, pour savoir si le module d'émulation SCSI du graveur est chargé :
Pour savoir si vous avez besoin de recompiler les modules du noyau afin d'avoir l'émulation :
Il existe de nombreux outils pour gérer les services sur un système GNU/Linux. Mais ces outils dépendent beaucoup de la distribution, si elle est SysV ou BSD-like et si elle utilise inetd ou xinetd.
Aujourd'hui les principales distributions sont SysV et utilisent xinetd sauf la Slackware.
Vous trouverez de l'aide et des articles sur le sujet ici-même.
Entre autres :
Mais pour savoir rapidement si votre distribution utilise xinetd, faites simplement :
Cela vous sortira soit :
Soit :
Et vous saurez si c'est inetd ou xinetd qui est utilisé.
De plus pour savoir si le système d'initialisation (aussi dit d'init) est SysV (dit Système 5), vérifier dans le répertoire /etc/rc.d qu'il existe les répertoires : init.d, rc1.d, rc2.d,... , rc6.d. Sinon la distribution (ex: BSD, Slackware, Sourcemage, Nasgaïa) utilise un autre système d'init.
Pour savoir quel processus est le processus père de quel(s) autre(s) :
Ce qui affiche cet arbre :
Nous avons donc sous les yeux tous les processus du système avec leur PID (Process Identifier) sous une forme nous permettant de comprendre qui est dépendant de qui. En conséquence, cela permet aussi de mieux comprendre le système et de voir ce qui tourne.
Spécifique à XFree86 :
Spécifique à Xorg :
Pour connaitre la résolution actuelle :
Ce qui retourne :
Cette commande, sans arguments, vous permettra aussi d'affiner votre résolution.
Pour en savoir plus sur la configuration du serveur X :
Ce qui retourne :
J'ai coupé car cela renvoie trop d'informations pour être affichées ici.
Pour avoir la liste des bibliothèques installées figurant dans les répertoires :
Faites :
# ldconfig -p
Mais pour savoir si la bibliothèque libc.so est installée, faites plutôt :
# ldconfig -p | grep -i libc.so
Ce qui a pour résultat :
libc.so.6 (libc6, OS ABI: Linux 2.0.0) => /lib/libc.so.6
Pour déterminer la version d'une bibliothèque installée, cela peut se révéler compliqué...
Voici quelques méthodes que je connais :
NDR : Le terme library est souvent abusivement traduit par "librairie" au lieu de "bibliothèque". Je lui préfère ce dernier, sachez simplement qu'il s'agit de la même chose.
Pour savoir si un logiciel est installé, il y a les outils en relation avec le type de paquet utilisé par la distribution. Mais si vous prenez l'habitude d'installer à partir des sources, ces outils ne marchent plus. Donc les solutions universelles sont :
$ find / -iname "*nom-du-logiciel*" -type f -print
Ou
$ locate nom-du-logiciel
En général, pour connaître la version d'un logiciel, il suffit de faire :
$ exécutable-du-logiciel --version
Ou
$ exécutable-du-logiciel -v
Pour savoir, quelles bibliothèques un exécutable utilise ou dont il a besoin :
$ ldd exécutable
Par exemple : $ ldd `which sylpheed`, retourne :
libgmodule-1.2.so.0 => /opt/gnome/lib/libgmodule-1.2.so.0 (0x40017000) libglib-1.2.so.0 => /opt/gnome/lib/libglib-1.2.so.0 (0x4001a000) libdl.so.2 => /lib/libdl.so.2 (0x40046000) libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x4004a000) libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40058000) libm.so.6 => /lib/libm.so.6 (0x40131000) libgdk_pixbuf.so.2 => /opt/gnome/lib/libgdk_pixbuf.so.2 (0x40154000) libgtk-1.2.so.0 => /opt/gnome/lib/libgtk-1.2.so.0 (0x40168000) libgdk-1.2.so.0 => /opt/gnome/lib/libgdk-1.2.so.0 (0x4028d000) libgpgme.so.6 => /usr/local/lib/libgpgme.so.6 (0x402bf000) libssl.so.0 => /usr/lib/libssl.so.0 (0x402d5000) libcrypto.so.0 => /usr/lib/libcrypto.so.0 (0x4038b000) libc.so.6 => /lib/libc.so.6 (0x4044b000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
NDR : J'ai utilisé la commande ldd `which sylpheed` car ldd n'utilise pas le PATH, donc il faut lui donner le chemin d'accès de l'exécutable. Ce que fait which sylpheed pour l'exemple.
| Le composant | La commande |
| Le noyau Linux | uname -r |
| GCC, le compilateur | gcc --version |
| XFree86, le serveur X | XFree86 -version |
| Xorg, l'autre serveur X | Xorg -version |
| KDE (qt, kde, kde-config) | kde-config --version |
| GNOME et ses bibliothèques | gnome-config --version glib-config --version gtk-config --version gtkmm-config --version |
| WindowMaker | wmaker --version |
| Fluxbox | fluxbox -version |
| Enlightenment | enlightenment --version |
| La bibliothèque Glibc | /lib/libc.so.6 |
| OpenSSL | openssl version |
| GnuPG (Gnu Privacy Guard) | gpg --version |
| La bibliothèque GPGme (GnuPG Made Easy) | gpgme-config --version |
| L'éditeur Vi (ou Vim) | vi --version |
| ... |
A compléter vous-même... ;-)
Comme pour le matériel, ce qui précède peut vous aider... Mais pour les logiciels la tâche est plus compliquée car beaucoup d'éléments entrent en considération comme : la distribution, le système de paquetage, la hiérarchie du système de fichiers...
J'espère que vous avez appris quelque chose et que cela vous sera utile.
N'hésitez pas à m'envoyer vos remarques.
Copyright © 09/09/2002, Jonesy
| | Ce document est publié sous licence Creative Commons Attribution, Partage à l'identique, Contexte non commercial 2.0 : http://creativecommons.org/licenses/by-nc-sa/2.0/fr/ |