Wie Verwenden Sie den Linux-Befehl lsof

0
708
Fatmawati Achmad Zaenuri/Shutterstock.com

Wenn alles in Linux ist eine Datei, es muss mehr sein, als nur die Dateien auf Ihrer Festplatte. Dieses tutorial wird Ihnen zeigen, wie lsof um zu sehen, alle anderen Geräte und Prozesse, die behandelt werden, als Dateien.

Unter Linux Ist Alles eine Datei

Der oft zitierte Satz, dass alles in Linux ist eine Datei ist eine Art von true. Eine Datei ist eine Ansammlung von bytes. Wenn Sie werden Lesen Sie in einem Programm oder an einen Drucker gesendet werden, erscheinen Sie erzeugen einen Strom von bytes. Wenn Sie geschrieben wird, Sie nehmen einen Strom von bytes.

Viele andere system-Komponenten akzeptieren oder generieren von streams von bytes, wie Tastaturen, socket-verbindungen, Drucker-und Kommunikationsprozesse. Weil Sie entweder akzeptieren, generieren, oder akzeptieren und generieren von byte-streams, diese Geräte gehandhabt werden kann—auf einem sehr niedrigen Niveau—so, als seien Sie Dateien.

Dieses design-Konzept vereinfacht die Implementierung des Betriebssystems Unix. Es bedeutete, dass eine kleine Gruppe von Prozeduren, Werkzeuge und APIs erstellt werden könnte, mit einer breiten Palette von verschiedenen Ressourcen.

Die Daten-und Programm-Dateien, die sich auf Ihrer Festplatte sind einfache alte Dateisystem-Dateien. Wir können mit dem ls-Befehl, um die Liste und finden Sie heraus, einige details über Sie.

Wie finden wir heraus, über allen anderen Verfahren und Geräten, die behandelt werden, als wären Sie Dateien? Wir verwenden Sie den Befehl lsof. Diese listet alle geöffneten Dateien im system. Das heißt, es listet alles, was behandelt wird, als wäre es eine Datei.

Im ZUSAMMENHANG: Was Bedeutet “Alles Ist eine Datei” Bedeutet in Linux?

Der lsof-Befehl

Viele der Prozesse oder Geräte, lsof können einen Bericht gehören root oder eingeleitet wurden, von root, so müssen Sie die Verwendung des sudo-Befehls mit lsof.

Und weil dieser Eintrag wird sehr lang, wir werden Rohr es durch weniger .

sudo lsof | less

Vor der lsof-Ausgabe erscheint GNOME-Benutzer sehen möglicherweise eine Warnung in das terminal-Fenster.

lsof: WARNING: can ‘ T stat () – Sicherung.gvfsd-fuse-Dateisystem /run/user/1000/gvfs
Ausgabe von Informationen können unvollständig sein.

lsof zu verarbeiten versucht, alle gemounteten Dateisysteme. Diese Warnmeldung wird ausgelöst, da lsof hat festgestellt ein GNOME Virtual file system (GVFS). Dies ist ein spezieller Fall von filesystem in user space (FUSE). Es fungiert als Brücke zwischen GNOME, APIs und den kernel. Niemand—auch nicht root—Zugriff eines dieser Dateisysteme, abgesehen von dem Besitzer, der montiert ist (in diesem Fall GNOME). Sie können diese Warnung ignorieren.

Die Ausgabe von lsof ist sehr breit. Die äußersten linken Spalten sind:

Die rechten Spalten sind:

Der lsof-Spalten

Alle Spalten gelten nicht für jede Art von Datei öffnen. Es ist normal, dass einige von Ihnen leer zu sein.

  • Befehl: name des Befehls, die dem Prozess zugeordnet, der die Datei geöffnet wird.
  • PID: Prozess-id des Prozesses, der die Datei geöffnet wird.
  • TID: Aufgabe (thread) Identifikations-Nummer. Eine leere Spalte bedeutet, es ist nicht eine Aufgabe, sondern ein Prozess.
  • Benutzer: Benutzer-ID oder name des Benutzers, dem der Prozess gehört, oder die Benutzer-ID oder Anmeldenamen der person, die Eigentümer des Verzeichnis in /proc, wo lsof findet Informationen über den Prozess.
  • FD: Zeigt die file-Deskriptor der Datei. Datei-Deskriptoren sind unten beschrieben.
  • Typ: Typ des Knoten, die der Datei zugeordnet. Hinweis: im folgenden beschrieben.
  • Gerät: entweder Enthält das Gerät zahlen, durch Kommata getrennt, für ein Zeichen, Sonder -, block-Spezial -, regular -, Verzeichnis-oder NFS-Datei oder ein kernel-Referenz-Adresse, die die Datei identifiziert. Es könnte auch zeigen die Basis-Adresse oder den Namen des Gerätes auf einem Linux-AX.25-Buchse Gerät.
  • Größe/Off: Zeigt die Größe der Datei oder die Datei offset in bytes.
  • Node: Zeigt den node-Nummer einer lokalen Datei, oder die inode-Nummer einer NFS-Datei in dem server-host oder internet-Protokoll-Typ. Es wird möglicherweise angezeigt, STR für einen Strom-oder IRQ-oder inode-Nummer einer Linux-AX.25-Buchse Gerät.
  • Name: Zeigt den Namen des mount-Punkt-und Dateisystem, auf dem sich die Datei befindet.

