GNU/Linux >> LINUX-Kenntnisse >  >> Linux

lsof-Befehl unter Linux (10 Beispiele)

In Linux wird alles als Dateien betrachtet und in Verzeichnissen organisiert. lsof (List of Open File) zeigt eine Liste der geöffneten Dateien an. Es hilft hauptsächlich, die Informationen über den Prozess herauszufinden, der die Dateien geöffnet hat. Abgesehen von Dateien kann es ein Verzeichnis, eine spezielle Blockdatei, eine gemeinsam genutzte Bibliothek, eine spezielle Zeichendatei, eine reguläre Pipe, eine benannte Pipe, einen Internet-Socket, einen UNIX-Domain-Socket und viele andere auflisten.

In diesem Tutorial lernen wir den lsof-Befehl kennen unter Linux mit leicht verständlichen Beispielen .

lsof-Befehl

Der Befehl lsof ist standardmäßig in den meisten Linux-Distributionen verfügbar. Sehr häufig wird der lsof-Befehl verwendet, wenn wir eine Festplatte nicht aushängen können, dann hilft der lsof-Befehl, die geöffnete Datei und ihren Prozess zu finden, der sie verursacht.

Syntax:

lsof [options] [names]

Die obige Syntax listet alle Dateien auf, die von allen Prozessen im System geöffnet wurden.

1. Alle geöffneten Dateien auflisten

Um schnell eine Liste der geöffneten Dateien zu erhalten, geben Sie lsof ein. Es listet alle Dateien auf, die von den verschiedenen Prozessen des Systems geöffnet wurden.

$ lsof 

Normalerweise wird die Ausgabe sehr lang sein, Sie verwenden $ sudo lsof | more , wenn Sie den Inhalt bildschirmweise anzeigen möchten.

2. Offene Dateien nach Benutzernamen auflisten

lsof hat einen Befehl, der verwendet werden kann, um eine Liste bestimmter Dateien zu finden, die von einem bestimmten Benutzer geöffnet werden.

Um geöffnete Dateien nach einem Benutzernamen aufzulisten Verwenden Sie den folgenden Befehl:

$ lsof -u bobbin

Verwenden Sie für mehrere Benutzer die folgende Syntax:

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

ODER

$ lsof -u [username1], [username2]

So listen Sie geöffnete Dateien mit Ausnahme bestimmter Benutzer auf:

$ lsof -u ^root

Um nur die Prozess-ID aufzulisten, verwenden Sie -t Option.

$ lsof -t -u sonar

Dies ist hilfreich, falls Sie alle Prozesse beenden müssen, die sich auf eine bestimmte Verwendung beziehen.

$ kill -9 lsof -t -u sonar

3. Offene Dateien nach Prozess auflisten

lsof kann auch verwendet werden, um Dateien aufzulisten, die von einem bestimmten Prozess geöffnet wurden, indem -c verwendet wird Option gefolgt vom Prozessnamen.

Zum Beispiel, um alle geöffneten Dateien per ssh aufzulisten:

$ lsof -c ssh

4. Offene Dateien nach Dateinamen auflisten

Wir können den Dateinamen als Argument angeben, um alle Prozesse aufzulisten, die eine bestimmte Datei geöffnet haben.

Geben Sie Folgendes ein, um alle Prozesse aufzulisten, die von der Datei /var/log/messages geöffnet wurden:

$ lsof /var/log/messages

5. Offene Dateien nach Prozess-ID

auflisten

Jeder Datei wird eine Prozess-ID zugewiesen. Ein einzelner Prozess kann eine große Anzahl von Dateien öffnen. Wir können den Befehl lsof verwenden, um alle geöffneten Dateien für eine bestimmte Prozess-ID aufzulisten.

Geben Sie beispielsweise Folgendes ein, um geöffnete Dateien mit der Prozess-ID 2 aufzulisten:

$ lsof -p 2

Falls Sie offene Dateien für mehrere Prozess-IDs auflisten möchten, geben Sie

ein
$ lsof -p 2,3

Ein System enthält eine große Anzahl von Prozessen, von denen jeder Dateien zur Verwendung geöffnet hat. Ein Prozess kann viele untergeordnete Prozesse haben, und dieser Prozess wird auch als übergeordneter Prozess bezeichnet.

Der Befehl lsof wird mit -R verwendet Option, um eine Liste der Dateien zu erhalten, die von PPID (Parent Process IDentification) geöffnet wurden.

$ lsof -R

Sie können aus der Ausgabe in der 5. Spalte die PPID der geöffneten Dateien anzeigen.

Geben Sie Folgendes ein, um die PPID für eine bestimmte PID zu finden:

$ lsof -p [PID] -R

6. Offene Dateien in einem Verzeichnis auflisten

Um die geöffneten Dateien in einem bestimmten Verzeichnis aufzulisten, können wir den Befehl lsof verwenden.

Verwenden Sie +d Option, um eine Liste der geöffneten Dateien im angegebenen Verzeichnis anzuzeigen, sie geht jedoch nicht in Unterverzeichnisse.

