Tutoriel de la commande lsblk de Linux pour les débutants (8 exemples)

Dans Linux, les périphériques de bloc sont des fichiers spéciaux qui font référence à ou représentent un périphérique (qui peut être n’importe quoi, d’un disque dur à une clé USB). Il existe donc naturellement des outils en ligne de commande qui t’aident dans ton travail lié aux périphériques de bloc. Un de ces utilitaires est lsblk.

Dans ce tutoriel, nous allons parler de cette commande en utilisant des exemples faciles à comprendre. Mais avant cela, il est bon de mentionner que tous les exemples mentionnés ici ont été testés sur une machine Ubuntu 18.04 LTS.

Commande lsblk de Linux

La commande lsblk de Linux répertorie les périphériques de bloc. Voici sa syntaxe :

lsblk [options] [device...]

Et voici comment la page de manuel de l’outil l’explique :

       lsblk  lists  information  about  all  available or the specified block
       devices.  The lsblk command reads the sysfs filesystem and udev  db  to
       gather  information.  If  the udev db is not available or lsblk is com?
       piled without udev support than it tries  to  read  LABELs,  UUIDs  and
       filesystem  types  from the block device. In this case root permissions
       are necessary.

       The command prints all block devices (except RAM disks) in a  tree-like
       format  by  default.   Use  lsblk --help to get a list of all available
       columns.

       The default output, as well as the default  output  from  options  like
       --fs  and  --topology, is subject to change.  So whenever possible, you
       should avoid using default outputs in your scripts.  Always  explicitly
       define  expected columns by using --output columns-list in environments
       where a stable output is required.

       Note that lsblk might be executed in time when udev does not  have  all
       information  about recently added or modified devices yet. In this case
       it is recommended to use udevadm settle  before  lsblk  to  synchronize
       with udev

Voici quelques exemples sous forme de questions-réponses qui devraient te donner une meilleure idée du fonctionnement de lsblk.

Q1. Comment utiliser la commande lsblk ?

L’utilisation de base est assez simple – exécute simplement ‘lsblk’ sans aucune option.

lsblk

Voici le résultat que cette commande a produit sur mon système :

Comment utiliser la commande lsblk

La première colonne énumère les noms des périphériques, suivis des numéros de périphérique majeur et mineur correspondants, si le périphérique est amovible ou non (1 dans le cas où il l’est), la taille du périphérique, si le périphérique est en lecture seule ou non, le type de périphérique (disque, partition, etc.) et enfin le point de montage du périphérique (s’il existe).

Q2. Comment faire pour que lsblk affiche aussi les périphériques vides ?

Par défaut, la commande lsblk n’affiche que les périphériques non vides. Cependant, tu peux forcer l’outil à afficher aussi les périphériques vides. Pour cela, utilise l’option de ligne de commande -a.

lsblk -a

Par exemple, dans mon cas, la commande ci-dessus a produit le résultat suivant :

Comment faire pour que lsblk affiche aussi les appareils vides

La ligne ‘loop 13’ est le nouvel ajout dans ce cas.

Q3. Comment faire pour que lsblk imprime des informations sur la taille en octets ?

Par défaut, lsblk imprime les informations de taille sous une forme lisible par l’homme. Bien que ce soit une bonne chose, il y a des moments où tu peux avoir besoin de la taille en octets. Ce qui est bien, c’est qu’il existe une option (-b) qui fait cela.

lsblk -b

Voici un exemple de sortie :

Comment faire en sorte que lsblk imprime des informations sur la taille en octets ?

Tu peux donc voir que la colonne ‘Taille’ contient maintenant des entrées en octets.

Q4. Comment faire pour que lsblk imprime le modèle de zone pour chaque appareil ?

Tu peux le faire en utilisant l’option de ligne de commande -z.

lsblk -z

Par exemple, voici le résultat que la commande susmentionnée a produit sur mon système :

NAME   ZONED
loop0  none
loop1  none
loop2  none
loop3  none
loop4  none
loop5  none
loop6  none
loop7  none
loop8  none
loop9  none
loop10 none
loop11 none
loop12 none
sda    none
??sda1 none
??sda2 none
??sda3 none
??sda4 none
??sda5 none
??sda6 none
??sda7 none
??sda8 none
sdb    none
??sdb1 none
??sdb2 none

Q5. Comment faire pour que lsblk ignore les entrées pour les esclaves ?

Pour cela, tu dois utiliser l’option de ligne de commande -d, qui indique à lsblk de ne pas imprimer les informations relatives aux périphériques ou aux esclaves du détenteur.

lsblk -d

