GNU/Linux >> Tutoriels Linux >  >> Linux

Commande lsof sous Linux (10 exemples)

Sous Linux, tout est considéré comme des fichiers et organisé dans des répertoires. lsof (List of Open File) affiche une liste des fichiers qui sont ouverts. Cela aide principalement à trouver les informations sur le processus qui a ouvert les fichiers. Outre les fichiers, il peut répertorier un répertoire, un fichier spécial de bloc, une bibliothèque partagée, un fichier spécial de caractère, un canal normal, un canal nommé, un socket Internet, un socket de domaine UNIX et bien d'autres.

Dans ce didacticiel, nous apprenons la commande lsof sous Linux en utilisant des exemples faciles à comprendre .

commande lsof

La commande lsof par défaut est disponible dans la plupart des distributions Linux. Très souvent, la commande lsof est utilisée lorsque nous ne sommes pas en mesure de démonter un disque, puis la commande lsof aide à trouver le fichier ouvert et son processus à l'origine.

Syntaxe :

lsof [options] [names]

La syntaxe ci-dessus listera tous les fichiers qui ont été ouverts par tous les processus du système.

1. Lister tous les fichiers ouverts

Pour obtenir rapidement une liste des fichiers ouverts, tapez lsof. Il répertorie tous les fichiers qui ont été ouverts par les différents processus du système.

$ lsof 

Normalement, la sortie sera très longue, vous utilisez $ sudo lsof | more , si vous souhaitez afficher le contenu un écran à la fois.

2. Lister les fichiers ouverts par nom d'utilisateur

lsof a une commande qui peut être utilisée pour trouver une liste de fichiers spécifiques qui sont ouverts par un utilisateur spécifique.

Pour répertorier les fichiers ouverts par un nom d'utilisateur utilisez la commande suivante :

$ lsof -u bobbin

Pour plusieurs utilisateurs, utilisez la syntaxe suivante :

$ lsof -u [username1] -u [username2]

OU

$ lsof -u [username1], [username2]

Pour lister les fichiers ouverts sauf pour certains utilisateurs :

$ lsof -u ^root

Pour lister uniquement l'identifiant du processus, utilisez le -t option.

$ lsof -t -u sonar

Cela sera utile au cas où vous auriez besoin de tuer tous les processus liés à une utilisation spécifique.

$ kill -9 lsof -t -u sonar

3. Lister les fichiers ouverts par processus

lsof peut également être utilisé pour lister les fichiers ouverts par un processus spécifique en utilisant le -c option suivie du nom du processus.

Par exemple pour lister tous les fichiers ouverts par ssh :

$ lsof -c ssh

4. Lister les fichiers ouverts par nom de fichier

Nous pouvons spécifier le nom du fichier comme argument pour lister tous les processus qui ont ouvert un fichier spécifique.

Pour lister tous les processus ouverts par le fichier /var/log/messages, tapez :

$ lsof /var/log/messages

5. Répertorier les fichiers ouverts par ID de processus

Chaque fichier se voit attribuer un ID de processus. Un seul processus peut ouvrir un grand nombre de fichiers. Nous pouvons utiliser la commande lsof pour lister tous les fichiers ouverts pour un ID de processus donné.

Par exemple, pour répertorier les fichiers ouverts avec l'ID de processus 2, saisissez :

$ lsof -p 2

Incase pour répertorier les fichiers ouverts pour plusieurs ID de processus, tapez

$ lsof -p 2,3

Un système contient un grand nombre de processus, dont chacun a des fichiers ouverts à l'utilisation. Un processus peut avoir de nombreux processus enfants, et ce processus est également appelé processus parent.

La commande lsof est utilisée avec le -R option pour obtenir une liste des fichiers ouverts par PPID (Parent Process IDentification).

$ lsof -R

Vous pouvez à partir de la sortie la 5ème colonne affichera le PPID des fichiers ouverts.

Pour trouver le PPID d'un PID spécifique, tapez :

$ lsof -p [PID] -R

6. Lister les fichiers ouverts dans un répertoire

Pour lister les fichiers ouverts dans un répertoire spécifique, nous pouvons utiliser la commande lsof.

Utilisez +d option pour afficher une liste des fichiers ouverts dans le répertoire fourni, cependant, il n'entre pas dans les sous-répertoires.

L'exemple suivant recherche les fichiers ouverts dans le répertoire /var/log :

