Linux Commands · 6 min read · Sep 16, 2025

Tutorial sul comando lsof di Linux per principianti (15 esempi)

Il comando Linux lsof mostra nella sua uscita informazioni sui file che sono aperti da un processo. In questo articolo, discuteremo dello strumento lsof di Linux utilizzando 15 esempi facili da comprendere. Si prega di notare che tutti gli esempi menzionati in questo tutorial sono stati testati su Ubuntu 22.04 LTS, ma funzioneranno anche su altre distribuzioni Linux come Debian, Fedora e CentOS.

Informazioni sul comando lsof

Se vuoi vedere rapidamente il nome dei file che sono stati aperti da un particolare processo (o da tutti i processi), il comando lsof ti consente di farlo. Un file aperto potrebbe essere un file normale o una directory, una libreria, un file speciale o un dispositivo a blocchi, un file speciale a caratteri, un riferimento di testo eseguibile, o anche uno stream o un file di rete. Puoi anche elencare i processi per numero di porta. Se non sei loggato come utente root, potresti dover anteporre ‘sudo’ ai comandi.

Installare il comando lsof di Linux

La maggior parte delle distribuzioni Linux viene fornita con lsof preinstallato. Se non è ancora installato sul tuo sistema, usa i seguenti comandi per installare lsof:

Su Ubuntu e Debian:

$ sudo apt install lsof

Su CentOS e Fedora:

$ dnf install lsof

1. Come elencare tutti i file aperti

Per elencare tutti i file aperti, esegui il comando lsof senza argomenti:

lsof

Ad esempio, ecco la cattura dello schermo di una parte dell’uscita che il comando sopra ha prodotto sul mio sistema:

Come elencare tutti i file aperti su Linux

La prima colonna rappresenta il processo mentre l’ultima colonna contiene il nome del file. Per dettagli su tutte le colonne, vai alla pagina man del comando.

2. Come elencare i file aperti da processi appartenenti a un utente specifico

Lo strumento ti consente anche di elencare i file aperti da processi appartenenti a un utente specifico. Questa funzione può essere accessibile utilizzando l’opzione della riga di comando -u.

lsof -u [nome-utente]

Ad esempio:

lsof -u amministratore

Come elencare i file aperti da processi appartenenti a un utente specifico

3. Come elencare i file in base al loro indirizzo Internet

Lo strumento ti consente di elencare i file in base al loro indirizzo Internet. Questo può essere fatto utilizzando l’opzione della riga di comando -i. Ad esempio, se vuoi, puoi avere file IPv4 e IPv6 visualizzati separatamente. Per IPv4, esegui il seguente comando:

lsof -i 4

Ad esempio:

Come elencare i file in base al loro indirizzo Internet

Allo stesso modo, per IPv6, esegui il seguente comando:

lsof -i 6

Ad esempio: lsof -i 6

Ascoltatori LSOF IPv6

4. Come elencare tutti i file per nome dell’applicazione

L’opzione della riga di comando -c ti consente di ottenere tutti i file aperti per nome del programma.

$ lsof -c apache

Non è necessario utilizzare il nome completo del programma poiché vengono mostrati tutti i programmi che iniziano con la parola ‘apache’. Quindi, nel nostro caso, elencherà tutti i processi dell’applicazione ‘apache2’.

Ottieni file aperti per nome del programma

L’opzione -c è fondamentalmente solo un’abbreviazione per i due comandi:

$ lsof | grep apache

5. Come elencare file specifici per un processo

Lo strumento ti consente anche di visualizzare i file aperti in base ai numeri di identificazione del processo (PID). Questo può essere fatto utilizzando l’opzione della riga di comando -p.

lsof -p [PID]

Ad esempio:

lsof -p 856

Come elencare file specifici per un processo

Proseguendo, puoi anche escludere PID specifici nell’uscita aggiungendo il simbolo ^ prima di essi. Per escludere un PID specifico, puoi eseguire il seguente comando:

lsof -p [^PID]

Ad esempio: lsof -p ^1

Come elencare file specifici per un processo - risultato

Come puoi vedere nello screenshot sopra, il processo con id 1 è escluso dall’elenco.