Voici un exemple de sortie :

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0    7:0    0   3.3M  1 loop /snap/gnome-system-monitor/36
loop1    7:1    0  86.6M  1 loop /snap/core/4486
loop2    7:2    0   140M  1 loop /snap/gnome-3-26-1604/59
loop3    7:3    0    21M  1 loop /snap/gnome-logs/25
loop4    7:4    0    87M  1 loop /snap/core/5145
loop5    7:5    0   1.6M  1 loop /snap/gnome-calculator/154
loop6    7:6    0   2.3M  1 loop /snap/gnome-calculator/180
loop7    7:7    0  14.5M  1 loop /snap/gnome-logs/37
loop8    7:8    0   3.7M  1 loop /snap/gnome-system-monitor/51
loop9    7:9    0  12.2M  1 loop /snap/gnome-characters/69
loop10   7:10   0    13M  1 loop /snap/gnome-characters/103
loop11   7:11   0 140.9M  1 loop /snap/gnome-3-26-1604/70
loop12   7:12   0  86.9M  1 loop /snap/core/4917
sda      8:0    0 931.5G  0 disk
sdb      8:16   1  14.7G  0 disk

Si tu compares avec les sorties produites dans les cas précédents, tu peux voir qu’aucune entrée d’esclave n’est produite en sortie dans ce cas.

Q6. Comment faire pour que lsblk utilise les caractères ascii pour le formatage des arbres ?

Par défaut, le type de formatage d’arbre utilisé par lsblk peut ne pas être convivial dans de nombreux cas. Par exemple, le copier-coller peut causer des problèmes de formatage. Donc si tu veux, tu peux forcer l’outil à utiliser les caractères ascii pour le formatage de l’arbre, ce que tu peux faire en utilisant l’option de ligne de commande -i.

lsblk -i

Voici un exemple de sortie :

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0    7:0    0   3.3M  1 loop /snap/gnome-system-monitor/36
loop1    7:1    0  86.6M  1 loop /snap/core/4486
loop2    7:2    0   140M  1 loop /snap/gnome-3-26-1604/59
loop3    7:3    0    21M  1 loop /snap/gnome-logs/25
loop4    7:4    0    87M  1 loop /snap/core/5145
loop5    7:5    0   1.6M  1 loop /snap/gnome-calculator/154
loop6    7:6    0   2.3M  1 loop /snap/gnome-calculator/180
loop7    7:7    0  14.5M  1 loop /snap/gnome-logs/37
loop8    7:8    0   3.7M  1 loop /snap/gnome-system-monitor/51
loop9    7:9    0  12.2M  1 loop /snap/gnome-characters/69
loop10   7:10   0    13M  1 loop /snap/gnome-characters/103
loop11   7:11   0 140.9M  1 loop /snap/gnome-3-26-1604/70
loop12   7:12   0  86.9M  1 loop /snap/core/4917
sda      8:0    0 931.5G  0 disk
|-sda1   8:1    0   100M  0 part
|-sda2   8:2    0  52.5G  0 part
|-sda3   8:3    0   293G  0 part
|-sda4   8:4    0     1K  0 part
|-sda5   8:5    0  93.4G  0 part
|-sda6   8:6    0   293G  0 part
|-sda7   8:7    0   3.9G  0 part
`-sda8   8:8    0 195.8G  0 part /
sdb      8:16   1  14.7G  0 disk
|-sdb1   8:17   1   200M  0 part
`-sdb2   8:18   1  14.5G  0 part

Tu peux donc voir que la sortie (voir les entrées sda) contient maintenant des caractères ASCII dans le formatage de l’arbre.

Q7. Comment faire pour que lsblk affiche des informations sur le propriétaire, le groupe et le mode du périphérique ?

Tu peux le faire en utilisant l’option de ligne de commande -m.

lsblk -m

Voici le résultat que la commande susmentionnée a produit dans mon cas :

Comment faire en sorte que lsblk affiche des informations sur le propriétaire, le groupe et le mode de l'appareil ?

Q8. Comment faire pour que lsblk affiche des colonnes sélectionnées ?

Si tu veux, tu peux aussi demander à lsblk de n’afficher que certaines colonnes, ce que tu peux faire en utilisant l’option de ligne de commande -o (qui te demande de passer une liste de colonnes séparées par des virgules que tu veux afficher).

Par exemple :

lsblk -o NAME,SIZE

La commande susmentionnée a produit la sortie suivante :

Comment faire en sorte que lsblk sorte des colonnes sélectionnées ?

Conclusion

Si ton travail sous Linux implique d’accéder à des informations liées à des périphériques de bloc, alors lsblk est une commande indispensable pour toi. Dans ce tutoriel, nous avons abordé plusieurs options de ligne de commande offertes par cet outil. Pour en savoir plus sur lsblk, consulte sa page de manuel.

Vous aimerez aussi...