Comment utiliser la commande lsof sous Linux pour répertorier les fichiers ouverts

Comment utiliser la commande lsof sous Linux pour répertorier les fichiers ouverts

⌛ Reading Time: 4 minutes

L’avantage de Linux est que vous pouvez facilement tout visualiser et tout gérer, du processus de démarrage à l’installation des packages logiciels. Ici, nous discutons de la façon dont vous pouvez utiliser la commande lsof sous Linux pour afficher les fichiers ouverts et les processus qui les utilisent. Savoir comment afficher cela peut vous aider à comprendre le fonctionnement du système et même à prendre les mesures nécessaires pour des processus spécifiques.

Commande Lsof

Pour afficher les fichiers ouverts et les utilisateurs ou processus qui en sont responsables, nous utilisons le lsof utilitaire. Par défaut, lsof est pré-installé dans la plupart des distributions.

Cependant, si vous ne l’avez pas installé, vous pouvez utiliser le gestionnaire de packages pour l’installer sur votre système.

Debian/Ubuntu

Sur Debian, exécutez la commande :

Arche/Manjaro

Sur Manjaro et d’autres distributions basées sur Arch, utilisez pacman en exécutant la commande :

CentOS/REHL/Fedora

Pour CentOS et la famille REHL, vous pouvez utiliser dnf :

Utilisez la commande lsof pour répertorier les fichiers ouverts pour un processus Linux

Comme la plupart des commandes Linux, l’utilitaire lsof est incroyablement simple à utiliser. Commencez par taper la commande lsof:

Une fois que vous avez exécuté la commande ci-dessus, lsof devrait renvoyer des informations sur les fichiers ouverts dans le système.

Noter: si vous avez des privilèges sudo, exécutez la commande avec sudo pour éviter les erreurs « autorisation refusée » sur des fichiers spécifiques.

Comme indiqué dans la sortie ci-dessus, la sortie lsof a les colonnes suivantes :

Colonne Représentation
Commander Affiche le nom du processus utilisant le fichier cible.
PID L’identifiant unique du processus utilisant le fichier.
TID La colonne affiche l’identifiant du thread.
TÂCHECMD Le nom de la commande de tâche.
UTILISATEUR Nom d’utilisateur ou UID de l’utilisateur exécutant le processus.
FD Descripteur de fichier du fichier et des modes.
TAPER Nœud associé au fichier cible.
DISPOSITIF Numéro d’appareil séparé par des virgules.
TAILLE/NON Taille du fichier en octets de la taille de décalage du fichier
NŒUD Valeur d’inode du fichier local. Vous pouvez utiliser la commande stat pour afficher inode informations pour le fichier.
NOM Point de montage du fichier.

Maintenant que vous comprenez ce que représente le contenu de l’impression de la commande lsof, utilisons la commande pour filtrer des informations spécifiques.

Comment filtrer pour un processus spécifique

Pour filtrer uniquement les fichiers spécifiques ouverts par le processus spécifique, nous pouvons utiliser soit le nom du processus, soit la valeur PID.

Par exemple, pour afficher les fichiers utilisés par le processus firefox, nous pouvons utiliser la commande :

La commande affichera tous les fichiers ouverts par le processus firefox.

Pour filtrer par ID de processus, nous pouvons utiliser le -p et transmettez l’ID de processus. Vous pouvez utiliser le top commande pour obtenir l’ID de processus du processus cible.

Par exemple, pour obtenir le PID du processus firefox, nous pouvons utiliser la commande :

Une fois que vous avez le PID du processus cible, utilisez lsof pour afficher les fichiers ouverts :

Lsof Pid

La commande ci-dessus imprimera les fichiers ouverts par le processus avec le PID spécifié.

Comment filtrer pour un utilisateur spécifique

Pour afficher uniquement les fichiers ouverts par un utilisateur spécifique, nous pouvons utiliser le -u drapeau. Par exemple, pour filtrer l’utilisateur Debian, utilisez la commande :

Lsof U Debian

Comment filtrer pour un fichier spécifique

Supposons que vous souhaitiez uniquement connaître le processus et l’utilisateur qui a ouvert un fichier spécifique. Pour cela, passez le nom du fichier à lsof :

Lsof sommeil

Ce qui précède ne filtrera que le fichier spécifique et renverra les informations associées, y compris l’utilisateur, l’ID de processus, etc.

Emballer

Dans ce didacticiel simple, nous avons expliqué comment interroger le système pour obtenir des informations sur les fichiers ouverts à l’aide de la commande lsof sous Linux. Voici quelques commandes supplémentaires pour vous permettre de lister le contenu d’un répertoire dans le terminal.