GNU/Linux >> Linux Esercitazione >  >> Linux

lsof:comando non trovato

A volte, ci troviamo di fronte a situazioni in cui non possiamo smontare un disco poiché dice che i file vengono utilizzati, ma non riusciamo a capire a quale file si riferisca. In tali situazioni, possiamo controllare quali file sono aperti da quale processo è in esecuzione sul sistema.

Questo può essere fatto usando il comando lsof, che significa Elenca file aperti. Poiché Linux considera tutto, incluse directory, dispositivi, socket e così via come file, possiamo usare lsof per identificare facilmente tutti i file aperti.

Se eseguiamo semplicemente lsof, elencherà tutti i file aperti che appartengono a qualsiasi processo attivo sul sistema. Se l'output è lungo, possiamo usare il comando less per scorrere l'output:

# lsof | less

L'output mostrato ha colonne come Command, PID, User, FD, Type, Device e così via, per una migliore comprensione dei file. La colonna FD contiene informazioni sulla descrizione del file, come la directory di lavoro corrente (CWD), la directory principale (RTD), il testo del programma (TXT) e così via. Se la colonna FD contiene informazioni come 0u, 1u e così via, il numero indica il descrittore di file effettivo e l'alfabeto indica le diverse modalità (accesso in lettura, accesso in scrittura e accesso in lettura/scrittura).

se incontri l'errore seguente durante l'esecuzione del comando lsof:

lsof: command not found

ypu può installare il pacchetto seguente secondo la tua scelta di distribuzione.

Distribuzione Comando
OS X brew install lsof
Debian apt-get install lsof
Ubuntu apt-get install lsof
Alpino apk aggiungi lsof
Arch Linux pacman -S lsof
Kali Linux apt-get install lsof
CentOS yum install lsof
Fedora dnf install lsof
Raspbian apt-get install lsof

Opzioni lsof usate di frequente

  • -c x :mostra solo i file aperti da processi il cui eseguibile inizia con i caratteri specificati da x.
  • -i x :invece di mostrare i file aperti, mostra i socket il cui indirizzo Internet è x. Se x non è specificato, mostra tutte le connessioni IP. Funzionalmente equivalente a netstat –anp.
  • -u nome utente :mostra solo i file aperti dal nome utente.
  • -P :non convertire i numeri di porta in nomi di porta (ad esempio, mostra 25 invece di smtp).

ldi esempi di comandi

La semplice esecuzione dei comandi lsof ci fornisce un elenco di tutti i file aperti sul sistema. Usando l'opzione -u e specificando il nome utente, otteniamo un elenco di file aperti per un particolare utente. Quando utilizziamo l'opzione -i e specifichiamo un numero di porta, otteniamo informazioni su qualsiasi processo in esecuzione su quella porta. Quando utilizziamo entrambe le opzioni -i e -u con un particolare nome utente, otteniamo informazioni sui file e sui comandi a cui accede quell'utente.

1. Trova i processi che hanno un determinato file aperto:

# lsof path/to/file

2. Trova il processo che ha aperto una porta Internet locale:

# lsof -i :port

3. Emetti solo l'ID processo (PID):

# lsof -t path/to/file

4. Elenca i file aperti dall'utente specificato:

# lsof -u username

5. Elenca i file aperti dal comando o processo specificato:

# lsof -c process_or_command_name

6. Elenca i file aperti da un processo specifico, dato il suo PID:

# lsof -p PID

7. Elenca i file aperti in una directory:

# lsof +D path/to/directory

8. Trova il processo in ascolto su una porta TCP IPv6 locale e non convertire i numeri di rete o di porta:

# lsof -i6TCP:port -sTCP:LISTEN -n -P

9. Elenca i processi che hanno la tua home directory aperta:

# lsof ~

10. Elenca tutti i file aperti nella tua home directory:

# lsof +D

11. Elenca i file aperti dai processi i cui nomi iniziano con "i" e il cui proprietario è "geek":

# lsof -a -c i -u geek

12. Elenca i file utilizzando la porta TCP 80, ripetendo ogni due secondi fino alla chiusura di lsof:

# lsof -i TCP:80 -r 2

Le ultime parole

lsof elenca i file aperti. Poiché tutto in Linux è un file, questo strumento può darti una fantastica quantità di informazioni sul tuo sistema in esecuzione. Viene utilizzato principalmente per indicare quali processi hanno i file aperti, ma può anche essere utilizzato per visualizzare le informazioni sulla connessione TCP e UDP, tra le altre cose.


Linux
  1. gestore abbonamenti:comando non trovato

  2. dnf:comando non trovato

  3. unzip:comando non trovato

  4. bc:comando non trovato

  5. dpkg:comando non trovato

nc:comando non trovato

aws-shell:comando non trovato

kubectl:comando non trovato

tvservice:comando non trovato

diff:comando non trovato

ln:comando non trovato