Come Utilizzare Linux Comando lsof

0
1150
Fatmawati Achmad Zaenuri/Shutterstock.com

Se tutto in Linux è un file, ci deve essere qualcosa di più di solo i file sul disco rigido. Questo tutorial vi mostrerà come utilizzare lsof per vedere tutti gli altri dispositivi e processi che vengono gestiti come file.

Su Linux Tutto È un File

La spesso citata frase che tutto in Linux è un file che è una sorta di vero. Un file è un insieme di byte. Quando sono in fase di leggere in un programma o inviati a una stampante, sembrano generare un flusso di byte. Quando sono scritti, essi accettano un flusso di byte.

Molti altri componenti del sistema accettare o generare flussi di byte, come tastiere, connessioni socket, stampanti e i processi di comunicazione. Perché non accettare, generare, o di accogliere e generare flussi di byte, questi dispositivi possono essere gestiti a un livello molto basso, come se fossero file.

Questo concetto di design semplificato l’attuazione del sistema operativo Unix. Significava che un piccolo insieme di gestori, gli strumenti e le Api potrebbe essere creato per gestire una vasta gamma di risorse diverse.

I dati e i file di programma che risiede sul disco rigido sono normale filesystem vecchio file. Possiamo usare il comando ls per elenco e trovare un po ‘ di dettagli su di loro.

Come facciamo a scoprire tutti gli altri processi e dispositivi che vengono trattati come se fossero file? Usiamo il comando lsof. Questo elenca i file aperti nel sistema. Che indica qualcosa che viene gestita come se fosse un file.

CORRELATI: Cosa Significa “Tutto È un File” Significa in Linux?

Il Comando lsof

Molti dei processi o dispositivi che lsof può segnalare appartiene a root o sono stati lanciati da root, quindi sarà necessario utilizzare il comando sudo con lsof.

E perché questa lista potrebbe essere molto lunga, ci accingiamo a tubo attraverso di meno .

sudo lsof | meno

Prima che il lsof output viene visualizzato GNOME gli utenti possono visualizzare un messaggio di avviso nella finestra del terminale.

lsof: AVVERTENZA: non è possibile stat() fusibile.gvfsd-fusibile sistema di file /esegui/utente/1000/gvfs
Uscita informazioni possono essere incomplete.

lsof tenta di elaborare tutti i file system montati. Questo messaggio di avviso viene generato perché lsof si è verificato un GNOME file system Virtuale (GVFS). Questo è un caso speciale di un filesystem in spazio utente (FUSIBILE). Esso agisce come un ponte tra GNOME, le Api e il kernel. Nessuno, neppure di root può accedere a uno di questi sistemi di file, oltre al proprietario che ha montato (in questo caso, GNOME). È possibile ignorare questo avviso.

L’uscita dal lsof è molto ampia. Le colonne all’estrema sinistra sono:

Le colonne a destra sono:

Il lsof Colonne

Tutte le colonne non sono applicabili ad ogni tipo di file aperto. È normale che per alcuni di loro di essere vuota.

  • Comando: Il nome del comando associato con il processo che ha aperto il file.
  • PID di Processo: numero di Identificazione del processo che ha aperto il file.
  • TID: Attività (thread) numero di Identificazione. Una colonna vuota significa che non è un compito; è un processo.
  • Utente: user ID o il nome dell’utente a cui il processo appartiene, o l’ID utente o account di accesso della persona che detiene la directory in /proc dove lsof trova le informazioni sul processo.
  • FD: Mostra il file descriptor del file. Descrittori di File sono descritti di seguito.
  • Tipo: tipo di nodo associato al file. Tipi di nota sono descritti di seguito.
  • Dispositivo: Contiene il dispositivo di numeri, separati da virgole, per un personaggio speciale, speciale a blocchi regolari, directory o file NFS, o un kernel indirizzo di riferimento che identifica il file. Si può anche mostrare l’indirizzo di base o il nome del dispositivo di Linux AX.25 presa del dispositivo.
  • Dimensioni/Off: consente di visualizzare la dimensione del file o il file di offset in byte.
  • Nodo: Indica il numero di nodo di un file locale, o il numero di inode di un file NFS sul server host, o il tipo di protocollo internet. Potrebbe visualizzare STR per un flusso o IRQ o numero di inode di un Linux AX.25 presa del dispositivo.
  • Nome: Indica il nome del punto di mount e file di sistema in cui risiede il file.

FD Colonna

Il descrittore di file in FD colonna può essere una delle tante opzioni; l’uomo della pagina elenco di tutti loro.

FD voce di colonna può essere composto di tre parti: un descrittore di file, una modalità di carattere, e un blocco di caratteri. Alcuni comuni descrittori di file sono:

  • cwd: directory di lavoro Corrente.
  • err: FD informazioni di errore (vedere la colonna del NOME).
  • ltx: libreria Condivisa testo (codice e dati).
  • m86: DOS Unire file mappato.
  • mem: file mappato in Memoria.
  • mmap: mappati in Memoria dispositivo.
  • pd: directory principale.
  • rst: Root directory.
  • txt: testo del Programma (codice e dati)
  • Un numero, che rappresenta un descrittore di file.

