GNU/Linux >> Linux Esercitazione >  >> Linux

lsof Command in Linux (10 esempi)

In Linux, tutto è considerato come file e organizzato all'interno di directory. lsof (Elenco file aperti) visualizza un elenco di file aperti. Aiuta principalmente a scoprire le informazioni sul processo che ha aperto i file. Oltre ai file, può elencare una directory, un file speciale di blocco, una libreria condivisa, un file speciale di caratteri, una normale pipe, una named pipe, una presa Internet, una presa di dominio UNIX e molti altri.

In questo tutorial impariamo a conoscere lsof command su Linux utilizzando esempi di facile comprensione .

lsof comando

Il comando lsof per impostazione predefinita è disponibile nella maggior parte delle distribuzioni Linux. Molto comunemente il comando lsof viene utilizzato quando non siamo in grado di smontare un disco, quindi il comando lsof aiuta a trovare il file aperto e il suo processo che lo causa.

Sintassi:

lsof [options] [names]

La sintassi sopra elencherà tutti i file che sono stati aperti da tutti i processi nel sistema.

1. Elenca tutti i file aperti

Per ottenere rapidamente un elenco di file aperti, digitare lsof. Elenca tutti i file che sono stati aperti dai vari processi del sistema.

$ lsof 

Normalmente l'output sarà molto lungo, usi $ sudo lsof | more , se desideri visualizzare i contenuti una schermata alla volta.

2. Elenca i file aperti per nome utente

lsof ha un comando che può essere utilizzato per trovare un elenco di file specifici aperti da un utente specifico.

Per elencare i file aperti in base a un nome utente usa il seguente comando:

$ lsof -u bobbin

Per più utenti utilizzare la seguente sintassi:

$ lsof -u [username1] -u [username2]

O

$ lsof -u [username1], [username2]

Per elencare i file aperti ad eccezione di determinati utenti:

$ lsof -u ^root

Per elencare solo l'id del processo usa -t opzione.

$ lsof -t -u sonar

Ciò sarà utile nel caso in cui sia necessario terminare tutti i processi relativi a un uso specifico.

$ kill -9 lsof -t -u sonar

3. Elenca i file aperti per processo

lsof può anche essere usato per elencare i file aperti da un processo specifico usando il -c opzione seguita dal nome del processo.

Ad esempio per elencare tutti i file aperti tramite ssh:

$ lsof -c ssh

4. Elenca i file aperti per nome file

Possiamo specificare il nome del file come argomento per elencare tutti i processi che hanno aperto un file specifico.

Per elencare tutti i processi aperti dal file /var/log/messages, digitare:

$ lsof /var/log/messages

5. Elenca i file aperti per ID processo

A ogni file viene assegnato un ID processo. Un singolo processo può aprire un numero elevato di file. Possiamo usare il comando lsof per elencare tutti i file aperti per un determinato ID processo.

Ad esempio, per elencare i file aperti con ID processo 2, digitare:

$ lsof -p 2

Incase per elencare i file aperti per più ID processo, digitare

$ lsof -p 2,3

Un sistema contiene un gran numero di processi, ognuno dei quali ha file aperti per l'uso. Un processo può avere molti processi figlio e questo processo è anche noto come processo padre.

Il comando lsof viene utilizzato con -R opzione per ottenere un elenco di file aperti da PPID (Parent Process IDentification).

$ lsof -R

Puoi dall'output che la quinta colonna mostrerà il PPID dei file aperti.

Per trovare il PPID per un PID specifico, digitare:

$ lsof -p [PID] -R

6. Elenca i file aperti in una directory

Per elencare i file aperti in una directory specifica, possiamo usare il comando lsof.

Usa +d opzione per visualizzare un elenco di file aperti nella directory fornita, tuttavia, non va nelle sottodirectory.

L'esempio seguente cerca i file aperti nella directory /var/log:

$ lsof +d /var/log

L'opzione +D comanda a lsof di cercare nell'intera profondità della directory tutte le istanze aperte, nonché tutti i file e le directory che contiene.

