Grimoire-Command.es

GNU+Linux command memo

Memo_10 : Explorer le matériel

D’après l’édition 11 des travaux d’Alain Leaper, 2018-04-10
Licence GPL

1. /etc/issue : connaître la version du système d’exploitation

$ cat /etc/issue
Debian GNU/Linux 9 \n \l

Affiche le nom d’une distribution GNU+Linux ainsi que sa version.

Concernant Debian, une version plus précise peut être affichée avec :

$ cat /etc/debian_version
9.4

Enfin la commande lsb_release permet d’obtenir d’avantage d’informations concernant sa distribution GNU+Linux :

$ lsb_release -a (1)
No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux 9.4 (stretch)
Release:	9.4
Codename:	stretch
1 -a : pour afficher toutes les informations disponibles. Chaque information est sinon disponible indépendamment, via une option spécifique à découvrir dans le man lsb_release.

2. /proc/cpuinfo : caractéristiques du microprocesseur

Il est également possible d’installer le paquet util-linux et d’utiliser la commande lscpu.

3. free : mémoire vive installée, utilisée…

Par défaut les quantités affichées sont exactes, en octet. Pour avoir les quantités exprimées en méga-octets, il faut ajouter l’argument -m à la liste de commande (ou -k pour des kilo-octets).

$ free -mt
              total        used        free      shared  buff/cache   available
Mem:           7407        3237         223         556        3946        3840
Swap:           499         383         116
Total:         7907        3621         339

-t pour afficher le total : RAM + SWAP

Enfin, la forme la plus simple : -h ; pour des tailles humanisées, ajustée suivant l’échelle affichant les valeurs les plus courtes (en giga-octets, méga-octets, kilo-octets).

$ free -h
              total        used        free      shared  buff/cache   available
Mem:           7,2G        3,2G        245M        534M        3,8G        3,8G
Swap:          499M        383M        116M

4. lspci : afficher les périphériques PCI et AGP

$ lspci
00:00.0 Host bridge: Intel Corporation Skylake Host Bridge/DRAM Registers (rev 08)
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 515 (rev 07)
00:04.0 Signal processing controller: Intel Corporation Skylake Processor Thermal Subsystem (rev 08)
00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21)
00:14.2 Signal processing controller: Intel Corporation Sunrise Point-LP Thermal subsystem (rev 21)
00:15.0 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #0 (rev 21)
00:15.1 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #1 (rev 21)
00:16.0 Communication controller: Intel Corporation Sunrise Point-LP CSME HECI #1 (rev 21)
00:17.0 SATA controller: Intel Corporation Sunrise Point-LP SATA Controller [AHCI mode] (rev 21)
00:1c.0 PCI bridge: Intel Corporation Device 9d13 (rev f1)
00:1f.0 ISA bridge: Intel Corporation Device 9d46 (rev 21)
00:1f.2 Memory controller: Intel Corporation Sunrise Point-LP PMC (rev 21)
00:1f.3 Audio device: Intel Corporation Sunrise Point-LP HD Audio (rev 21)
00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21)
01:00.0 Network controller: Intel Corporation Wireless 7265 (rev 59)

5. lsusb : liste les concentrateurs et périphériques USB

$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 8087:0a2a Intel Corp.
Bus 001 Device 002: ID 0bda:57cb Realtek Semiconductor Corp.
Bus 001 Device 030: ID 21b4:0082
Bus 001 Device 031: ID 2ae5:6764
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Le paquet usbutils doit être installé.

6. uname : liste les caractéristiques de la plateforme

$ uname
Linux
$ uname -a (1)
Linux arkana 4.16.0-0.bpo.1-amd64 #1 SMP Debian 4.16.5-1~bpo9+1 (2018-05-06) x86_64 GNU/Linux
1 -a : afficher tout

Des informations spécifiques peuvent être isolées et affichées seules en précisant certaines options, comme -r pour la version courante du noyau. Pratique pour certaines compilations.

7. lsdev : liste les périphériques

Le noyau Linux expose un grand nombre de périphériques (parfois virtuels) et d’interruptions sous forme de fichier. Ainsi lire ou écrire dans une clé USB revient à lire ou écrire dans un fichier. Capturer une image via une webcam revient également à lire un fichier… Ces fichiers sont accessibles dans /dev/.