Die Spalte FD

Der Datei-Deskriptor FD-Spalte können Sie eine der vielen Optionen, die man-Seite, Sie alle aufzuzählen.

Die FD-Spalte der Eintrag kann aus bis zu drei teilen: einer Datei-Deskriptor, einen Modus für Charakter, und einem lock-Charakter. Einige gemeinsame Datei-Deskriptoren sind:

  • cwd: Current working directory.
  • err: FD Informationen Fehler (siehe Spalte NAME).
  • ltx: Shared library text (code und Daten).
  • m86: DOS Merge-mapped-Datei.
  • mem: Memory-mapped-Datei.
  • mmap: Memory-mapped-device.
  • pd: das Übergeordnete Verzeichnis.
  • fte: Root-Verzeichnis.
  • txt: Programm-text (code und Daten)
  • Eine Zahl, die einen file-descriptor.

Die mode-Charakter kann eine der folgenden sein:

  • r: Lesezugriff.
  • w: Schreibzugriff.
  • u: Lese-und Schreibzugriff.
  • ‘ ‘: Ein Leerzeichen, wenn der Modus ist unbekannt und es gibt keinen lock-Charakter.
  • – :- Modus unbekannt, und es gibt einen lock-Charakter.

Das Schloss-Zeichen können sein:

  • r: Read-lock auf die Datei.
  • R: Lese-Sperre auf die gesamte Datei.
  • w: Write lock auf die Datei.
  • W: Write lock auf die gesamte Datei.
  • u: Lesen und schreiben von lock-in beliebiger Länge.
  • U: Unbekannt-lock-Typ.
  • ‘ ‘: Ein Leerzeichen. Keine Sperre.

Die Spalte TYP

Es gibt über 70 Einträge in der Spalte TYP. Einige Allgemeine Einträge, die Sie sehen werden, sind:

  • REG: Regelmäßige Dateisystem-Datei.
  • DIR: Directory.
  • FIFO: First In First Out.
  • CHR: Character special file.
  • BLK: Block special file.
  • INET: Internet-Buchse.
  • unix: UNIX-domain-socket

Siehe Prozesse, die eine Datei Geöffnet haben

Um zu sehen, die Prozesse geöffnet haben, eine bestimmte Datei, geben Sie den Namen der Datei als parameter an lsof. Zum Beispiel, um zu sehen, wie die Prozesse, die geöffnet kern.log-Datei, verwenden Sie diesen Befehl:

sudo lsof /var/log/kern.melden

lsof reagiert durch die Darstellung der einzelnen Prozess rsyslogd was wurde durch den Benutzer gestartet syslog.

Sehen Sie Alle Geöffneten Dateien aus einem Verzeichnis

Um die Dateien, die geöffnet wurden, aus einem Verzeichnis, und die Prozesse, die Sie geöffnet, übergeben Sie das Verzeichnis lsof als parameter. Sie müssen verwenden Sie die + – D (directory) – option.

Um zu sehen, alle Dateien, die geöffnet sind in der /var/log/ – Verzeichnis abgelegt ist, verwenden Sie diesen Befehl:

sudo lsof +D /var/log/

lsof zeigt eine Liste aller geöffneten Dateien in diesem Verzeichnis.

Alle Dateien, die geöffnet wurden, von der /home-Verzeichnis den folgenden Befehl verwenden:

sudo lsof +D /home

Die Dateien wurden geöffnet, aus dem /home-Verzeichnis angezeigt werden. Beachten Sie, dass mit kürzeren Beschreibungen in einigen der Spalten, die ganze Liste ist schmaler.

