GNU/Linux >> Tutoriales Linux >  >> Linux

lsof:comando no encontrado

A veces, nos enfrentamos a situaciones en las que no podemos desmontar un disco porque dice que los archivos se están utilizando, pero no podemos entender a qué archivo se refiere. En tales situaciones, podemos verificar qué archivos están abiertos y qué proceso se está ejecutando en el sistema.

Esto se puede hacer usando el comando lsof, que significa Listar archivos abiertos. Dado que Linux considera todo, incluidos directorios, dispositivos, sockets, etc., como archivos, podemos usar lsof para identificar fácilmente todos los archivos abiertos.

Si solo ejecutamos lsof, enumerará todos los archivos abiertos que pertenecen a cualquier proceso activo en el sistema. Si la salida es larga, podemos usar el comando less para desplazarnos por la salida:

# lsof | less

La salida que se muestra tiene columnas como Comando, PID, Usuario, FD, Tipo, Dispositivo, etc., para una mejor comprensión de los archivos. La columna FD tiene información sobre la descripción del archivo, como el directorio de trabajo actual (CWD), el directorio raíz (RTD), el texto del programa (TXT), etc. Si la columna FD contiene información como 0u, 1u, etc., el número significa el descriptor real del archivo y el alfabeto significa los diferentes modos (acceso de lectura, acceso de escritura y acceso de lectura/escritura).

si encuentra el siguiente error mientras ejecuta el comando lsof:

lsof: command not found

ypu puede instalar el siguiente paquete según su elección de distribución.

Distribución Comando
OS X instalar cerveza lsof
Debian apt-get install lsof
Ubuntu apt-get install lsof
Alpino apk agregar lsof
Arco Linux pacman -S lsof
Kali Linux apt-get install lsof
Cent OS yum instalar lsof
Fedora dnf instalar lsof
Raspbian apt-get install lsof

Opciones de lsof utilizadas con frecuencia

  • -cx :solo muestra archivos que están abiertos por procesos cuyo ejecutable comienza con los caracteres especificados por x.
  • -i x :En lugar de mostrar archivos abiertos, muestre sockets cuya dirección de Internet sea x. Si no se especifica x, muestra todas las conexiones IP. Esto es funcionalmente equivalente a netstat –anp.
  • -u nombre de usuario :muestra solo los archivos que el nombre de usuario ha abierto.
  • -P :No convierta los números de puerto en nombres de puerto (por ejemplo, muestre 25 en lugar de smtp).

Ejemplos de comandos lsof

Simplemente ejecutar los comandos lsof nos da una lista de todos los archivos abiertos en el sistema. Al usar la opción -u y especificar el nombre de usuario, obtenemos una lista de archivos abiertos para un usuario en particular. Cuando usamos la opción -i y especificamos un número de puerto, obtenemos información sobre cualquier proceso que se esté ejecutando en ese puerto. Cuando usamos las opciones -i y -u con un nombre de usuario en particular, obtenemos información sobre los archivos y comandos a los que accede ese usuario.

1. Encuentra los procesos que tienen un archivo dado abierto:

# lsof path/to/file

2. Busque el proceso que abrió un puerto de Internet local:

# lsof -i :port

3. Solo genera la ID del proceso (PID):

# lsof -t path/to/file

4. Enumere los archivos abiertos por el usuario dado:

# lsof -u username

5. Enumere los archivos abiertos por el comando o proceso dado:

# lsof -c process_or_command_name

6. Listar archivos abiertos por un proceso específico, dado su PID:

# lsof -p PID

7. Lista de archivos abiertos en un directorio:

# lsof +D path/to/directory

8. Busque el proceso que está escuchando en un puerto TCP IPv6 local y no convierta los números de red o puerto:

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

9. Enumere los procesos que tienen su directorio de inicio abierto:

# lsof ~

10. Enumere todos los archivos abiertos en su directorio de inicio:

# lsof +D

11. Enumere los archivos abiertos por procesos cuyos nombres comienzan con "i" y cuyo propietario es "geek":

# lsof -a -c i -u geek

12. Enumere los archivos usando el puerto TCP 80, repitiendo cada dos segundos hasta que termine lsof:

# lsof -i TCP:80 -r 2

Palabras finales

lsof enumera los archivos abiertos. Dado que todo en Linux es un archivo, esta herramienta puede brindarle una cantidad fantástica de información sobre su sistema en ejecución. Se usa principalmente para saber qué procesos tienen qué archivos abiertos, pero también se puede usar para ver información de conexión TCP y UDP, entre otras cosas.


Linux
  1. ifrename:comando no encontrado

  2. netstat:comando no encontrado

  3. kubectl:comando no encontrado

  4. tvservice:comando no encontrado

  5. rm:comando no encontrado

aws-shell:comando no encontrado

dpkg:comando no encontrado

id:comando no encontrado

w:comando no encontrado

df:comando no encontrado

du:comando no encontrado