Cómo usar el comando lsof en Linux para enumerar archivos abiertos

Lo bueno de Linux es que puede ver y administrar todo fácilmente, desde el proceso de arranque hasta la instalación de paquetes de software. Aquí discutimos cómo puede usar el comando lsof en Linux para ver archivos abiertos y los procesos que los usan. Saber cómo ver esto puede ayudarlo a comprender cómo funciona el sistema e incluso a tomar las acciones necesarias para procesos específicos.

Comando Lsof

Para ver archivos abiertos y los usuarios o procesos responsables de ellos, utilizamos el lsof utilidad. Por defecto, lsof está preinstalado en la mayoría de las distribuciones.

Sin embargo, si no lo tiene instalado, puede usar el administrador de paquetes para instalarlo en su sistema.

Debian / Ubuntu

En Debian, ejecute el comando:

Arco / Manjaro

En Manjaro y otras distribuciones basadas en Arch, use pacman ejecutando el comando:

CentOS / REHL / Fedora

Para CentOS y la familia REHL, puede usar dnf:

Utilice el comando lsof para enumerar archivos abiertos para un proceso de Linux

Como la mayoría de los comandos de Linux, la utilidad lsof es increíblemente fácil de usar. Comience escribiendo el comando lsof:

Una vez que ejecute el comando anterior, lsof debería devolver información sobre los archivos abiertos en el sistema.

Nota: si tiene privilegios de sudo, ejecute el comando con sudo para evitar errores de “permiso denegado” en archivos específicos.

Como se muestra en el resultado anterior, el resultado de lsof tiene las siguientes columnas:

ColumnaRepresentación
MandoMuestra el nombre del proceso que utiliza el archivo de destino.
PIDEl identificador único para el proceso que usa el archivo.
TIDLa columna muestra el identificador del hilo.
TASKCMDEl nombre del comando de tarea.
USUARIONombre de usuario o UID del usuario que ejecuta el proceso.
FDDescriptor de archivo del archivo y modos.
ESCRIBENodo asociado con el archivo de destino.
DISPOSITIVONúmero de dispositivo separado por comas.
TAMAÑO / APAGADOTamaño de archivo en bytes de tamaño de compensación de archivo
NODOValor de inodo del archivo local. Puede utilizar el comando stat para mostrar inode información para el archivo.
NOMBREPunto de montaje del archivo.

Ahora que comprende lo que representa el contenido de la impresión del comando lsof, usemos el comando para filtrar información específica.

Cómo filtrar por procesos específicos

Para filtrar solo archivos específicos abiertos por el proceso específico, podemos usar el nombre del proceso o el valor PID.

Por ejemplo, para mostrar los archivos usados ​​por el proceso de Firefox, podemos usar el comando:

Lsof C Firefox

El comando mostrará todos los archivos abiertos por el proceso de Firefox.

Para filtrar por ID de proceso, podemos usar el -p opción y pase el ID del proceso. Puedes usar el top comando para obtener el ID de proceso del proceso de destino.

Por ejemplo, para obtener el PID del proceso de Firefox, podemos usar el comando:

Una vez que tenga el PID del proceso de destino, use lsof para mostrar los archivos abiertos:

Lsof Pid

El comando anterior imprimirá los archivos abiertos por el proceso con el PID especificado.

Cómo filtrar por un usuario específico

Para ver solo los archivos abiertos por un usuario específico, podemos usar el -u bandera. Por ejemplo, para filtrar por el usuario de Debian, use el comando:

Lsof U Debian

Cómo filtrar por un archivo específico

Suponga que solo desea conocer el proceso y el usuario que abrió un archivo específico. Para hacer esto, pase el nombre del archivo a lsof:

Lsof Sleep

Lo anterior solo filtrará el archivo específico y devolverá la información relacionada, incluido el usuario, la identificación del proceso y más.

Terminando

En este sencillo tutorial, discutimos cómo consultar el sistema para obtener información sobre archivos abiertos usando el comando lsof en Linux. Aquí hay algunos comandos adicionales para que enumere el contenido de un directorio en la terminal.

¿Es útil este artículo?

Compártelo con alguien que le vaya a resultar de ayuda

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *