GNU/Linux >> Tutoriels Linux >  >> Linux

Comment utiliser la commande lsof sous Linux

Le travail de la commande lsof est de "lister les fichiers ouverts" dans le système. Un fichier ouvert ne signifie pas nécessairement un fichier pdf ou un fichier texte, cela inclut les fichiers de disque ou les canaux utilisés par les processus en arrière-plan.

Cette commande est un outil pratique pour les débogueurs de système d'exploitation et les administrateurs système.

Même si la commande lsof est un utilitaire Linux préinstallé, les utilisateurs d'Ubuntu/Debian peuvent l'installer à l'aide d'apt si vous ne l'avez pas installé :

sudo apt install lsof

Les autres utilisateurs Linux peuvent installer via leur commande d'installation standard suivie de lsof .

Passons rapidement à l'utilisation de lsof commande :

Répertorier tous les fichiers ouverts dans le système

En exécutant la commande lsof sans aucune option, nous pouvons lister tous les fichiers ouverts dans le système. Cela videra le terminal avec beaucoup de données. Par conséquent, il est conseillé d'utiliser less commande qui limite les données lancées par n'importe quelle commande

sudo lsof | less

En appuyant sur 'ENTER' ou la touche fléchée vers le bas, nous pouvons naviguer vers le bas de la liste.

Chaque fichier de la sortie fournit des informations importantes sur son type et son utilisation.

  • COMMANDE – La commande Linux associée au processus responsable de l'ouverture du fichier.
  • PID – ID de processus du processus contenant le fichier.
  • TID – L'ID de thread pour le processus respectif.
  • UTILISATEUR – L'utilisateur Linux qui gère le processus.
  • FD – Descripteur de fichier utilisé par le processus pour s'associer au fichier.
    • cwd – répertoire de travail courant
    • rdt – répertoire racine
    • txt – un programme textuel comme du code
    • mémoire – fichier mappé en mémoire
  • TYPE – Le type de fichier
    • REG – Fichier régulier
    • DIR – Annuaire
    • CHR – Fichier de personnage
    • LIEN – Fichier de liens symboliques
  • APPAREIL – Les numéros de périphérique liés au fichier.
  • TAILLE/OFF – La taille du fichier ou son décalage en octets.
  • NOEUD – Le numéro d'inode.
  • NOM – Le nom du fichier.

Remarque : Certaines informations telles que l'inode ou le numéro de périphérique peuvent être masquées si la commande n'est pas exécutée avec les autorisations root.

Nous pouvons en savoir plus sur la sortie des pages de manuel accessibles depuis le terminal en exécutant man lsof.

Répertorier tous les fichiers ouverts par un utilisateur spécifique à l'aide de la commande lsof

Le lsof La commande prend en charge de nombreuses options pouvant être appliquées pour filtrer les fichiers ouverts. L'un d'eux est -u option pour afficher les fichiers ouverts pour un utilisateur spécifique.

sudo lsof -u <USER_NAME> | less

La troisième colonne est basée sur l'utilisateur responsable de l'ouverture du fichier. Semblable à la sortie de base, le terminal est surchargé de données sans signification et utilise donc less commande est conseillée.

Répertorier les fichiers ouverts dans un répertoire particulier

Les fichiers existent dans un répertoire, il est donc assez trivial que nous puissions extraire des fichiers ouverts dans un répertoire particulier.

lsof +D <DIR_NAME>

Dans la figure ci-dessus, nous avons répertorié le fichier actuellement ouvert dans le dossier Documents. Le fichier ouvert est un fichier C++ normal.

Répertorier les fichiers ouverts dans un système de fichiers particulier avec la commande lsof

Au lieu d'un seul répertoire, lsof La commande peut lister les fichiers ouverts à partir d'un système de fichiers particulier. Ceci est réalisé en plaçant le nom du système de fichiers après le lsof commande.

lsof <FILE_SYSTEM>

Dans la figure ci-dessus, nous affichons les fichiers ouverts dans le système de fichiers /proc.

Répertorier les fichiers ouverts par un processus particulier

En utilisant les ID de processus, nous pouvons filtrer les fichiers ouverts. Cela peut être fait à l'aide de -p option.

lsof -p <PID>

L'extrait ci-dessus du terminal affiche la liste des fichiers ouverts pour le processus avec le PID 3404.

Remarque : Le signe insertion (^) est utilisé pour inverser les paramètres dans le lsof commande. Par exemple lsof -p ^3404 , affiche la liste des fichiers ouverts pour tous les PID sauf 3404.

Répertorier les fichiers réseau ouverts

Linux stocke une gamme de fichiers réseau pour stocker les adresses IP ou la configuration de l'interface réseau. Ces types de fichiers ouverts peuvent être filtrés par -i drapeau.

lsof -i 

Ces fichiers ont certaines caractéristiques comme les types de protocoles de réseau. Les fichiers ouverts peuvent en outre être filtrés à l'aide de paramètres spécifiques tels que :

  • « 4 » – Les fichiers réseau pour IPv4
  • '6' – Les fichiers réseau pour IPv6
  • "TCP" – Les fichiers réseau pour TCP
  • "UDP" – Les fichiers réseau pour UDP
  • 'TCP :25' – Les fichiers réseau pour TCP, avec le numéro de port 25
  • 'TCP :1-25' – Les fichiers réseau pour TCP, avec numéro de port de 1 à 25

Par exemple :

lsof -i 6

Utilisation de la commande lsof pour rechercher des fichiers ouverts sur la base de la commande

Avec des milliers de fichiers ouverts dans le système, il semble impossible de rechercher linéairement une commande particulière. Par conséquent, le lsof la commande a le -c option pour filtrer les fichiers ouverts sur la base de la commande.

lsof -c <COMMAND>

Conclusion

Le lsof La commande prend en charge de nombreuses options efficaces pour le débogage et le dépannage des problèmes système. Les lecteurs intéressés peuvent visiter les pages de manuel via le terminal en exécutant man lsof , pour en savoir plus sur les privilèges et la sortie de la commande.

N'hésitez pas à commenter ci-dessous pour toute question ou commentaire.


Linux
  1. Comment utiliser la commande Disown sous Linux

  2. Comment utiliser la commande md5sum sous Linux

  3. Comment utiliser la commande Tar sous Linux

  4. Comment utiliser la commande Su sous Linux

  5. Comment utiliser la commande tar sous Linux

Comment utiliser une commande de fichier sous Linux

Comment utiliser la commande sysctl sous Linux

Comment utiliser la commande d'arrêt de Linux

Comment utiliser la commande SCP sous Linux

Comment utiliser la commande Gzip sous Linux ?

Comment utiliser la commande shred Linux