Il personaggio in modalità può essere uno dei seguenti:

  • r: l’accesso in Lettura.
  • w: accesso in Scrittura.
  • u: accesso in Lettura e Scrittura.
  • ‘ ‘: Un carattere di spazio, se la modalità è sconosciuto e non vi è alcun blocco di caratteri.
  • –: Modalità di sconosciuto e c’è un blocco di caratteri.

Il blocco di caratteri può essere:

  • r: blocco di Lettura di una parte del file.
  • R: blocco di Lettura sull’intero file.
  • w: Write lock su una parte del file.
  • W: blocco di Scrittura per l’intero file.
  • u: Lettura e scrittura di blocco di qualsiasi lunghezza.
  • U: Unknown tipo di blocco.
  • ‘ ‘: Un carattere di spazio. Nessun blocco.

Il TIPO di Colonna

Ci sono più di 70 le voci che potrebbero comparire nella colonna TIPO. Alcune voci comuni si potranno ammirare:

  • REG: Regolari filesystem file.
  • DIR: Directory.
  • FIFO: First In First Out.
  • CARATTERE: Carattere speciale.
  • BLK: file speciale a Blocchi.
  • INET: presa Internet.
  • unix: socket di dominio UNIX

Vedere i Processi Che Hanno Aperto un File

Per vedere i processi che hanno aperto un certo file, specificare il nome del file come parametro di lsof. Per esempio, per vedere i processi che hanno aperto kern.file di registro, utilizzare questo comando:

sudo lsof /var/log/kern.registro

lsof reagisce con la visualizzazione del singolo processo, rsyslogd che è stata avviata dall’utente syslog.

Vedere Tutti i File Aperti da una Directory

Per vedere i file che sono stati aperti da una directory, e il processo che li ha aperti, passare alla directory lsof come parametro. È necessario utilizzare l’ +D (directory) opzione.

Per vedere tutti i file che sono aperti in /var/log/ directory, è possibile utilizzare questo comando:

sudo lsof +D /var/log/

lsof risponde con un elenco di tutti i file in quella directory.

Per vedere tutti i file che sono stati aperti dalla directory /home, usare il seguente comando:

sudo lsof +D /home

I file sono stati aperti dalla directory /home vengono visualizzati. Nota che con brevi descrizioni di alcune colonne, l’intero elenco è ristretto.

Elenco dei File Aperti Da un Processo

Per vedere i file che sono stati aperti da un particolare processo, utilizzare l’opzione-c (comando) opzione. Si noti che è possibile fornire più di un termine di ricerca da lsof in una sola volta.

sudo lsof -c ssh -c init

lsof fornisce un elenco dei file che sono stati aperti dai processi specificato sulla riga di comando.

Vedere i File Aperti Da un Utente

Per limitare la visualizzazione per i file che sono stati aperti da un utente specifico, utilizzare l’opzione-u (utente) opzione. In questo esempio, diamo un’occhiata al file che sono stati aperti dai processi che sono di proprietà o lanciato a nome di Maria.

sudo lsof -u maria

Tutti i file elencati sono state aperte per conto dell’utente di Maria. Questo include i file che sono stati aperti dall’ambiente desktop, per esempio, o semplicemente come un risultato di Maria aver effettuato il login.

Escludendo i File Aperti da un Utente

Per escludere i file che sono stati aperti da un utente, utilizzare il ^ operatore. Escludendo gli utenti dalla lista rende più facile trovare le informazioni che vi interessano. È necessario utilizzare l’opzione-u come prima, e aggiungere il carattere ^ per l’inizio del nome dell’utente.

sudo lsof +D /home -u ^maria

Questa volta, l’elenco per la directory /home non includere i file che sono stati aperti dall’utente Maria.

Elenco dei File Aperti da un Processo

Per visualizzare l’elenco dei file che sono stati aperti da un processo specifico, utilizzare l’opzione-p (processo) e di fornire l’ID di processo come un parametro.

sudo lsof – p 4610

Tutti i file che sono stati aperti dal processo con ID da lei forniti sono elencati per voi.

Elenco di Id di Processo Che Hanno Aperto un FIle

Per vedere l’Id di processo per processi che hanno aperto un particolare file, utilizzare l’opzione-t (conciso) opzione e specificare il nome del file sulla riga di comando.

sudo lsof -t /usr/share/mime/mime.cache

L’Id di processo vengono visualizzati in un elenco semplice.

Uso E e O Ricerche

Proviamo a elencare i file che sono stati aperti dall’utente Maria, che sono correlati ai processi SSH. Sappiamo che siamo in grado di fornire più di un elemento di ricerca sulla riga di comando, quindi questo dovrebbe essere facile.

sudo lsof -u maria -c ssh

