El comando lsof en Linux

Abid Ullah 20 junio 2023
  1. el comando lsof en Linux
  2. Use el comando lsof para listar puertos en Linux
  3. Enumere todos los archivos abiertos usando el comando lsof en Linux
  4. Listar todos los archivos abiertos por un usuario usando el comando lsof en Linux
  5. Enumere todos los archivos de Internet usando el comando lsof en Linux
  6. Enumere todos los archivos por un proceso específico usando el comando lsof en Linux
  7. Encuentre procesos que se ejecutan en puertos específicos usando el comando lsof en Linux
  8. Verifique los puertos de escucha usando el comando lsof en Linux
El comando lsof en Linux

En este artículo de Linux, aprenderemos sobre el comando lsof en el sistema operativo Linux. Veremos cómo usar este comando para diferentes propósitos en Linux.

Usamos el comando lsof para verificar los puertos que están en uso en el sistema operativo Linux. Usando este comando lsof, podemos averiguar si un puerto está en uso o no en el sistema operativo Linux.

Comencemos con lo que es el comando lsof en Linux.

el comando lsof en Linux

El lsof significa el comando Lista de archivos abiertos que se usa en Linux para determinar si un puerto está en uso o no. Este comando devuelve los procesos al usuario utilizados por el archivo del sistema en Linux.

Nos ayuda a determinar por qué un sistema de archivos permanece en uso y no se puede desmontar.

Como sabemos, el sistema operativo Linux considera todo como un archivo y una carpeta. Entonces, el archivo o una carpeta que se usa en el sistema Linux es muy importante.

Se utilizan varios archivos y carpetas cuando trabajamos en un sistema operativo Linux. Algunos de estos archivos o carpetas serían visibles para el usuario y otros no.

El comando lsof proporciona una lista de archivos o carpetas que se abren en el sistema operativo Linux. Este comando nos da información para encontrar los archivos que se abren por qué proceso en el sistema.

Con solo un intento, enumera todos los archivos abiertos en la consola de salida. El comando lsof no solo enumera archivos regulares comunes, sino que también puede enumerar directorios, bibliotecas compartidas, archivos especiales en el sistema y muchas otras cosas.

El comando lsof puede combinarse con el comando grep y usarse para búsqueda avanzada y listado de archivos en Linux.

Use el comando lsof para listar puertos en Linux

El comando lsof nos ayuda a enumerar todos los archivos o carpetas abiertos en nuestro sistema Linux. Entonces, podemos usar este comando para ver todos los procesos abiertos en un puerto específico en nuestro sistema Linux.

Para usar el comando lsof, necesitamos instalar la utilidad lsof si aún no está instalada en nuestro sistema Linux usando el siguiente comando en la terminal.

$ sudo apt install lsof

Instalación de la utilidad lsof en el sistema Linux

Después de instalar la utilidad del comando lsof en nuestro sistema, ahora podemos usarlo para listar archivos y puertos en nuestro sistema Linux.

Enumere todos los archivos abiertos usando el comando lsof en Linux

Como usuarios de Linux, a veces queremos saber en qué número de puerto un archivo abre un proceso específico. Todos los puertos del sistema operativo Linux están asociados con un ID de proceso o servicio.

Veremos diferentes métodos que podemos usar para determinar en qué puerto un archivo abre un proceso.

Como se muestra en el siguiente ejemplo, usamos el comando lsof. Mostrará todos los archivos abiertos por cualquier proceso en nuestro sistema Linux.

Como podemos ver, muestra una larga lista de archivos abiertos por procesos en el sistema Linux que se muestra en la imagen a continuación.

Código de ejemplo:

$ lsof

Usando el comando lsof para listar archivos y puertos

La figura anterior muestra que hay detalles de los archivos que se abren. Los detalles incluyen la ID del proceso, el usuario asociado con el proceso, FD (Descriptor de archivo) y el tamaño del archivo.

