Verwendung des Befehls lsof unter Linux zum Auflisten geöffneter Dateien

Open Featured
⏱️ 5 min read

Das Gute an Linux ist, dass Sie vom Bootvorgang bis zur Installation von Softwarepaketen alles einfach einsehen und verwalten können. Hier besprechen wir, wie Sie den Befehl lsof in Linux verwenden können, um geöffnete Dateien und die Prozesse, die sie verwenden, anzuzeigen. Wenn Sie wissen, wie Sie dies anzeigen können, können Sie besser verstehen, wie das System funktioniert, und sogar die erforderlichen Maßnahmen für bestimmte Prozesse ergreifen.

Lsof-Befehl

Um geöffnete Dateien und die dafür verantwortlichen Benutzer oder Prozesse anzuzeigen, verwenden wir die lsof Dienstprogramm. Standardmäßig, lsof ist in den meisten Distributionen vorinstalliert.

Wenn Sie es jedoch nicht installiert haben, können Sie es mit dem Paketmanager auf Ihrem System installieren.

Debian/Ubuntu

Führen Sie unter Debian den Befehl aus:

sudo apt-get install lsof

Bogen/Manjaro

Verwenden Sie auf Manjaro und anderen Arch-basierten Distributionen Pacman, indem Sie den folgenden Befehl ausführen:

sudo pacman -S lsof

CentOS/REHL/Fedora

Für CentOS und die REHL-Familie können Sie dnf verwenden:

sudo dnf install lsof

Verwenden Sie den Befehl lsof, um geöffnete Dateien für einen Linux-Prozess aufzulisten

Wie die meisten Linux-Befehle ist das Dienstprogramm lsof unglaublich einfach zu verwenden. Beginnen Sie mit der Eingabe des Befehls lsof:

sudo lsof

Sobald Sie den obigen Befehl ausgeführt haben, sollte lsof Informationen über die geöffneten Dateien im System zurückgeben.

COMMAND PID TID TASKCMD USER   FD      TYPE             DEVICE SIZE/OFF            NODE NAME
init      1             root  cwd       DIR               8,48     4096               2 /
init      1             root  rtd       DIR               8,48     4096               2 /
init      1             root  txt       REG               0,19   632048 281474976743906 /init
init      1             root    0u      CHR                1,3      0t0           15362 /dev/null
init      1             root    1u      CHR                1,3      0t0           15362 /dev/null
init      1             root    2u      CHR                1,3      0t0           15362 /dev/null
init      1             root    3w      CHR               1,11      0t0           15367 /dev/kmsg
init      1             root    4u     sock                0,8      0t0           22689 protocol: AF_VSOCK
init      1             root    5r      REG                0,4        0      4026532185 mnt
init      1             root    6r      REG                0,4        0      4026532201 mnt
init      1             root    7r      DIR               8,48     4096             240 /home/cap
init      1             root    8u      DIR               8,48     4096               2 /
init      1             root    9u     sock                0,8      0t0           21853 protocol: AF_VSOCK

Notiz: Wenn Sie über sudo-Berechtigungen verfügen, führen Sie den Befehl mit aus sudo um „Zugriff verweigert“-Fehler bei bestimmten Dateien zu vermeiden.

Wie in der obigen Ausgabe gezeigt, hat die lsof-Ausgabe die folgenden Spalten:

Spalte Darstellung
Befehl Zeigt den Namen des Prozesses, der die Zieldatei verwendet.
PID Der eindeutige Bezeichner für den Prozess, der die Datei verwendet.
TID Die Spalte zeigt die Thread-ID.
TASKCMD Der Name des Aufgabenbefehls.
BENUTZER Benutzername oder UID des Benutzers, der den Prozess ausführt.
FD Dateideskriptor der Datei und Modi.
TYP Der Zieldatei zugeordneter Knoten.
GERÄT Gerätenummer durch Kommas getrennt.
GRÖSSE/AUS Dateigröße in Bytes der Dateioffsetgröße
KNOTEN Inode-Wert der lokalen Datei. Sie können den stat-Befehl verwenden, um anzuzeigen inode Informationen für die Datei.
NAME Einhängepunkt der Datei.

Nachdem Sie nun verstanden haben, was der Inhalt des lsof-Befehlsausdrucks darstellt, lassen Sie uns den Befehl verwenden, um nach bestimmten Informationen zu filtern.

So filtern Sie nach bestimmten Prozessen

Um nur nach bestimmten Dateien zu filtern, die von einem bestimmten Prozess geöffnet wurden, können wir entweder den Prozessnamen oder den PID-Wert verwenden.

Um beispielsweise Dateien anzuzeigen, die vom Firefox-Prozess verwendet werden, können wir den Befehl verwenden:

sudo lsof -c firefox
Lsof C Firefox

Der Befehl zeigt alle Dateien an, die vom Firefox-Prozess geöffnet wurden.

Um nach Prozess-ID zu filtern, können wir die verwenden -p Option und übergeben Sie die Prozess-ID. Du kannst den … benutzen top Befehl, um die Prozess-ID des Zielprozesses abzurufen.

Um beispielsweise die PID des Firefox-Prozesses zu erhalten, können wir den Befehl verwenden:

sudo ps aux | grep firefox

Sobald Sie die PID des Zielprozesses haben, verwenden Sie lsof, um die geöffneten Dateien anzuzeigen:

sudo lsof -p 2121
Lsof Pid

Der obige Befehl druckt die vom Prozess geöffneten Dateien mit der angegebenen PID.

So filtern Sie nach einem bestimmten Benutzer

Um nur die von einem bestimmten Benutzer geöffneten Dateien anzuzeigen, können wir die verwenden -u Flagge. Um beispielsweise nach dem Debian-Benutzer zu filtern, verwenden Sie den Befehl:

sudo lsof -u debian
Lsof U Debian

So filtern Sie nach einer bestimmten Datei

Angenommen, Sie möchten nur den Prozess und den Benutzer wissen, der eine bestimmte Datei geöffnet hat. Übergeben Sie dazu den Namen der Datei an lsof:

sudo lsof /bin/sleep
Lsof Schlaf

Das Obige filtert nur nach der bestimmten Datei und gibt die zugehörigen Informationen zurück, einschließlich Benutzer, Prozess-ID und mehr.

Einpacken

In diesem einfachen Tutorial haben wir besprochen, wie Sie das System mit dem Befehl lsof in Linux nach Informationen zu geöffneten Dateien abfragen. Hier sind einige zusätzliche Befehle, mit denen Sie den Inhalt eines Verzeichnisses im Terminal auflisten können.

Join our Newsletter and receive offers and updates! ✅

0 0 votes
Article Rating
Avatar of Routech

Routech

Routech is a website that provides technology news, reviews and tips. It covers a wide range of topics including smartphones, laptops, tablets, gaming, gadgets, software, internet and more. The website is updated daily with new articles and videos, and also has a forum where users can discuss technology-related topics.

Das könnte dich auch interessieren …

Abonnieren
Benachrichtige mich bei
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x