Ora vediamo l’uscita dal lsof. Che non guardare a destra; ci sono delle voci in uscita che sono stati lanciati da root.

Che non è quello che ci aspettavamo. Che cosa è successo?

Quando si fornisce più termini di ricerca lsof verrà restituito un file che corrisponde al primo termine di ricerca o il secondo termine di ricerca, e così via. In altre parole, si esegue una ricerca.

Per rendere lsof eseguire un’E di ricerca, usare l’opzione-a (e) opzione. Questo significa che l’unico file che verranno indicati saranno quelli che corrispondono il primo termine di ricerca, e il secondo termine di ricerca, e così via.

Proviamo a farlo di nuovo e usare l’opzione-a.

sudo lsof -u maria -c ssh -un

Ora tutti i file in elenco, è uno che è stato aperto da o per conto di Maria, e sono associati con il comando SSH.

Aggiornando Automaticamente Il Display

Possiamo usare il +|-r (ripetere) opzione per mettere lsof in modalità di ripetizione. L’opzione di ripetizione può essere applicato in due modi, o +r o -r. Dobbiamo anche aggiungere il numero di secondi che si desidera lsof aspettare prima di aggiornare il display.

Utilizzando l’opzione di ripetizione in formato rende lsof visualizzare i risultati come al solito, ma aggiunge una linea tratteggiata verso il fondo del display. L’attesa per il numero di secondi specificato sulla riga di comando e quindi aggiorna il display con un nuovo set di risultati.

Con l’opzione-r, questo continuerà fino a quando si preme Ctrl+C. Con i +r formato, continuerà finché non ci sono risultati per display, o fino a quando si preme Ctrl+C.

sudo lsof -u maria -c ssh -un -r5

Nota la linea tratteggiata in fondo alla lista. Questo separa ogni nuova visualizzazione dei dati quando l’uscita è aggiornato.

La visualizzazione dei File Associati con Connessioni Internet

I -i (internet) opzione ti consente di vedere i file aperti dai processi associati con rete e connessioni internet.

lsof-i

Tutti i file aperti da rete e connessioni internet vengono visualizzati.

La visualizzazione dei File Associati con Connessioni Internet da ID di Processo

Per vedere i file aperti da connessioni internet che sono associati con un determinato ID di processo, aggiungere l’opzione-p e l’opzione-a.

Stiamo cercando qui i file aperti da una connessione internet o una connessione di rete, da un processo con ID 606.

sudo lsof -i-a -p 606

Tutti i file aperti dal processo ID 606 che sono associati con internet o connessioni di rete vengono visualizzati.

La visualizzazione di File Associati a Internet, le Connessioni e Comandi

Possiamo utilizzare l’opzione-c (comando) opzione per cercare i file aperti da specifici processi. Per cercare i file che sono stati aperti da internet o connessioni di rete associati con il processo ssh, utilizzare il seguente comando:

lsof -i-a -c ssh

Tutti i file aperti a causa di ssh processi sono elencati in uscita.

La visualizzazione di File Associati a Internet, le Connessioni e le Porte

Siamo in grado di fare lsof report su i file che sono stati aperti da internet o di rete, le connessioni su una porta specifica. Per fare questo, si utilizza il carattere : seguito dal numero di porta.

Qui stiamo chiedendo lsof per visualizzare l’elenco dei file che sono stati aperti da rete o connessioni a internet tramite la porta 22.

lsof -i :22

Tutti i file elencati sono stati aperti dai processi associati con la porta 22 (che è la porta di default per le connessioni SSH).

La visualizzazione dei File Associati con Connessioni Internet e Protocolli di

Ci si può chiedere lsof per visualizzare i file che sono stati aperti dai processi associati con rete e connessioni internet, che utilizza un protocollo specifico. Possiamo scegliere TCP, UDP, SMTP. Proviamo ad usare il protocollo TCP e vedere cosa si ottiene.

sudo lsof-i tcp

L’unico file elencati sono quelli aperti dai processi che utilizzano il protocollo TCP.

Noi abbiamo Solo Scalfito la Superficie

Che una buona messa a terra in alcuni casi di uso comune per lsof, ma c’è molto di più ad esso che quello. Quanto più può essere giudicata dal fatto che l’uomo è la pagina di oltre 2.800 linee lunghe.

Il comando lsof, può essere utilizzato per eseguire il drill sempre più in profondità gli strati di aprire i file e pseudo-file. Abbiamo fornito una mappa di schizzo; l’atlante è la pagina di man.

CONTINUA A LEGGERE

  • “Che cos’è un “Qi-Certificato” Caricabatterie Wireless?
  • “Come iOS 13 Sbloccare NFC Potenziale
  • “Come Smettere di Chrome (o Edge) Da Prendere il controllo dei Tuoi Tasti Multimediali
  • “Come Personalizzare il Nuovo Terminal di Windows App
  • “6 Grandi Caratteristiche di Windows 10 il Nuovo Gioco di Bar