Todo esto brinda información detallada sobre el archivo abierto por el comando, ID de proceso, usuario, etc.

Listar todos los archivos abiertos por un usuario usando el comando lsof en Linux

En caso de que más de un usuario esté utilizando un sistema Linux. Luego, cada uno tiene requisitos diferentes y usan archivos diferentes.

Si queremos encontrar una lista de archivos que abre un usuario específico, usamos el siguiente comando.

Sintaxis:

$ lsof -u username

Código de ejemplo:

$ lsof -u abid

Usando lsof -u enumerando todos los archivos abiertos por un usuario

La figura anterior muestra que el comando lsof -u abid enumera todos los archivos abiertos por un usuario llamado abid.

También podemos ver los diferentes tipos de archivos (CHR, REG, DIR). CHR es un archivo de caracteres especiales, REG es un archivo normal y DIR es un directorio.

Enumere todos los archivos de Internet usando el comando lsof en Linux

Para listar todos los archivos de Internet y de red, usamos la opción -i con el comando lsof. Usamos el comando lsof en la terminal así:

$ sudo lsof -i

Usando el comando lsof-i para enumerar todos los archivos de Internet

Después de ejecutar el comando lsof -i, podemos ver que muestra nombres de servicios y puertos numéricos en la salida.

Enumere todos los archivos por un proceso específico usando el comando lsof en Linux

Por ejemplo, se está ejecutando un proceso específico llamado Mysql y queremos encontrar todos los archivos abiertos por este proceso. Podemos averiguarlo usando el comando lsof así:

$ lsof -c Mysql

Este comando lsof listará todos los archivos abiertos por un proceso específico nombrado en el comando. De esta manera, podemos encontrar archivos abiertos por cualquier proceso simplemente dando el nombre del proceso en el comando.

Encuentre procesos que se ejecutan en puertos específicos usando el comando lsof en Linux

Si queremos descubrir todos los procesos en ejecución en un puerto, usamos el siguiente comando lsof con la opción -i. El siguiente ejemplo enumera todos los procesos en ejecución del puerto 30.

Podemos encontrar procesos ejecutándose en cualquier puerto específico simplemente dando el número de puerto en el comando, como se muestra en el código de ejemplo.

Código de ejemplo:

$ sudo lsof -i :30

Verifique los puertos de escucha usando el comando lsof en Linux

En el sistema Linux, el puerto de red se identifica por su número, dirección IP y tipo de protocolo utilizado para la comunicación, como TCP o UDP. Podemos verificar los puertos de escucha de diferentes maneras en Linux, y en este artículo usaremos el comando lsof para verificar los puertos de escucha.

Como sabemos, el lsof es un poderoso comando en Linux que puede proporcionar información sobre los archivos abiertos por los procesos. En Linux, usamos el comando lsof de la terminal para obtener todos los puertos TCP de escucha.

Comando utilizado para mostrar todos los puertos TCP que se ejecutan en nuestro sistema:

$ sudo lsof -nP -iTCP -sTCP:LISTEN

En el comando anterior, usamos -n para no cambiar los números de puerto en nombres. También usamos -p para mostrar las direcciones numéricas de los puertos.

Usamos -iTCP -sTCP:LISTEN para mostrar solo archivos de red con estado TCP.

Producción:

El comando lsof solía mostrar la lista de todos los puertos TCP

Después de usar el comando anterior en la terminal, podemos ver todos los puertos TCP que se ejecutan en nuestro sistema Linux en la salida.

Esperamos que este artículo le resulte útil para comprender cómo utilizar el comando lsof en Linux para listar procesos o archivos.

Autor: Abid Ullah
Abid Ullah avatar Abid Ullah avatar

My name is Abid Ullah, and I am a software engineer. I love writing articles on programming, and my favorite topics are Python, PHP, JavaScript, and Linux. I tend to provide solutions to people in programming problems through my articles. I believe that I can bring a lot to you with my skills, experience, and qualification in technical writing.

LinkedIn