$ ls /dev
crw-------  1 root root     10,    58 mai   22 18:20 acpi_thermal_rel
drwxr-xr-x  2 root root            60 mai   22 18:20 arkana-vg
crw-r--r--  1 root root     10,   235 mai   22 18:20 autofs
drwxr-xr-x  2 root root           160 juin   7 21:38 block
drwxr-xr-x  2 root root            60 juin   7 21:38 bsg
crw-------  1 root root     10,   234 mai   22 18:20 btrfs-control
drwxr-xr-x  3 root root            60 mai   22 18:20 bus
drwxr-xr-x  2 root root          3,4K juin  11 09:10 char
crw-------  1 root root      5,     1 mai   22 18:20 console
lrwxrwxrwx  1 root root            11 mai   22 18:20 core -> /proc/kcore
drwxr-xr-x  6 root root           140 juin   9 19:43 cpu
crw-------  1 root root     10,    62 mai   22 18:20 cpu_dma_latency
crw-------  1 root root     10,   203 mai   22 18:20 cuse
drwxr-xr-x  6 root root           120 mai   31 22:20 disk
brw-rw----  1 root disk    254,     0 mai   22 18:20 dm-0
brw-rw----  1 root disk    254,     1 mai   22 18:20 dm-1
$ ls /dev | wc -l
163

La commande lsdev synthétise un peu la situation. Le paquet procinfo doit être installé.

$ lsdev
Device            DMA   IRQ  I/O Ports
------------------------------------------------
0000:00:02.0                   0000-0000
0000:00:17.0                   0000-0000   0000-0000   0000-0000
0000:00:1f.4                   0000-0000
ACPI                             0000-0000     0000-0000     0000-0000     0000-0000     0000-0000
acpi                      9
aerdrv, PCIe PME        122
ahci                             0000-0000     0000-0000     0000-0000
ahci[0000:00:17.0]        124
cascade             4
dma                            0000-0000
dma1                           0000-0000
dma2                           0000-0000
dmar0                   120
dmar1                   121
EC                               0000-0000     0000-0000
ELAN1000:00             109
fpu                            0000-0000
i2c_designware.0         16
i2c_designware.1         17
i801_smbus                       0000-0000
i8042                     1
i915                    126
iTCO_wdt                       0000-0000     0000-0000     0000-0000       0000-0000
iwlwifi                 128
keyboard                       0000-0000   0000-0000
mei_me                  125
PCI                          0000-0000 0000-0000 0000-0000
pic1                           0000-0000
pic2                           0000-0000
pnp                            0000-0000   0000-0000   0000-0000   0000-0000     0000-0000   0000-0000   0000-0000     0000-0000       0000-0000
PNP0C09:00                     0000-0000   0000-0000
rtc0                      8    0000-0000
snd_hda_intel:card0        127
timer                     0
timer0                         0000-0000
timer1                         0000-0000
xhci_hcd                123

8. procinfo : statistiques globales d’utilisation des ressources

La commande procinfo rassemble un bouquet d’informations sur l’état de la machine en provenance de /proc. Elle liste notamment la mémoire libre, la date démarrage, la charge système, ventillée par mode d’exécution, les utilisations d’interruptions, de périphériques de stockage et des interfaces réseau.

$ procinfo
Memory:        Total        Used        Free     Buffers
RAM:         7585492     7371212      214280      348424
Swap:         511996      399136      112860

Bootup: Tue May 22 18:20:57 2018   Load average: 0.14 0.17 0.35 1/561 24268

user  :        3d 06:14:05.67   9.2%  page in :        115091178
nice  :     2w 2d 19:23:01.41  47.3%  page out:        112190902
system:           19:36:37.61   2.3%  page act:        215584374
IOwait:           00:36:09.46   0.1%  page dea:         12848729
hw irq:           00:00:00.00   0.0%  page flt:       1270234042
sw irq:           00:52:41.84   0.1%  swap in :            87085
idle  :        2w 13:15:46.37  41.0%  swap out:           249363
uptime:     2w 5d 15:59:49.84         context :       2424849332