Liste der Dateien Geöffnet, Durch einen Prozess

Um zu sehen, die Dateien, die geöffnet wurden, die von einem bestimmten Prozess, verwenden Sie die -c (Befehl) option. Beachten Sie, dass Sie können mehr als einen Suchbegriff zu lsof auf einmal.

sudo lsof -c ssh -c init

lsof zeigt eine Liste der Dateien, die geöffnet wurden, indem entweder der Prozesse, die auf der Befehlszeile bereitgestellt.

Siehe Dateien Von einem Benutzer Geöffnet

Die Anzeige einschränken, um die Dateien, die geöffnet wurden, die von einem bestimmten Benutzer, verwenden Sie die -u (user; Benutzer) option. In diesem Beispiel sehen wir uns die Dateien, die geöffnet wurden, durch Prozesse, die im Besitz oder auf den Weg gebracht im Namen von Maria.

sudo lsof -u Maria

Alle Dateien, die geöffnet wurden, im Auftrag des Benutzers Mary. Dies schließt Dateien ein, die geöffnet wurden, von der desktop-Umgebung, zum Beispiel, oder einfach als ein Ergebnis der Maria mit angemeldet.

Ausschluss von Dateien von einem Benutzer Geöffnet

Schließen Sie die Dateien, die geöffnet wurden, von einem Benutzer, verwenden Sie den ^ – operator. Ausschließen von Benutzern von der Auflistung macht es einfacher, Informationen zu finden, die Sie interessiert sind in. Sie müssen die option-u verwenden, wie zuvor, und fügen Sie das Zeichen ^ für den Anfang den Namen des Benutzers.

sudo lsof +D /home -u ^mary

Diese Zeit, die Liste für das /home-Verzeichnis nicht enthalten die Dateien, die geöffnet wurden, durch die Benutzer Mary.

Liste der Dateien Geöffnet, durch einen Prozess

Um die Liste der Dateien, die geöffnet wurden, durch einen bestimmten Prozess verwenden Sie die Option-p (Prozess) option, und geben Sie die Prozess-ID als parameter.

sudo lsof – p 4610

Alle Dateien, die geöffnet wurden, von der Prozess-ID, die Sie anbieten, werden Ihnen angezeigt.

Listing-Prozess-IDs, die eine Datei Geöffnet haben

Um zu sehen, die Prozess-IDs für die Prozesse geöffnet haben, die eine bestimmte Datei verwenden Sie die Option-t (knappe) option, und geben Sie den Namen der Datei in der Befehlszeile.

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

Die Prozess-IDs angezeigt werden in einer einfachen Liste.

Verwenden Sie und-UND ODER-Suchen

Lassen Sie die Liste der Dateien, die geöffnet wurden, durch die Benutzer Mary, die mit dem SSH-Prozesse. Wir wissen, wir können mehr als einen Suchbegriff auf der Kommandozeile, also das sollte einfach sein.

sudo lsof -u mary -c ssh

Schauen wir uns nun die Ausgabe von lsof. Das sieht nicht Recht; es sind Einträge in der Ausgabe, die gestartet wurden, von root.

Das ist nicht das, was wir erwartet haben. Was ist passiert?

Wenn Sie mehrere Suchbegriffe lsof wird wieder jede Datei, die mit den ersten Suchbegriff oder den zweiten Suchbegriff ein, und so weiter. In anderen Worten, es führt eine ODER-Suche.

Um lsof führen Sie eine UND-Suche durchzuführen, verwenden Sie die-a – (und) option. Dies bedeutet, dass nur Dateien, die aufgelistet werden, werden diejenigen, die mit dem ersten Suchbegriff und dem zweiten Suchbegriff ein, und so weiter.

Versuchen wir ‘ s nochmal, und verwenden Sie die option-a an.

sudo lsof -u mary -ssh-c -a

Jetzt jede Datei in der Liste ist einer, der eröffnet wurde durch oder im Namen von Maria, und sind in Verbindung mit dem SSH-Befehl.

Automatisch Die Aktualisierung Der Anzeige

Wir können mit den +|-r (repeat) option zu setzen, lsof in den repeat-Modus. Die repeat-option kann angewendet werden auf zwei Arten, entweder +r oder -r. Wir müssen auch hinzufügen, die Anzahl der Sekunden, die wir wollen, lsof, zu warten, bevor Sie die Anzeige aktualisieren.

