Comando lsof en Linux con ejemplos

Linux/Unix considera todo como un archivo y mantiene una carpeta. Entonces, «Archivos o un archivo» es muy importante en Linux/Unix. Mientras se trabaja en el sistema Linux/Unix, puede haber varios archivos y carpetas en uso, algunos de ellos serían visibles y otros no. 
El comando lsof significa Lista de archivos abiertos. Este comando proporciona una lista de archivos que se abren. Básicamente, brinda la información para averiguar qué archivos se abren mediante qué proceso. De una sola vez, enumera todos los archivos abiertos en la consola de salida. No solo puede enumerar archivos comunes comunes, sino que también puede enumerar un directorio, un archivo especial de bloque, una biblioteca compartida, un archivo especial de caracteres, una canalización normal, una canalización con nombre, un conector de Internet, un conector de dominio UNIX y muchos otros. se puede combinar con el comando grep y se puede usar para realizar búsquedas y listados avanzados. 

Sintaxis: 

$lsof [option][user name]

Opciones con ejemplos: 
 

  • Enumerar todos los archivos abiertos: este comando enumera todos los archivos abiertos por cualquier proceso en el sistema. 
~$ lsof

  • Aquí, observa que hay detalles de los archivos que se abren. ID de proceso, el usuario asociado con el proceso, FD (descriptor de archivo), el tamaño del archivo en conjunto brinda información detallada sobre el archivo abierto por el comando, ID de proceso, usuario, su tamaño, etc. 
    • FD representa como descriptor de archivo.
    • cwd : directorio de trabajo actual.
    • txt : archivo de texto.
    • mem : Archivo de memoria.
    • mmap : dispositivo mapeado en memoria.
  • Enumere todos los archivos abiertos por un usuario: hay varios usuarios de un sistema y cada usuario tiene diferentes requisitos y, en consecuencia, usa archivos y dispositivos. Para encontrar una lista de archivos abiertos por un usuario específico, este comando es útil. 

    Sintaxis: 

lsof -u username

  • En la figura anterior, con el comando lsof -u ubuntu se enumeran todos los archivos abiertos por el usuario de ubuntu. Junto con eso podemos ver el tipo de archivo aquí y son: 
    • DIR: Directorio
    • REG: archivo normal
    • CHR: archivo especial de caracteres
  • Enumerar todos los archivos abiertos por todos, excepto por un usuario específico: con la ayuda de este comando, puede enumerar todos los archivos abiertos por todo el proceso y todo el usuario. Pero cuando queremos encontrar la lista de archivos que abren todos los usuarios, excepto un usuario en particular, podemos usar: 

    Sintaxis: 

lsof -u ^root

  • En la figura dada, podemos observar que no hay archivos abiertos por el usuario root.
  • Enumerar todos los archivos abiertos por un proceso en particular: este comando puede enumerar todos los archivos abiertos por un proceso en particular. -c seguido de los nombres de los procesos puede encontrar todos los archivos abiertos por ese proceso en particular que se nombra en el comando. 

    Sintaxis: 

lsof -c Mysql

  • Aquí, puede observar que los archivos y su descripción se abrieron mediante el proceso Mysql. Otro ejemplo son los archivos que abre el proceso de apache: 
     

  • Enumere todos los archivos abiertos que abre un proceso en particular: cada archivo está asociado con algún ID de proceso. Puede haber muchos archivos que son abiertos por un proceso particular. Al usar lsof -p ID de proceso, se pueden verificar los archivos abiertos por un proceso en particular. 

    Sintaxis: 

lsof -p process ID

  • Archivos abiertos por todos los demás PID: como el comando de figura anterior enumera los archivos abiertos por un ID de proceso en particular. De la misma manera, puede usar la opción de comando a continuación para encontrar la lista de archivos que no están abiertos por un ID de proceso en particular. 

    Sintaxis: 

lsof -p ^process ID

  • Enumere los ID de los procesos principales: hay una gran cantidad de procesos que se ejecutan en un sistema y tienen archivos abiertos para su uso. Puede haber muchos procesos secundarios de un proceso y este proceso también puede denominarse proceso principal. Para averiguar la lista de archivos abiertos por el proceso principal, el comando Id lsof se usa con la opción -R

    Sintaxis: 

$lsof -R

  • Archivos abiertos por un directorio: enumera los archivos que abre un directorio en particular. Hay archivos, así como el directorio en un sistema. Por lo tanto, puede haber varios archivos abiertos por un directorio, así como el archivo normal. 

    Sintaxis: 

$lsof -D directory path

  • Archivos abiertos por conexiones de red: nuestra PC/sistema se puede conectar a través de varias redes, lo que ayuda en una variedad de propósitos. Como sabemos que en Linux todo es un archivo, incluso podemos verificar los archivos que abren algunas conexiones de red en el sistema. 

    Sintaxis: 

$lsof -i

  • Aquí, en la figura, podemos ver los archivos abiertos por la red TCP. De la misma manera, podemos verificar UDP, etc.

Nota: Para conocer más detalles sobre el comando lsof, puede ver la página del manual de la siguiente manera:  

$ man lsof

Publicación traducida automáticamente

Artículo escrito por Bhumika_Rani y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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