Commandes Bash ls* : Gestion des Fichiers et Système
Introduction
Cette documentation se concentre sur les commandes Bash de la famille ls*, essentielles pour la gestion des fichiers, des périphériques, et du système. Ces commandes offrent une vue complète et détaillée de divers aspects du système Linux, notamment :
Gestion des fichiers : Explorer les répertoires, examiner les attributs des fichiers, et analyser leur contenu (ls, lsattr).
Gestion des périphériques : Visualiser les disques, partitions, et périphériques connectés (lsblk, lsusb, lspci).
Analyse du système : Examiner les espaces de noms et les modules du noyau (lsns, lsmod).
Informations matérielles : Obtenir des détails sur l’architecture CPU et les périphériques connectés (lscpu, lsusb, lspci).
—
Résumé des Commandes
Commande |
Catégorie |
Description |
---|---|---|
lsof |
Gestion des fichiers |
Liste les fichiers ouverts par les processus. |
ls |
Gestion des fichiers |
Liste le contenu des répertoires avec métadonnées. |
lsattr |
Gestion des fichiers |
Affiche les attributs étendus des fichiers. |
lsblk |
Gestion des périphériques |
Affiche des informations sur les périphériques de bloc. |
lsmod |
Analyse des modules noyau |
Liste les modules chargés dans le noyau. |
lscpu |
Analyse matérielle |
Fournit des informations sur l’architecture CPU. |
lsusb |
Analyse matérielle |
Fournit des informations sur les périphériques USB. |
lspci |
Analyse matérielle |
Fournit des informations sur les périphériques PCI. |
lsns |
Gestion des espaces de noms |
Affiche les espaces de noms actifs dans le noyau. |
—
Les Commandes
lsof
Description :
lsof (List Open Files) est une commande puissante qui liste tous les fichiers ouverts par les processus en cours d’exécution. Un fichier ouvert peut être :
Un fichier ordinaire.
Un répertoire.
Un périphérique spécial.
Un socket réseau (connexion active ou en attente).
Une bibliothèque partagée ou un fichier supprimé.
Chaque ligne de sortie fournit des informations détaillées sur le processus qui accède au fichier, telles que le nom du processus, son PID, le descripteur de fichier utilisé, et plus encore.
Cas d’utilisation :
Identifier les fichiers ouverts par un utilisateur ou un processus spécifique.
Diagnostiquer des fichiers bloqués ou en usage.
Analyser les connexions réseau actives sur le système.
Identifier les fichiers ouverts dans un répertoire donné pour libérer des ressources.
Options principales :
-u <utilisateur> : Filtre les fichiers ouverts par un utilisateur spécifique.
-p <PID> : Liste les fichiers ouverts par un processus spécifique.
-i : Affiche les connexions réseau (écoute ou établies).
+D <répertoire> : Recherche récursive des fichiers ouverts dans un répertoire donné.
-t : Retourne uniquement les PIDs des processus trouvés.
Présentation des types de fichiers (`TYPE`) :
La colonne TYPE dans la sortie de lsof décrit la nature des fichiers ouverts. Voici les types courants :
`REG` : Fichier régulier. Par exemple, un document, une image, ou un fichier texte.
`DIR` : Répertoire. Indique qu’un processus travaille dans un répertoire spécifique.
`CHR` : Périphérique spécial en mode caractère. Exemples : /dev/tty, /dev/null.
`BLK` : Périphérique spécial en mode bloc. Par exemple : disques et partitions comme /dev/sda1.
`FIFO` : Tube nommé (FIFO). Utilisé pour la communication entre processus.
`SOCK` : Socket. Représente une connexion réseau ou une socket IPC.
`DEL` : Fichier supprimé. Le fichier a été supprimé, mais est toujours utilisé par un processus.
Exemples et Résultats :
Lister les fichiers ouverts par un utilisateur :
lsof -u john
Résultat :
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME bash 1234 john cwd DIR 8,1 4096 2 / firefox 5678 john txt REG 8,1 1703944 12345 /usr/bin/firefox ssh 9102 john 3u CHR 5,0 0t0 1 /dev/tty
Analyse :
Le processus bash utilise le répertoire courant (cwd) comme répertoire de travail.
firefox a ouvert un fichier régulier (REG) dans /usr/bin.
ssh utilise un terminal virtuel (CHR).
Afficher les connexions réseau actives :
lsof -i
Résultat :
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sshd 2345 root 3u IPv4 234567 0t0 TCP 10.0.0.1:ssh->10.0.0.2:12345 (ESTABLISHED) httpd 5678 www 4u IPv4 123456 0t0 TCP *:80 (LISTEN)
Analyse :
sshd a une connexion réseau active (ESTABLISHED) avec une machine distante.
httpd est en attente (LISTEN) sur le port 80.
Rechercher les fichiers ouverts dans un répertoire spécifique :
lsof +D /var/log
Résultat :
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME rsyslogd 1024 root 3w REG 8,1 12345 56789 /var/log/syslog
Analyse :
Le processus rsyslogd écrit dans le fichier /var/log/syslog.
Lister les fichiers supprimés toujours utilisés par des processus :
lsof | grep DEL
Résultat :
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME bash 5678 root mem DEL 8,1 0 123456 /tmp/file.tmp
Analyse :
Le fichier /tmp/file.tmp a été supprimé mais est encore en mémoire (DEL).
Attention :
L’utilisation de lsof sans privilèges root peut générer des erreurs Permission denied pour certains fichiers ou processus.
lsof est un outil puissant mais peut être gourmand en ressources sur les systèmes avec de nombreux fichiers ouverts.
—
ls
Description :
ls liste le contenu des répertoires avec des informations sur les fichiers (permissions, tailles, dates de modification).
Cas d’utilisation :
Explorer un répertoire.
Vérifier les permissions ou tailles des fichiers.
Options principales :
-l : Affiche une liste détaillée.
-a : Inclut les fichiers cachés.
-h : Rend les tailles lisibles.
-t : Trie par date de modification.
Exemple : Liste détaillée avec tailles lisibles :
ls -lah
Résultat :
total 4.0K
-rw-r--r-- 1 user user 1.2K Dec 7 10:00 fichier1.txt
drwxr-xr-x 2 user user 4.0K Dec 7 10:00 dossier
Analyse :
Les colonnes incluent les permissions, le propriétaire, et la taille.
La colonne -rw-r–r– indique les droits en lecture/écriture pour le propriétaire.
—
lsattr
Description :
lsattr affiche les attributs étendus des fichiers sur les systèmes de fichiers compatibles (ext4).
Cas d’utilisation :
Diagnostiquer des fichiers immuables (i).
Identifier les répertoires ou fichiers protégés.
Options principales :
-R : Recherche récursive.
-a : Inclut les fichiers cachés.
Exemple : Vérifier les attributs d’un fichier :
lsattr test.txt
Résultat :
----i-------- test.txt
Analyse :
L’attribut i indique que le fichier est immuable.
—
lsblk
Description :
lsblk affiche une arborescence des périphériques de bloc comme les disques et partitions.
Cas d’utilisation :
Identifier les partitions montées et leurs points de montage.
Diagnostiquer les périphériques non montés.
Options principales :
-o : Spécifie les colonnes affichées (NAME,FSTYPE,SIZE,MOUNTPOINT).
-f : Affiche les systèmes de fichiers et UUID.
Exemple : Lister les périphériques avec leurs points de montage :
lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT
Résultat :
NAME FSTYPE SIZE MOUNTPOINT
sda 100G
├─sda1 ext4 50G /
└─sda2 swap 4G [SWAP]
Analyse :
Les partitions (sda1, sda2) sont identifiées avec leur système de fichiers (ext4, swap).
—
lsmod
Description :
lsmod liste les modules chargés dans le noyau, leur taille et leur utilisation.
Cas d’utilisation :
Vérifier quels modules sont chargés.
Diagnostiquer des problèmes liés aux modules noyau.
Exemple : Afficher les modules actifs :
lsmod
Résultat :
Module Size Used by
ext4 131072 1
xfs 999424 0
Analyse :
Le module ext4 est utilisé par une partition montée.
Le module xfs est chargé mais inutilisé.
—
lscpu
Description :
lscpu fournit des informations détaillées sur l’architecture CPU, y compris le nombre de cœurs, la fréquence, et les fonctionnalités prises en charge par le processeur.
Cas d’utilisation :
Diagnostiquer les performances CPU.
Vérifier la compatibilité matérielle avec des logiciels spécifiques.
Identifier les capacités matérielles (virtualisation, jeu d’instructions).
Options principales :
-e : Affiche les détails sous forme de tableau.
-p : Liste les informations sous forme de CSV.
–json : Fournit la sortie en format JSON.
-x : Inclut des informations supplémentaires.
Exemple : Afficher les informations CPU de base :
lscpu
Résultat :
Architecture: x86_64
CPU(s): 8
Thread(s) per core: 2
Core(s) per socket: 4
Socket(s): 1
Model name: Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz
CPU MHz: 3200.000
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 12M
Analyse :
CPU(s) indique le nombre total de processeurs logiques.
Les informations sur la virtualisation (VT-x) sont essentielles pour utiliser des machines virtuelles.
Les tailles des caches (L1, L2, L3) influencent les performances.
—
lsusb
Description :
lsusb affiche des informations sur les périphériques USB connectés au système, y compris les contrôleurs et les appareils connectés (claviers, souris, webcams, etc.).
Cas d’utilisation :
Identifier les périphériques USB connectés.
Diagnostiquer les problèmes matériels liés aux ports USB.
Vérifier les périphériques supportés par le noyau.
Options principales :
-v : Mode verbeux pour plus de détails.
-s : Filtrer les informations par bus et périphérique (ex. lsusb -s 002:003).
-t : Affiche une vue en arbre des périphériques.
-d <vendor>:<product> : Affiche uniquement les informations correspondant à un périphérique donné.
Exemple : Lister les périphériques USB :
lsusb
Résultat :
Bus 002 Device 004: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 003: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 002: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
Analyse :
Chaque périphérique est identifié par un ID fournisseur/produit (046d:c52b pour Logitech).
Bus et Device indiquent l’emplacement physique du périphérique.
Exemple : Vue en arbre des périphériques USB :
lsusb -t
Résultat :
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
|__ Port 2: Dev 2, Class=Hub, Driver=hub/4p, 480M
|__ Port 1: Dev 3, Class=Mass Storage, Driver=usb-storage, 480M
Analyse :
Le mode arbre montre la hiérarchie des périphériques et leurs débits (5000M pour USB 3.0).
—
lspci
Description :
lspci fournit des informations sur les périphériques PCI connectés au système, y compris les cartes réseau, cartes graphiques, contrôleurs de stockage, et autres composants.
Cas d’utilisation :
Identifier les périphériques PCI installés.
Diagnostiquer des problèmes matériels.
Vérifier la compatibilité des pilotes.
Options principales :
-v : Mode verbeux avec plus de détails.
-t : Affiche une vue en arbre des périphériques PCI.
-k : Inclut les informations sur les modules noyau associés.
-n : Affiche les ID des périphériques sous forme numérique.
Exemple : Lister les périphériques PCI :
lspci
Résultat :
00:00.0 Host bridge: Intel Corporation 8th Gen Core Processor Host Bridge/DRAM Registers (rev 07)
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 630 (rev 02)
00:14.0 USB controller: Intel Corporation Cannon Lake PCH USB 3.1 xHCI Host Controller (rev 10)
00:1f.3 Audio device: Intel Corporation Cannon Lake PCH cAVS (rev 10)
Analyse :
Chaque ligne indique un périphérique avec son ID (00:02.0) et sa fonction (VGA compatible controller).
Les informations permettent de localiser les périphériques problématiques.
Exemple : Afficher les modules associés :
lspci -k
Résultat :
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 630 (rev 02)
Subsystem: Dell UHD Graphics 630
Kernel driver in use: i915
Kernel modules: i915
Analyse :
Le module i915 est utilisé pour gérer le périphérique graphique.
—
lsns
Description :
lsns affiche les espaces de noms (namespaces) actifs dans le noyau Linux, utilisés pour isoler des ressources comme les processus, réseaux, et utilisateurs.
Cas d’utilisation :
Diagnostiquer les conteneurs ou processus isolés.
Vérifier les espaces de noms actifs sur un système.
Options principales :
-l : Affiche les colonnes complètes.
-p <PID> : Montre les espaces de noms associés à un processus spécifique.
-t : Filtre par type d’espace de noms (ex. : uts, ipc, net).
Exemple : Afficher les namespaces actifs :
lsns
Résultat :
NS TYPE NPROCS PID USER COMMAND
4026531835 uts 1 1 root /sbin/init
4026531836 ipc 1 1 root /sbin/init
4026531837 mnt 1 1 root /sbin/init
4026531838 pid 1 1 root /sbin/init
4026532256 net 1 1 root /sbin/init
Analyse :
TYPE indique le type d’espace de noms (uts, ipc, net).
NPROCS montre le nombre de processus utilisant chaque espace de noms.
—
Meta
Auteur : Cbillet
Date : 07/12/2024