GNU/Linux >> Tutoriels Linux >  >> Linux

lsof :commande introuvable

Parfois, nous sommes confrontés à des situations où nous ne pouvons pas démonter un disque car il indique que les fichiers sont utilisés, mais nous ne pouvons pas comprendre à quel fichier il fait référence. Dans de telles situations, nous pouvons vérifier quels fichiers sont ouverts par quel processus est en cours d'exécution sur le système.

Cela peut être fait en utilisant la commande lsof, qui signifie List Open Files. Étant donné que Linux considère tout, y compris les répertoires, les périphériques, les sockets, etc. comme des fichiers, nous pouvons utiliser lsof pour identifier facilement tous les fichiers ouverts.

Si nous lançons juste lsof, il listera tous les fichiers ouverts qui appartiennent à n'importe quel processus actif sur le système. Si la sortie est longue, nous pouvons utiliser la commande less pour faire défiler la sortie :

# lsof | less

La sortie affichée comporte des colonnes telles que Commande, PID, Utilisateur, FD, Type, Périphérique, etc., pour une meilleure compréhension des fichiers. La colonne FD contient des informations sur la description du fichier, telles que le répertoire de travail actuel (CWD), le répertoire racine (RTD), le texte du programme (TXT), etc. Si la colonne FD contient des informations telles que 0u, 1u, etc., le nombre signifie le descripteur de fichier réel et l'alphabet signifie les différents modes (accès en lecture, accès en écriture et accès en lecture/écriture).

si vous rencontrez l'erreur ci-dessous lors de l'exécution de la commande lsof :

lsof: command not found

ypu peut installer le package ci-dessous selon votre choix de distribution.

Répartition Commande
OS X brew install lsof
Debian apt-get install lsof
Ubuntu apt-get install lsof
Alpin apk ajouter lsof
Arch Linux pacman -S lsof
Kali Linux apt-get install lsof
CentOS yum installer lsof
Fédora dnf installer lsof
Raspbian apt-get install lsof

Options lsof fréquemment utilisées

  • -c x  :affiche uniquement les fichiers ouverts par les processus dont l'exécutable commence par le(s) caractère(s) spécifié(s) par x.
  • -i x :Au lieu d'afficher les fichiers ouverts, affiche les sockets dont l'adresse Internet est x. Si x n'est pas spécifié, affiche toutes les connexions IP. Ceci est fonctionnellement équivalent à netstat –anp.
  • -u nom d'utilisateur  :Afficher uniquement les fichiers que le nom d'utilisateur a ouverts.
  • -P  :Ne convertissez pas les numéros de port en noms de port (par exemple, affichez 25 au lieu de smtp).

Exemples de commandes lsof

Le simple fait d'exécuter les commandes lsof nous donne une liste de tous les fichiers ouverts sur le système. En utilisant l'option -u et en spécifiant le nom d'utilisateur, nous obtenons une liste des fichiers ouverts pour un utilisateur particulier. Lorsque nous utilisons l'option -i et spécifions un numéro de port, nous obtenons des informations sur tout processus en cours d'exécution sur ce port. Lorsque nous utilisons à la fois les options -i et -u avec un nom d'utilisateur particulier, nous obtenons des informations sur les fichiers et les commandes auxquels cet utilisateur accède.

1. Trouvez les processus qui ont un fichier donné ouvert :

# lsof path/to/file

2. Recherchez le processus qui a ouvert un port Internet local :

# lsof -i :port

3. N'affichez que l'ID de processus (PID) :

# lsof -t path/to/file

4. Lister les fichiers ouverts par l'utilisateur donné :

# lsof -u username

5. Listez les fichiers ouverts par la commande ou le processus donné :

# lsof -c process_or_command_name

6. Lister les fichiers ouverts par un processus spécifique, en fonction de son PID :

# lsof -p PID

7. Lister les fichiers ouverts dans un répertoire :

# lsof +D path/to/directory

8. Trouvez le processus qui écoute sur un port TCP IPv6 local et ne convertissez pas les numéros de réseau ou de port :

# lsof -i6TCP:port -sTCP:LISTEN -n -P

9. Répertoriez les processus dont votre répertoire personnel est ouvert :

# lsof ~

10. Listez tous les fichiers ouverts dans votre répertoire personnel :

# lsof +D

11. Lister les fichiers ouverts par les processus dont le nom commence par « i » et dont le propriétaire est « geek » :

# lsof -a -c i -u geek

12. Listez les fichiers en utilisant le port TCP 80, en répétant toutes les deux secondes jusqu'à ce que lsof soit terminé :

# lsof -i TCP:80 -r 2

Derniers mots

lsof répertorie les fichiers ouverts. Étant donné que tout sous Linux est un fichier, cet outil peut vous fournir une quantité fantastique d'informations sur votre système en cours d'exécution. Il est principalement utilisé pour indiquer quels processus ont quels fichiers ouverts, mais il peut également être utilisé pour afficher les informations de connexion TCP et UDP, entre autres.


Linux
  1. gestionnaire d'abonnement :commande introuvable

  2. dnf :commande introuvable

  3. décompresser :commande introuvable

  4. bc :commande introuvable

  5. dpkg :commande introuvable

ifrename :commande introuvable

nc :commande introuvable

aws-shell :commande introuvable

mv :commande introuvable

diff :commande introuvable

ln :commande introuvable