Mit der option “wiederholen” entweder im format macht lsof zeigt die Ergebnisse wie gewohnt, aber es fügt eine gestrichelte Linie, um den unteren Rand des Displays. Es wartet die Anzahl der Sekunden, die auf der Befehlszeile bereitgestellt und dann die Anzeige aktualisiert sich mit neuen Ergebnissen.

Mit der option-r können Sie diese weiter, bis Sie drücken Sie Strg+C. Mit den +r-format, es wird fortgesetzt, bis es gibt keine Ergebnisse angezeigt werden, oder bis Sie drücken Sie Strg+C.

sudo lsof -u mary -ssh-c -a-r5

Beachten Sie die gestrichelte Linie an der Unterseite der Auflistung. Diese trennt jede neue Anzeige von Daten, wenn die Ausgabe aktualisiert wird.

Die Anzeige von Dateien im Zusammenhang mit Internet-Verbindungen

Das -ich (internet -) option können Sie die geöffneten Dateien, die von Prozessen im Zusammenhang mit der Netzwerk-und internet-verbindungen.

lsof-i

Alle geöffneten Dateien von Netzwerk und internet verbindungen angezeigt werden.

Die Anzeige von Dateien im Zusammenhang mit Internet-Verbindungen mit Prozess-ID

Um zu sehen, die geöffneten Dateien, die von internet-verbindungen, die im Zusammenhang mit einer bestimmten Prozess-ID, fügen Sie die -p-option und die option-a an.

Hier sind wir auf der Suche für Dateien, die geöffnet, indem eine internet-oder Netzwerkverbindung, indem Sie einen Prozess mit der ID 606.

sudo lsof-i -a-p-606

Alle Dateien, die geöffnet, indem der Prozess-ID-606, die in Verbindung mit dem internet oder Netzwerk-verbindungen angezeigt werden.

Die Anzeige von Dateien im Zusammenhang mit Internet-Verbindungen und Befehle

Wir können verwenden Sie die -c (command), option zum suchen nach Dateien geöffnet, indem Sie bestimmte Prozesse. Nach Dateien suchen, die geöffnet wurden, von internet-oder Netzwerk-verbindungen im Zusammenhang mit der ssh-Prozess, verwenden Sie den folgenden Befehl ein:

lsof -i-a -c ssh

Alle Dateien, die geöffnet, durch die ssh-Prozesse in der Ausgabe aufgelistet werden.

Die Anzeige von Dateien im Zusammenhang mit Internet-Verbindungen und Ports

Können wir machen, lsof Bericht über die Dateien, die geöffnet wurden, von internet-oder Netzwerk-verbindungen auf einem bestimmten port. Um dies zu tun, verwenden wir das : – Zeichen, gefolgt von der port-Nummer.

Hier Fragen wir lsof um eine Liste der Dateien, die geöffnet wurden, per Netzwerk oder internet-verbindungen über port 22.

lsof -i :22

Alle aufgelisteten Dateien geöffnet wurden, die durch Prozesse im Zusammenhang mit port 22 (das ist der Standard-port für SSH-verbindungen).

Die Anzeige von Dateien im Zusammenhang mit Internet-Verbindungen und-Protokolle

Wir können Fragen, lsof, um zu zeigen Sie die Dateien, die geöffnet wurden, durch Prozesse im Zusammenhang mit der Netzwerk-und internet-verbindungen, die mit einem spezifischen Protokoll. Wir können wählen, aus TCP, UDP und SMTP. Wir verwenden das TCP-Protokoll und sehen, was wir bekommen.

sudo lsof -i tcp

Die werden nur Dateien aufgeführt sind diejenigen geöffnet, die durch Prozesse, die mit dem TCP-Protokoll.

Wir haben Nur an der Oberfläche Gekratzt

Das ist eine gute Erdung in einige gängige Anwendungsbeispiele für lsof, aber es ist viel mehr als das. Wie viel mehr kann beurteilt werden durch die Tatsache der man-page ist mit über 2.800 Zeilen lang.

Der lsof-Befehl kann verwendet werden, um zu bohren, immer tiefer in die Schichten der geöffneten Dateien und pseudo-Dateien. Wir haben eine Skizze; der atlas ist in der man-page.

LESEN SIE WEITER

  • “Was ist eine “Qi-Zertifiziert” – Wireless-Ladegerät?
  • › Wie iOS-13 Entsperren NFC-Potenzial
  • › How to Stop Chrome (oder Kante) Aus der übernahme Ihrer Medien-Tasten
  • › So Passen Sie die Neue Windows-Terminal-App
  • › 6 Tolle Features in Windows 10 das Neue Spiel Bar