In questo caso, lsof cerca i file aperti in /var/log e nelle sue sottodirectory:

$ lsof +D /var/log

7. Elenca i file aperti con protocollo di rete

Un sistema può essere collegato a varie reti per vari scopi. Tutto in Linux è un file, possiamo esaminare i file che vengono aperti da alcune connessioni di rete nel sistema.

Per elencare i file aperti nel protocollo TCP, possiamo eseguire il comando seguente.

$ lsof -i TCP 

Per elencare i file aperti nel protocollo UDP, possiamo eseguire il comando seguente.

$ sudo lsof -i UDP 

8. Elenca i file aperti per numero di porta

lsof ha un comando che elenca in modo specifico i file aperti su un determinato numero di porta per elencare tutti i processi in esecuzione su quella porta.

Ad esempio per elencare i file aperti sulla porta numero 443

$ lsof -i :443

Puoi elencare i file aperti per più numeri di porte come segue:

$ lsof -i :80,443

Puoi anche elencare i file aperti di TCP o UDP per intervalli di porte.

$ lsof -i TCP:1-49151

9. Elenca i file aperti per IPv4/IPv6

C'è un'opzione in lsof per elencare i file di rete IPv4 o IPv6 aperti.

Per visualizzare i file aperti IPv4, digitare

$ lsof -i4

È possibile utilizzare la seguente sintassi per visualizzare i file aperti IPv6:

$ lsof -i6

10. Esegui lsof continuamente

La modalità di ripetizione consente a lsof di ripetere continuamente gli aggiornamenti con ritardi specifici. La modalità di ripetizione può essere abilitata utilizzando l'opzione '-r' o '+r', dove '+r' termina quando non vengono trovati file aperti e '-r' continuerà a essere elencato fino a quando non viene avviato un interrupt manuale. Ogni uscita del ciclo di ritardo verrà separata utilizzando '========'.

Sintassi:

$ lsof [options] -r/+r[time-interval]

Ad esempio:

$ lsof -u sonar -r5

lsof intestazioni di comando

Il lsof ha varie colonne.

COMMAND     PID   TID TASKCMD               USER   FD      TYPE             DEVICE  SIZE/OFF       NODE NAME

Il nome del comando UNIX associato al processo è memorizzato nel COMMAND colonna.

Il PID visualizza l'ID di processo del comando.

Il USER visualizza il nome dell'utente associato al processo seguente.

Il TID mostra l'ID attività.

Il FD è un descrittore di file che include abbreviazioni come cwd (Current Working Directory), txt (File di testo), mem (file mappato in memoria), rtd (directory principale) e molti altri.

TYPE è l'abbreviazione di un tipo di file specifico, come REG (file normale), DIR (directory), CHR (file speciale di caratteri) e così via.

Il DEVICE contiene i numeri del dispositivo.

Il SIZE/OFF contiene la dimensione del file o l'offset del file in byte.

Il NODE il valore della colonna rappresenta il numero di nodo di un file locale.

Il NAME visualizza il nome del punto di montaggio e del file system del file, nonché l'indirizzo Internet.

Conclusione

In questo tutorial, abbiamo appreso del comando lsof e dei suoi usi con esempi. lsof fornisce una serie di opzioni per personalizzare l'output in base alle proprie esigenze. Ti consente di combinare facilmente e rapidamente più argomenti per ottenere l'output richiesto.


Linux
  1. 7 Esempi di comando lsof in Linux

  2. Esempi pratici di comando rsync in Linux

  3. 7 Esempi di comandi Linux df

  4. 15 Esempi di comandi lsof Linux (Identifica i file aperti)

  5. sa Esempi di comandi in Linux

Comando wc Linux con esempi

Comando Rm in Linux

Linux lsof Command Tutorial per principianti (15 esempi)

Esempi di comandi id in Linux

lsof Command in Linux con esempi

Comando di comunicazione Linux con esempi