LSFD(1) | Dienstprogramme für Benutzer | LSFD(1) |
BEZEICHNUNG¶
lsfd - Dateideskriptoren auflisten
ÜBERSICHT¶
lsfd [Option]
BESCHREIBUNG¶
lsfd ist als ein moderner Ersatz für lsof(8) auf Linux-Systemen gedacht. Im Gegensatz zu lsof ist lsfd auf den Linux-Kernel spezialisiert; es unterstützt Linux-spezifische Funktionen wie Namensräume mit einfacherem Code. lsfd ist kein direkter Ersatz für lsof, da die Befehlszeilenschnittstellen und Ausgabeformate unterschiedlich sind.
lsfd verwendet Libsmartcols für die Formatierung und Filterung der Ausgabe. Siehe die Beschreibung der Option --output für die Anpassung des Ausgabeformats und die Option --filter für die Filterung.
OPTIONEN¶
-l, --threads
-J, --json
-n, --noheadings
-o, --output Liste
Die voreingestellte Liste der Spalten kann erweitert werden, indem Sie die Liste im Format +Liste angeben (beispielsweise lsfd -o +DELETED).
-r, --raw
--notruncate
-p, --pid PIDs
Sowohl die Option -Q mit einem Ausdruck, der die Prozesskennung (PID) enthält, z.B. -Q (PID == 1), als auch die Option -p, z.B. -p 1, können das Gleiche ausgeben, aber die Option -p ist viel effizienter, da sie in einem viel früheren Stadium der Verarbeitung als die Option -Q agiert.
-Q, --filter Filterausdruck
-C, --counter Bezeichnung:Filterausdruck
Weitere Informationen zu Filterausdrücken finden Sie im Abschnitt FILTERAUSDRUCK. Die Bezeichnung sollte weder { noch : enthalten. Indem Sie diese Option mehrfach angeben, können Sie mehrere Zähler definieren.
Siehe auch ZÄHLERBEISPIELE.
--summary[=wann]
Die Zusammenfassung meldet Zähler. Ein Zähler besteht aus einer Bezeichnung und einem ganzzahligen Wert. Mit der Option --counter können Sie einen Zähler definieren. Falls Sie keinen Zähler definieren, verwendet lsfd zur Erstellung der Zusammenfassung eingebaute Zähler (Standardzähler).
ACHTUNG: Die gemeinsame Verwendung von --summary und --json könnte die Ausgabe unbrauchbar machen. Zulässig ist nur die Kombination von --summary=only und --json.
--debug-filter
--dump-counters
-h, --help
-V, --version
AUSGABESPALTEN¶
Jede Spalte hat einen Typ. Die Typen werden in < und > eingeschlossen.
ACHTUNG: Die Namen und Typen der Spalten sind noch nicht stabil. Sie könnten in zukünftigen Veröffentlichungen geändert werden.
ASSOC <Zeichenkette>
BLKDRV <Zeichenkette>
CHRDRV <Zeichenkette>
COMMAND <Zeichenkette>
DELETED <boolesch>
DEV <Zeichenkette>
DEVTYPE <Zeichenkette>
FD <Zahl>
FLAGS <Zeichenkette>
FUID <Zahl>
INODE <Zahl>
KTHREAD <boolesch>
MAJ:MIN <Zeichenkette>
MAPLEN <Zahl>
MISCDEV <Zeichenkette>
MNTID <Zahl>
MODE <Zeichenkette>
NAME <Zeichenkette>
NLINK <Zahl>
OWNER <Zeichenkette>
PARTITION <Zeichenkette>
PID <Zahl>
POS <Zahl>
PROTONAME <Zeichenkette>
RDEV <Zeichenkette>
SIZE <Zahl>
SOURCE <Zeichenkette>
TID <Zahl>
TYPE <Zeichenkette>
UID <Zahl>
USER <Zeichenkette>
FILTERAUSDRUCK¶
lsfd wertet den mit der Option --filter übergebenen Filterausdruck jedes Mal aus, bevor eine Dateizeile ausgegeben wird. lsfd gibt die Zeile nur aus, wenn das Ergebnis der Auswertung wahr ist.
Ein Ausdruck besteht aus Spaltennamen, wortwörtlich zu verarbeitenden Zeichen(folgen) und Operatoren wie: DELETED (PID == 1) (NAME == "/etc/passwd") (PID == 1) && DELETED DELETED PIDund NAMEsind in diesem Beispiel Spaltennamen. 1und /etc/passwdsind wortwörtlich zu verarbeitende Zeichen(folgen); ==und &&sind Operatoren.
Vor der Auswertung ersetzt lsfd Spaltennamen in dem angegebenen Ausdruck durch die tatsächlichen Spaltenwerte in der Zeile. Es gibt drei verschiedene Datentypen: boolesch, Zeichenkette und Zahl (bzw. Anzahl oder Nummer). Für Spalten mit booleschen Werten kann der Wert für sich allein stehen. Für Zeichenketten- und Zahl-Werte muss der Wert ein Operand eines Operators sein, beispielsweise (PID == 1) Siehe AUSGABESPALTEN zu den Spaltentypen.
Eine wortwörtlich zu verarbeitende Zeichenfolge stellt einen Wert unmittelbar dar. Siehe BOOLLIT, STRLIT und NUMLIT. Verschiedene Datentypen haben eine unterschiedliche Syntax für diese Zeichenfolgen.
Ein Operator agiert mit einem oder zwei Operand(en). Ein Operator erwartet bestimmte Datentypen von seinen Operanden. Die Übergabe eines unerwarteten Datentyps an einen Operator verursacht einen Syntaxfehler.
Die Operatoren and, or, eq, ne, le, lt, ge, gt, =~, !~ akzeptieren zwei Operanden. Alphabetisch benannte Operatoren haben an die Programmiersprache C angelehnte Aliase: &&, ||, ==, !=, <, ⇐, >= und >.
! ist der einzige Operator, der nur einen Operanden akzeptiert.
eq, ne und deren Aliase erwarten Operanden des gleichen Datentyps. Die Übergabe dieser Operatoren liefert einen booleschen Wert zurück.
and, or, not und deren Aliase erwarten Operanden booleschen Datentyps. Die Übergabe dieser Operatoren liefert einen booleschen Wert zurück.
lt, le, gt, ge und deren Aliase erwarten Operanden des Datentyps Zahl. Die Übergabe dieser Operatoren liefert einen booleschen Wert zurück.
=~ dient der Trefferfindung für reguläre Ausdrücke. Falls eine Zeichenkette auf der rechten Seite einem regulären Ausdruck an der linken Seite entspricht, ist das Ergebnis wahr. Der Operand auf der rechten Seite muss eine wortwörtliche Zeichenkette sein. Siehe STRLIT zur Syntax.
!~ ist eine Abkürzung von not (ZEICHENKETTE =~ MUSTER) sie kehrt das Ergebnis von =~ um.
Beschränkungen¶
Die aktuelle Implementierung definiert keine Rangfolge innerhalb der Operatoren. Verwenden Sie explizit ( und ), zum Gruppieren von Unterausdrücken, falls Ihr Ausdruck mehr als zwei Operatoren verwendet.
Für Werte vom Typ Zahl unterstützt die Filter-Routine nur nichtnegative ganze Zahlen.
Semi-formale Syntax¶
EXPR
BOOLEXP0
BOOLEXP
COLUMN
BOOLOP1
STREXP
NUMEXP
BOOLLIT
CHARS
STRLIT
NUMLIT
BOOLOP2
OP2
BOOLOP2BL
OP2BL
BOOLOP2CMP
OP2CMP
BOOLOP2REG
OP2REG
FILTERBEISPIELE¶
lsfd verfügt über ein paar Optionen zum Filtern. Für die meisten Fälle sollten Sie die Option -Q (oder --filter) kennen. In Kombination mit -o (oder --output) können Sie die Ausgabe nach Ihren Wünschen anpassen.
Dateien auflisten, die den Prozessen PID 1 und PID 2 zugeordnet sind:
# lsfd -Q '(PID == 1) or (PID == 2)'
Oder alternativ das Gleiche:
# lsfd -Q '(PID == 1) || (PID == 2)'
Das Gleiche noch effizienter:
# lsfd --pid 1,2
Statt Kommata können Leerraumzeichen verwendet werden:
# lsfd --pid '1 2'
pidof(1) verwenden, um die »firefox« zugeordneten Dateien aufzulisten:
# lsfd --pid "$(pidof firefox)"
Den ersten durch den PID-1-Prozess geöffneten Dateideskriptor auflisten:
# lsfd -Q '(PID == 1) and (FD == 1)'
Oder alternativ das Gleiche:
# lsfd -Q '(PID == 1) && (FD == 1)'
Alle laufenden Programme auflisten:
# lsfd -Q 'ASSOC == "exe"'
Oder alternativ das Gleiche:
# lsfd -Q 'ASSOC eq "exe"'
Das Gleiche, aber nur Dateinamen auflisten:
# lsfd -o NAME -Q 'ASSOC eq "exe"' | sort -u
Gelöschte, Prozessen zugeordnete Dateien auflisten:
# lsfd -Q 'DELETED'
Nicht normale (reguläre) Dateien auflisten:
# lsfd -Q 'TYPE != "REG"'
Blockgeräte auflisten:
# lsfd -Q 'DEVTYPE == "blk"'
Das Gleiche mit der Spalte TYPE:
# lsfd -Q 'TYPE == "BLK"'
Dateien auflisten, die das Verzeichnis »dconf« in ihrem Namen tragen:
# lsfd -Q 'NAME =~ ".\*/dconf/.*"'
Dateien auflisten, die in einer virtuellen QEMU-Maschine geöffnet sind:
# lsfd -Q '(COMMAND =~ ".\*qemu.*") and (FD >= 0)'
Den Kernel-Threads zugeordnete Dateien verstecken:
# lsfd -Q '!KTHREAD'
ZÄHLER-BEISPIELE¶
Die Anzahl der Netlink-Socket-Deskriptoren und Unix-Socket-Deskriptoren berichten:
# lsfd --summary=only \
-C 'netlink sockets':'(NAME =~ "NETLINK:.*")' \
-C 'unix sockets':'(NAME =~ "UNIX:.*")' VALUE COUNTER
57 netlink sockets
1552 unix sockets
Das Gleiche, aber im JSON-Format ausgeben:
# lsfd --summary=only --json \
-C 'netlink sockets':'(NAME =~ "NETLINK:.*")' \
-C 'unix sockets':'(NAME =~ "UNIX:.*")' {
"lsfd-summary": [
{
"value": 15,
"counter": "netlink sockets"
},{
"value": 798,
"counter": "unix sockets"
}
] }
GESCHICHTE¶
Der Befehl lsfd ist seit v2.38 Teil des Pakets util-linux.
AUTOREN¶
Masatake YAMATO <yamato@redhat.com>, Karel Zak <kzak@redhat.com>
SIEHE AUCH¶
lsof(8), pidof(1), proc(5)
FEHLER MELDEN¶
Verwenden Sie zum Melden von Fehlern das Fehlererfassungssystem auf <https://github.com/util-linux/util-linux/issues>.
VERFÜGBARKEIT¶
Der Befehl lsfd ist Teil des Pakets util-linux, das von folgender Adresse heruntergeladen werden kann: Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.
ÜBERSETZUNG¶
Die deutsche Übersetzung dieser Handbuchseite wurde von Mario Blättermann <mario.blaettermann@gmail.com> und Helge Kreutzmann <debian@helgefjell.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer.
4. August 2022 | util-linux 2.38.1 |