Comandos Linux · 6 min read · Sep 16, 2025

Tutorial del comando lsof de Linux para principiantes (15 ejemplos)

El comando lsof de Linux muestra en su salida información sobre los archivos que están abiertos por un proceso. En este artículo, discutiremos la herramienta lsof de Linux utilizando 15 ejemplos fáciles de entender. Tenga en cuenta que todos los ejemplos mencionados en este tutorial han sido probados en Ubuntu 22.04 LTS, pero también funcionarán en otras distribuciones de Linux como Debian, Fedora y CentOS.

Acerca del comando lsof

Si desea ver rápidamente el nombre de los archivos que han sido abiertos por un proceso particular (o todos los procesos), el comando lsof le permite hacerlo. Un archivo abierto podría ser un archivo regular o un directorio, una biblioteca, un archivo especial o dispositivo de bloque, un archivo especial de caracteres, una referencia de texto ejecutable, o incluso un flujo o un archivo de red. También puede listar procesos por número de puerto. Si no ha iniciado sesión como usuario root, es posible que deba anteponer ‘sudo’ a los comandos.

Instalar el comando lsof de Linux

La mayoría de las distribuciones de Linux vienen con lsof preinstalado. Si no está instalado en su sistema aún, use los siguientes comandos para instalar lsof:

En Ubuntu y Debian:

$ sudo apt install lsof

En CentOS y Fedora:

$ dnf install lsof

1. Cómo listar todos los archivos abiertos

Para listar todos los archivos abiertos, ejecute el comando lsof sin ningún argumento:

lsof

Por ejemplo, aquí está la captura de pantalla de una parte de la salida que produjo el comando anterior en mi sistema:

Cómo listar todos los archivos abiertos en Linux

La primera columna representa el proceso mientras que la última columna contiene el nombre del archivo. Para detalles sobre todas las columnas, dirígete a la página del manual del comando.

2. Cómo listar archivos abiertos por procesos pertenecientes a un usuario específico

La herramienta también le permite listar archivos abiertos por procesos pertenecientes a un usuario específico. Esta función se puede acceder utilizando la opción de línea de comandos -u.

lsof -u [nombre-de-usuario]

Por ejemplo:

lsof -u administrador

Cómo listar archivos abiertos por procesos pertenecientes a un usuario específico

3. Cómo listar archivos basados en su dirección de Internet

La herramienta le permite listar archivos basados en su dirección de Internet. Esto se puede hacer utilizando la opción de línea de comandos -i. Por ejemplo, si lo desea, puede tener archivos IPv4 e IPv6 mostrados por separado. Para IPv4, ejecute el siguiente comando:

lsof -i 4

Por ejemplo:

Cómo listar archivos basados en su dirección de Internet

De manera similar, para IPv6, ejecute el siguiente comando:

lsof -i 6

Por ejemplo: lsof -i 6

LSOF oyentes IPv6

4. Cómo listar todos los archivos por nombre de aplicación

La opción de línea de comandos -c le permite obtener todos los archivos abiertos por el nombre del programa.

$ lsof -c apache

No tiene que usar el nombre completo del programa, ya que se muestran todos los programas que comienzan con la palabra ‘apache’. Así que en nuestro caso, listará todos los procesos de la aplicación ‘apache2’.

Obtener archivos abiertos por nombre de programa

La opción -c es básicamente solo un atajo para los dos comandos:

$ lsof | grep apache

5. Cómo listar archivos específicos de un proceso

La herramienta también le permite mostrar archivos abiertos basados en números de identificación de proceso (PID). Esto se puede hacer utilizando la opción de línea de comandos -p.

lsof -p [PID]

Por ejemplo:

lsof -p 856

Cómo listar archivos específicos de un proceso

Continuando, también puede excluir PIDs específicos en la salida agregando el símbolo ^ antes de ellos. Para excluir un PID específico, puede ejecutar el siguiente comando:

lsof -p [^PID]

Por ejemplo: lsof -p ^1

Cómo listar archivos específicos de un proceso - resultado

Como puede ver en la captura de pantalla anterior, el proceso con id 1 está excluido de la lista.

6. Cómo listar IDs de procesos que han abierto un archivo particular

La herramienta le permite listar IDs de procesos que han abierto un archivo particular. Esto se puede hacer utilizando la opción de línea de comandos -t.

$ lsof -t [nombre-del-archivo]

Por ejemplo:

$ lsof -t /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.9.0

Cómo listar IDs de procesos que han abierto un archivo particular

7. Cómo listar todos los archivos abiertos en un directorio

Si lo desea, también puede hacer que lsof busque todas las instancias abiertas de un directorio (incluyendo todos los archivos y directorios que contiene). Esta función se puede acceder utilizando la opción de línea de comandos +D.

$ lsof +D [ruta-del-directorio]

Por ejemplo:

$ lsof +D /usr/lib/locale

Cómo limitar lsof a un directorio particular

8. Cómo listar todos los archivos de red de Internet y x.25 (HP-UX)

Esto es posible utilizando la opción de línea de comandos -i que describimos anteriormente. Solo que debe usarla sin ningún argumento.

$ lsof -i

Cómo listar todos los archivos de red de Internet y x.25 (HP-UX)

9. Descubrir qué programa está usando un puerto

El interruptor -i del comando le permite encontrar un proceso o aplicación que escucha en un número de puerto específico. En el ejemplo a continuación, verifiqué qué programa está usando el puerto 80.

$ lsof -i :80

En lugar del número de puerto, puede usar el nombre del servicio como se indica en el archivo /etc/services. Ejemplo para verificar qué aplicación escucha en el puerto HTTPS (443):

$ lsof -i :https

Resultado:

Listar procesos por puerto o servicio abierto

Los ejemplos anteriores verificarán tanto TCP como UDP. Si desea verificar solo TCP o UDP, anteponga la palabra ‘tcp’ o ‘udp’. Por ejemplo, qué aplicación está usando el puerto 25 TCP:

$ lsof -i tcp:25

o qué aplicación usa el puerto UDP 53:

$ lsof -i udp:53

10. Cómo listar archivos abiertos basados en el rango de puertos

La utilidad también le permite listar archivos abiertos basados en un puerto específico o rango de puertos. Por ejemplo, para mostrar archivos abiertos para el puerto 1-1024, use el siguiente comando:

$ lsof -i :1-1024

Cómo listar archivos abiertos basados en el rango de puertos

11. Cómo listar archivos abiertos basados en el tipo de conexión (TCP o UDP)

La herramienta le permite listar archivos basados en el tipo de conexión. Por ejemplo, para archivos específicos de UDP, use el siguiente comando:

$ lsof -i udp

Cómo listar archivos abiertos basados en el tipo de conexión (TCP o UDP)

De manera similar, puede hacer que lsof muestre archivos específicos de TCP.

12. Cómo hacer que lsof liste el PID padre de los procesos

También hay una opción que obliga a lsof a listar el número de identificación del proceso padre (PPID) en la salida. La opción en cuestión es -R.

$ lsof -R

Para obtener información de PPID para un PID específico, puede ejecutar el siguiente comando:

$ lsof -p [PID] -R

Por ejemplo:

$ lsof -p 3 -R

Cómo hacer que lsof liste el PID padre de los procesos

13. Cómo encontrar actividad de red por usuario

Al usar una combinación de las opciones de línea de comandos -i y -u, podemos buscar todas las conexiones de red de un usuario de Linux. Esto puede ser útil si inspecciona un sistema que podría haber sido hackeado. En este ejemplo, verificamos toda la actividad de red del usuario www-data:

$ lsof -a -i -u www-data

Encontrar actividad de red por usuario en Linux

14. Listar todos los archivos mapeados en memoria

Este comando lista todos los archivos mapeados en memoria en Linux.

$ lsof -d mem

Encontrar archivos mapeados en memoria

15. Listar todos los archivos NFS

La opción -N le muestra una lista de todos los archivos NFS (Sistema de Archivos de Red).

$lsof -N

Conclusión

Aunque lsof ofrece una gran cantidad de opciones, las que hemos discutido aquí deberían ser suficientes para que comience. Una vez que haya terminado de practicar con estos, dirígete a la página del manual de la herramienta para aprender más sobre ella. Oh, y en caso de que tenga alguna duda o consulta, deje un comentario a continuación.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.