6. Come elencare gli ID dei processi che hanno aperto un particolare file

Lo strumento ti consente di elencare gli ID dei processi che hanno aperto un particolare file. Questo può essere fatto utilizzando l’opzione della riga di comando -t.

$ lsof -t [nome-file]

Ad esempio:

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

Come elencare gli ID dei processi che hanno aperto un particolare file

7. Come elencare tutti i file aperti in una directory

Se vuoi, puoi anche far cercare a lsof tutte le istanze aperte di una directory (inclusi tutti i file e le directory che contiene). Questa funzione può essere accessibile utilizzando l’opzione della riga di comando +D.

$ lsof +D [percorso-directory]

Ad esempio:

$ lsof +D /usr/lib/locale

Come limitare lsof a una particolare directory

8. Come elencare tutti i file di rete Internet e x.25 (HP-UX)

Questo è possibile utilizzando l’opzione della riga di comando -i che abbiamo descritto in precedenza. Solo che devi usarla senza argomenti.

$ lsof -i

Come elencare tutti i file di rete Internet e x.25 (HP-UX)

9. Scoprire quale programma sta utilizzando una porta

L’opzione -i del comando ti consente di trovare un processo o un’applicazione che ascolta su un numero di porta specifico. Nell’esempio seguente, ho controllato quale programma sta utilizzando la porta 80.

$ lsof -i :80

Invece del numero di porta, puoi usare il nome del servizio come elencato nel file /etc/services. Esempio per controllare quale app ascolta sulla porta HTTPS (443):

$ lsof -i :https

Risultato:

Elenca i processi per porta o servizio aperto

Gli esempi sopra controlleranno sia TCP che UDP. Se desideri controllare solo TCP o UDP, anteponi la parola ‘tcp’ o ‘udp’. Ad esempio, quale applicazione sta utilizzando la porta 25 TCP:

$ lsof -i tcp:25

oppure quale app utilizza la porta UDP 53:

$ lsof -i udp:53

10. Come elencare file aperti in base all’intervallo di porte

L’utilità ti consente anche di elencare file aperti in base a una porta specifica o a un intervallo di porte. Ad esempio, per visualizzare file aperti per la porta 1-1024, usa il seguente comando:

$ lsof -i :1-1024

Come elencare file aperti in base all'intervallo di porte

11. Come elencare file aperti in base al tipo di connessione (TCP o UDP)

Lo strumento ti consente di elencare file in base al tipo di connessione. Ad esempio, per file specifici UDP, usa il seguente comando:

$ lsof -i udp

Come elencare file aperti in base al tipo di connessione (TCP o UDP)

Allo stesso modo, puoi far visualizzare a lsof file specifici TCP.

12. Come far elencare a lsof il PID genitore dei processi

C’è anche un’opzione che costringe lsof a elencare il numero di identificazione del processo genitore (PPID) nell’uscita. L’opzione in questione è -R.

$ lsof -R

Per ottenere informazioni sul PPID per un PID specifico, puoi eseguire il seguente comando:

$ lsof -p [PID] -R

Ad esempio:

$ lsof -p 3 -R

Come far elencare a lsof il PID genitore dei processi

13. Come trovare l’attività di rete per utente

Utilizzando una combinazione delle opzioni della riga di comando -i e -u, possiamo cercare tutte le connessioni di rete di un utente Linux. Questo può essere utile se ispezioni un sistema che potrebbe essere stato hackerato. In questo esempio, controlliamo tutta l’attività di rete dell’utente www-data:

$ lsof -a -i -u www-data

Trova attività di rete per utente su Linux

14. Elenca tutti i file mappati in memoria

Questo comando elenca tutti i file mappati in memoria su Linux.

$ lsof -d mem

Trova file mappati in memoria

15. Elenca tutti i file NFS

L’opzione -N ti mostra un elenco di tutti i file NFS (Network File System).

$lsof -N

Conclusione

Sebbene lsof offra una miriade di opzioni, quelle che abbiamo discusso qui dovrebbero essere sufficienti per iniziare. Una volta che hai finito di esercitarti con questi, vai alla pagina man dello strumento per saperne di più. Oh, e nel caso tu abbia dubbi e domande, lascia un commento qui sotto.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.