Das folgende Beispiel durchsucht offene Dateien im Verzeichnis /var/log:

$ lsof +d /var/log

Die Option +D befiehlt lsof, die gesamte Tiefe des Verzeichnisses nach allen offenen Instanzen sowie allen darin enthaltenen Dateien und Verzeichnissen zu durchsuchen.

In diesem Fall sucht lsof nach offenen Dateien in /var/log und seinen Unterverzeichnissen:

$ lsof +D /var/log

7. Offene Dateien mit Netzwerkprotokoll auflisten

Ein System kann für verschiedene Zwecke mit verschiedenen Netzwerken verbunden werden. Alles in Linux ist eine Datei, wir können die Dateien untersuchen, die von einer Netzwerkverbindung im System geöffnet werden.

Um die geöffneten Dateien im TCP-Protokoll aufzulisten, können wir den folgenden Befehl ausführen.

$ lsof -i TCP 

Um die geöffneten Dateien im UDP-Protokoll aufzulisten, können wir den folgenden Befehl ausführen.

$ sudo lsof -i UDP 

8. Offene Dateien nach Portnummer auflisten

lsof hat einen Befehl, der speziell die offenen Dateien auf einer bestimmten Portnummer auflistet, um alle Prozesse aufzulisten, die auf diesem Port laufen.

Zum Beispiel, um offene Dateien auf Portnummer 443 aufzulisten

$ lsof -i :443

Sie können offene Dateien für mehrere Portnummern wie folgt auflisten:

$ lsof -i :80,443

Sie können auch geöffnete TCP- oder UDP-Dateien nach Portbereichen auflisten.

$ lsof -i TCP:1-49151

9. Offene Dateien nach IPv4/IPv6 auflisten

Es gibt eine Option in lsof, um geöffnete IPv4- oder IPv6-Netzwerkdateien aufzulisten.

Um geöffnete IPv4-Dateien anzuzeigen, geben Sie

ein
$ lsof -i4

Die folgende Syntax kann verwendet werden, um offene IPv6-Dateien anzuzeigen:

$ lsof -i6

10. lsof kontinuierlich ausführen

Der Wiederholungsmodus ermöglicht es lsof, Aktualisierungen mit festgelegten Verzögerungen kontinuierlich zu wiederholen. Der Wiederholungsmodus kann mit der Option „-r“ oder „+r“ aktiviert werden, wobei „+r“ endet, wenn keine geöffneten Dateien gefunden werden, und „-r“ weiter auflistet, bis eine manuelle Unterbrechung eingeleitet wird. Jede Verzögerungszyklusausgabe wird durch die Verwendung von „========“ getrennt.

Syntax:

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

Zum Beispiel:

$ lsof -u sonar -r5

lsof-Befehlskopfzeilen

Die lsof hat verschiedene Spalten.

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

Der Name des dem Prozess zugeordneten UNIX-Befehls wird in COMMAND gespeichert Säule.

Die PID zeigt die Prozess-ID des Befehls an.

Der USER zeigt den Namen des Benutzers an, der dem folgenden Prozess zugeordnet ist.

Die TID zeigt die Task-ID.

Der FD ist ein Dateideskriptor, der Abkürzungen wie cwd (aktuelles Arbeitsverzeichnis), txt (Textdateien), mem (speicherabgebildete Datei), rtd (Stammverzeichnis) und viele andere enthält.

TYPE ist eine Abkürzung für einen bestimmten Dateityp, z. B. REG (reguläre Datei), DIR (Verzeichnis), CHR (spezielle Zeichendatei) usw.

Das DEVICE enthält die Gerätenummern.

Der SIZE/OFF enthält die Dateigröße oder den Datei-Offset in Bytes.

Der NODE Spaltenwert repräsentiert die Knotennummer einer lokalen Datei.

Der NAME zeigt den Namen des Einhängepunkts und des Dateisystems der Datei sowie die Internetadresse an.

Schlussfolgerung

In diesem Tutorial haben wir den Befehl lsof und seine Verwendung anhand von Beispielen kennengelernt. lsof bietet eine Reihe von Optionen zum Anpassen der Ausgabe an Ihre Anforderungen. Es ermöglicht Ihnen, einfach und schnell mehrere Argumente zu kombinieren, um die erforderliche Ausgabe zu erhalten.


Linux
  1. 7 Beispiele für den lsof-Befehl unter Linux

  2. Praktische Beispiele für den rsync-Befehl unter Linux

  3. 7 Beispiele für Linux-df-Befehle

  4. 15 Linux-lsof-Befehlsbeispiele (geöffnete Dateien identifizieren)

  5. sa-Befehlsbeispiele in Linux

wc Linux-Befehl mit Beispielen

Rm-Befehl unter Linux

Linux lsof Command Tutorial für Anfänger (15 Beispiele)

id-Befehlsbeispiele in Linux

lsof-Befehl unter Linux mit Beispielen

Linux-Comm-Befehl mit Beispielen