$ lsof +d /var/log

L'option +D ordonne à lsof de rechercher dans toute la profondeur du répertoire toutes les instances ouvertes ainsi que tous les fichiers et répertoires qu'il contient.

Dans ce cas, lsof recherche les fichiers ouverts dans /var/log et ses sous-répertoires :

$ lsof +D /var/log

7. Lister les fichiers ouverts avec le protocole réseau

Un système peut être relié à divers réseaux à des fins diverses. Tout sous Linux est un fichier, nous pouvons examiner les fichiers qui sont ouverts par une connexion réseau dans le système.

Pour lister les fichiers ouverts dans le protocole TCP, nous pouvons exécuter la commande suivante.

$ lsof -i TCP 

Pour lister les fichiers ouverts dans le protocole UDP, nous pouvons exécuter la commande suivante.

$ sudo lsof -i UDP 

8. Lister les fichiers ouverts par numéro de port

lsof a une commande qui répertorie spécifiquement les fichiers ouverts sur un numéro de port donné pour répertorier tous les processus en cours d'exécution sur ce port.

Par exemple pour lister les fichiers ouverts sur le port numéro 443

$ lsof -i :443

Vous pouvez répertorier les fichiers ouverts pour plusieurs numéros de ports comme suit :

$ lsof -i :80,443

Vous pouvez également répertorier les fichiers ouverts de TCP ou UDP par plages de ports.

$ lsof -i TCP:1-49151

9. Lister les fichiers ouverts par IPv4/IPv6

Il existe une option dans lsof pour répertorier les fichiers réseau IPv4 ou IPv6 ouverts.

Pour afficher les fichiers ouverts IPv4, tapez

$ lsof -i4

La syntaxe suivante peut être utilisée pour afficher les fichiers ouverts IPv6 :

$ lsof -i6

10. Exécuter lsof en continu

Le mode de répétition permet à lsof de répéter continuellement les mises à jour avec des délais spécifiés. Le mode de répétition peut être activé en utilisant l'option '-r' ou '+r', où '+r' se terminera lorsqu'aucun fichier ouvert n'est trouvé et '-r' continuera à être listé jusqu'à ce qu'une interruption manuelle soit initiée. Chaque sortie de cycle de retard sera séparée en utilisant '========'.

Syntaxe :

$ lsof [options] -r/+r[time-interval]

Par exemple :

$ lsof -u sonar -r5

En-têtes de commande lsof

Le lsof a plusieurs colonnes.

COMMAND     PID   TID TASKCMD               USER   FD      TYPE             DEVICE  SIZE/OFF       NODE NAME

Le nom de la commande UNIX associée au processus est stocké dans la COMMAND colonne.

Le PID affiche l'ID de processus de la commande.

Le USER affiche le nom de l'utilisateur associé au processus suivant.

Le TID affiche l'ID de la tâche.

Le FD est un descripteur de fichier qui inclut des abréviations telles que cwd (répertoire de travail actuel), txt (fichiers texte), mem (fichier mappé en mémoire), rtd (répertoire racine) et bien d'autres.

TYPE est une abréviation pour un type de fichier spécifique, tel que REG (fichier régulier), DIR (répertoire), CHR (fichier spécial de caractères), etc.

Le DEVICE contient les numéros d'appareil.

Le SIZE/OFF contient la taille du fichier ou le décalage du fichier en octets.

Le NODE la valeur de la colonne représente le numéro de nœud d'un fichier local.

Le NAME affiche le nom du point de montage et du système de fichiers du fichier, ainsi que l'adresse Internet.

Conclusion

Dans ce didacticiel, nous avons découvert la commande lsof et ses utilisations avec des exemples. lsof fournit un certain nombre d'options pour personnaliser sa sortie afin de répondre à vos besoins. Il vous permet de combiner facilement et rapidement plusieurs arguments pour obtenir le résultat requis.


Linux
  1. Exemples pratiques de la commande rsync sous Linux

  2. 15 exemples de commande Linux lsof (identifier les fichiers ouverts)

  3. Exemples de commande rm sous Linux

  4. Exemples de commandes ps sous Linux

  5. w Exemples de commandes sous Linux

Commande Linux wc avec exemples

Commande Rm sous Linux

Tutoriel de commande Linux lsof pour les débutants (15 exemples)

Exemples de commandes id sous Linux

Commande lsof sous Linux avec exemples

Commande comm Linux avec exemples