irq   0:          9  2-edge timer        irq 121:          0  1-edge dmar1
irq   1:     700997  1-edge i8042        irq 122:          0  458752-edge aerdr
irq   8:          1  8-edge rtc0         irq 123:   17947417  327680-edge xhci_
irq   9:      13941  9-fasteoi acpi      irq 124:   12707523  376832-edge ahci[
irq  16:  563807702  16-fasteoi i801_s   irq 125:         36  360448-edge mei_m
irq  17:          0  17-fasteoi idma64   irq 126:   61131741  32768-edge i915
irq 109:   18143470  109-fasteoi ELAN1   irq 127:        444  514048-edge snd_h
irq 120:          0  0-edge dmar0        irq 128:   42042078  524288-edge iwlwi

sda          3445959r         9150991w   dm-1         3795079r        13257612w
dm-0         3795200r        13257612w

lo          TX 6.82GiB       RX 6.82GiB       wlan0       TX 30.22GiB      RX 16.42GiB

Le paquet procinfo doit être installé.

9. dmidecode : informations sur le matériel, carte mère, BIOS…

# dmidecode (1)
[] (2)
System Information
	Manufacturer: ASUSTeK COMPUTER INC.
	Product Name: UX305CA
	Version: 1.0
	Serial Number: FXNXCX0X8X4X5XA
	UUID: 58B66962-XXXX-3448-XXXX-07F60D8386B6
	Wake-up Type: Power Switch
	SKU Number: ASUS-NotebookSKU
	Family: UX
[]
# dmidecode | wc -l
478 (3)
1 commande lancée en tant qu’utilisateur root
2 trop de sortie pour lister tout ici
3 nombre de lignes listées

Beaucoup d’informations défilent à l’écran, en particulier à propos du BIOS et de la carte mère.

Ces numéros de série sont sensés être unique. À l’instar de l’adresse MAC d’une carte réseau.

10. lshw : information sur le matériel, les périphériques

Le paquet éponyme doit être installé.

# lshw (1)
[] (2)
     *-memory
          description: Mémoire Système
          identifiant matériel: 12
          emplacement: Carte mère
          taille: 8GiB
        *-bank:0
             description: SODIMM LPDDR3 Synchrone 1867 MHz (0,5 ns)
             fabriquant: Elpida
             identifiant matériel: 0
             numéro de série: 00000000
             emplacement: ChannelA-DIMM0
             taille: 4GiB
             bits: 64 bits
             horloge: 1867MHz (0.5ns)
[]
$ lshw | wc -l
382 (3)
1 commande lancée en tant qu’utilisateur root
2 trop de sortie pour lister tout ici
3 nombre de lignes listées

11. lstopo : résumé de la topologie du système

Nécessite le paquet hwloc.

$ lstopo
Machine (7408MB)
  Package L#0 + L3 L#0 (4096KB)
    L2 L#0 (256KB) + L1d L#0 (32KB) + L1i L#0 (32KB) + Core L#0
      PU L#0 (P#0)
      PU L#1 (P#2)
    L2 L#1 (256KB) + L1d L#1 (32KB) + L1i L#1 (32KB) + Core L#1
      PU L#2 (P#1)
      PU L#3 (P#3)
  Misc(MemoryModule)
  Misc(MemoryModule)
  HostBridge L#0
    PCI 8086:191e
      GPU L#0 "renderD128"
      GPU L#1 "card0"
      GPU L#2 "controlD64"
    PCI 8086:9d03
      Block(Disk) L#3 "sda"
    PCIBridge
      PCI 8086:095a
        Net L#4 "wlan0"

Mais aussi en version dessinée dans la console :

$ lstopo -.txt
┌─────────────────────────────────────────────────────────────────────────────┐
│ Machine (7408MB)                                                            │
│                                                                             │
│ ┌────────────────────────────────┐            ┌───────────────────────────┐ │
│ │ Package P#0                    │  ├┤╶─┬─────┤ PCI 8086:191e             │ │
│ │                                │      │     │                           │ │
│ │ ┌────────────────────────────┐ │      │     │ ┌────────────┐  ┌───────┐ │ │
│ │ │ L3 (4096KB)                │ │      │     │ │ renderD128 │  │ card0 │ │ │
│ │ └────────────────────────────┘ │      │     │ └────────────┘  └───────┘ │ │
│ │                                │      │     │                           │ │
│ │ ┌────────────┐  ┌────────────┐ │      │     │ ┌────────────┐            │ │
│ │ │ L2 (256KB) │  │ L2 (256KB) │ │      │     │ │ controlD64 │            │ │
│ │ └────────────┘  └────────────┘ │      │     │ └────────────┘            │ │
│ │                                │      │     └───────────────────────────┘ │
│ │ ┌────────────┐  ┌────────────┐ │      │                                   │
│ │ │ L1d (32KB) │  │ L1d (32KB) │ │      │     ┌───────────────┐             │
│ │ └────────────┘  └────────────┘ │      ├─────┤ PCI 8086:9d03 │             │
│ │                                │      │     │               │             │
│ │ ┌────────────┐  ┌────────────┐ │      │     │ ┌─────┐       │             │
│ │ │ L1i (32KB) │  │ L1i (32KB) │ │      │     │ │ sda │       │             │
│ │ └────────────┘  └────────────┘ │      │     │ └─────┘       │             │
│ │                                │      │     └───────────────┘             │
│ │ ┌────────────┐  ┌────────────┐ │      │                                   │
│ │ │ Core P#0   │  │ Core P#1   │ │      │               ┌───────────────┐   │
│ │ │            │  │            │ │      └─────┼┤╶───────┤ PCI 8086:095a │   │
│ │ │ ┌────────┐ │  │ ┌────────┐ │ │                      │               │   │
│ │ │ │ PU P#0 │ │  │ │ PU P#1 │ │ │                      │ ┌───────┐     │   │
│ │ │ └────────┘ │  │ └────────┘ │ │                      │ │ wlan0 │     │   │
│ │ │ ┌────────┐ │  │ ┌────────┐ │ │                      │ └───────┘     │   │
│ │ │ │ PU P#2 │ │  │ │ PU P#3 │ │ │                      └───────────────┘   │
│ │ │ └────────┘ │  │ └────────┘ │ │                                          │
│ │ └────────────┘  └────────────┘ │                                          │
│ └────────────────────────────────┘                                          │
└─────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────────┐
│ Host: arkana                                                                │
│                                                                             │
│ Indexes: physical                                                           │
│                                                                             │
│ Date: mar. 12 juin 2018 11:15:13 CEST                                       │
└─────────────────────────────────────────────────────────────────────────────┘

12. /proc/filesystem : liste les systèmes de fichiers supportés

$ cat /proc/filesystem (1)
nodev	sysfs
nodev	rootfs
nodev	ramfs
nodev	bdev
nodev	proc
[] (2)
$ cat /proc/filesystem | wc -l
31 (3)
1 commande lancée en tant qu’utilisateur root
2 trop de sortie pour lister tout ici
3 nombre de lignes listées

13. fdisk -l : liste la table des partitions

# fdisk -l
Disque /dev/sda : 477 GiB, 512110190592 octets, 1000215216 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 4096 octets
taille d'E/S (minimale / optimale) : 4096 octets / 4096 octets
Type d'étiquette de disque : gpt
Identifiant de disque : B0D99CC0-XXXX-490C-XXXX-1CB71A7CBBCA

Périphérique   Début        Fin  Secteurs Taille Type
/dev/sda1       2048    1050623   1048576   512M Système EFI
/dev/sda2    1050624    1550335    499712   244M Système de fichiers Linux
/dev/sda3    1550336 1000214527 998664192 476,2G Système de fichiers Linux

Disque /dev/mapper/sda3_crypt : 476,2 GiB, 511313969152 octets, 998660096 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 4096 octets
taille d'E/S (minimale / optimale) : 4096 octets / 4096 octets

Disque /dev/mapper/arkana--vg-root : 476,2 GiB, 511310823424 octets, 998653952 secteurs

14. blkid : liste les UUID des différentes partitions

$ /sbin/blkid
/dev/mapper/sda3_crypt: UUID="4CWReB-XXXX-24lo-W8Xa-XXXX-cLKh-XXXXXX" TYPE="LVM2_member"
/dev/mapper/arkana--vg-root: UUID="d495776a-XXXX-436f-XXXX-8ee1fdf0d825" TYPE="ext4"