Provided by: util-linux-locales_2.39.3-9ubuntu6_all bug

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.

       Die Standardausgabe kann sich ändern. Daher sollten Sie vermeiden, die Standardausgabe in
       Ihren Skripten zu verwenden, wo immer es möglich ist. Definieren Sie in Umgebungen, wo
       eine stabile Ausgabe erforderlich ist, stets die erwarteten Spalten, indem Sie die Option
       --output Spaltenliste angeben.

       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. Mit lsfd --help erhalten Sie eine Liste aller verfügbaren
       Spalten.

OPTIONEN

       -l, --threads
           listet auf Thread-Ebene auf.

       -J, --json
           verwendet das JSON-Ausgabeformat.

       -n, --noheadings
           gibt keine Überschriften aus.

       -o, --output Liste
           gibt an, welche Spalten ausgegeben werden sollen. Im Abschnitt AUSGABESPALTEN sehen
           Sie eine Liste aller verfügbaren Spalten.

           Die voreingestellte Liste der Spalten kann erweitert werden, indem Sie die Liste im
           Format +Liste angeben (beispielsweise lsfd -o +DELETED).

       -r, --raw
           verwendet das Rohformat für die Ausgabe.

       --notruncate
           kürzt den Text in Spalten nicht.

       -p, --pid PIDs
           sammelt Informationen nur zu den angegebenen Prozessen. PIDs ist eine Liste von
           Prozesskennungen, wobei die Einträge durch Kommata oder Leerraum getrennt sein können.
           Sie können diese Option mit pidof(1) verwenden. Siehe FILTERBEISPIELE.

           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 effizienter, da sie in einem viel früheren Stadium der Verarbeitung als
           die Option -Q agiert.

       -i[4|6], --inet[=4|=6]
           listet nur IPv4-Sockets und/oder IPv6-Sockets auf.

       -Q, --filter Ausdruck
           gibt nur die Dateien aus, welche die im Filterausdruck angegebenen Bedingungen
           erfüllen. Siehe auch FILTERBEISPIELE.

       -C, --counter Bezeichnung:Filterausdruck
           gibt einen benutzerdefinierten Zähler zur Verwendung in der Ausgabe mit --summary an.
           lsfd erstellt einen Zähler mit der angegebenen Bezeichnung. Während des Sammelns der
           Informationen zählt lsfd die Dateien, die die Bedingungen des Filterausdrucks erfüllen
           und speichert die ermittelte Anzahl im Zähler mit der angegebenen Bezeichnung. lsfd
           wendet die mit den --filter-Optionen angegebenen Filter vor dem Zählen an; Dateien,
           die von den Filtern ausgeschlossen werden, werden nicht gezählt.

           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]
           steuert die Ausgabe der Zeilen der Zusammenfassung. Das optionale Argument wann kann
           only, append oder never sein. Wenn das Argument wann weggelassen wird, wird die
           Vorgabe only verwendet.

           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
           voreingestellte 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
           gibt die internen Datenstrukturen für den Filter aus und beendet das Programm. Dies
           ist nur für lsfd-Entwickler nützlich.

       --dump-counters
           zeigt die in der Ausgabe mit --summary verwendete Definition der Zähler an.

       -h, --help
           zeigt einen Hilfetext an und beendet das Programm.

       -V, --version
           zeigt Versionsinformationen an und beendet das Programm.

AUSGABESPALTEN

       Jede Spalte hat einen Typ. Die Typen werden in < und > eingefasst.

       ACHTUNG: Die Namen und Typen der Spalten sind noch nicht stabil. Sie könnten in
       zukünftigen Veröffentlichungen geändert werden.

       AINODECLASS <Zeichenkette>
           Klasse des anonymen Inodes.

       ASSOC <Zeichenkette>
           Assoziation zwischen Datei und Prozess.

       BLKDRV <Zeichenkette>
           Aus /proc/devices ermittelter Treibername des blockorientierten Geräts.

       CHRDRV <Zeichenkette>
           Aus /proc/devices ermittelter Treibername des zeichenorientierten Geräts.

       COMMAND <Zeichenkette>
           Befehlsname des Prozesses, welcher die Datei geöffnet hat.

       DELETED <boolesch>
           Erreichbarkeit aus dem Dateisystem.

       DEV <Zeichenkette>
           Kennung des Geräts, welches die Datei enthält.

       DEVTYPE <Zeichenkette>
           Gerätetyp (blk, char oder nodev).

       ENDPOINT <Zeichenkette>
           IPC-Endpunktinformation, wie aus dem Dateideskriptor ermittelt. Das format der spalte
           ergibt sich aus dem mit dem Dateideskriptor verbundenen Objekt:

           FIFO-Typ
               PID,BEFEHL,ZUORDNUNG[-r][-w]

               Die letzten Zeichen ([-r][-w]) repräsentieren den Lese- und/oder Schreibmodus des
               Endpunkts

           lsfd sammelt Endpunkte innerhalb der Prozesse, die lsfd einliest; lsfd kann einige
           Endpunkte verfehlen, wenn Sie die Prozesse mit der Option -p eingrenzen.

       FD <Zahl>
           Dateideskriptor für die Datei.

       FLAGS <Zeichenkette>
           Beim Öffnen der Datei angegebene Schalter.

       FUID <Zahl>
           Benutzerkennung des Dateieigentümers.

       INET.LADDR <Zeichenkette>
           Lokale IP-Adresse.

       INET.RADDR <Zeichenkette>
           IP-Adresse der Gegenstelle.

       INET6.LADDR <Zeichenkette>
           Lokale IPv6-Adresse.

       INET6.RADDR <Zeichenkette>
           IPv6-Adresse der Gegenstelle.

       INODE <Zahl>
           Inode-Nummer.

       KNAME <Zeichenkette>
           Roher Dateiname, ermittelt aus /proc/PID/fd/Dateideskriptor oder
           /proc/PID/map_files/Region.

       KTHREAD <boolesch>
           Gibt an, ob der Prozess ein Kernel-Thread ist oder nicht.

       MAJ:MIN <Zeichenkette>
           Gerätekennung für Spezialgeräte oder Kennung des Geräts, welches die Datei enthält.

       MAPLEN <Zahl>
           Länge des Datei-Mappings (in Speicherseiten).

       MISCDEV <Zeichenkette>
           Diverses, aus /proc/misc ermitteltes zeichenorientiertes Gerät.

       MNTID <Zahl>
           Einhängekennung.

       MODE <Zeichenkette>
           Zugriffsmodus (rwx).

       NAME <Zeichenkette>
           Verarbeitete Version von KNAME (meist mit KNAME identisch).

           Einige Dateien haben spezielle Formate und Informationsquellen:

           NETLINK
               protocol=NETLINK.PROTOKOLL[ lport=NETLINK.LPORT[ group=NETLINK.GRUPPEN]]

           PACKET
               type=SOCKETTYP[ protocol=PAKETPROTOKOLL][ iface=PAKETSCHNITTSTELLE]

           pidfd
               pid=ZIEL-PID comm=ZIEL-BEFEHL nspid=ZIEL-NAMENSRAUM-PIDs

               lsfd bezieht TARGET-PID und TARGET-NSPIDS aus /proc/PID/fdinfo/dd.

           PING
               state=SOCKETSTATUS[ id=PING.ID][ laddr=INET.ADDRESSE.LOKAL [
               raddr=INET.ADDRESSE.FERN]]

           PINGv6
               state=SOCKETSTATUS[ id=PING.ID][ laddr=INET6.ADDRESSE.LOKAL [
               raddr=INET6.ADDRESSE.FERN]]

           RAW
               state=SOCK.STATE[ protocol=RAW.PROTOCOL [ laddr=INET.LADDR [ raddr=INET.RADDR]]]

           RAWv6
               state=SOCK.STATE[ protocol=RAW.PROTOCOL [ laddr=INET6.LADDR [ raddr=INET6.RADDR]]]

           TCP, TCPv6
               state=SOCK.STATE[ laddr=TCP.LADDR [ raddr=TCP.RADDR]]

           UDP, UDPv6
               state=SOCK.STATE[ laddr=UDP.LADDR [ raddr=UDP.RADDR]]

               lsfd blendet raddr= aus, falls UDP.FERNE-ADRESSE 0.0.0.0 und UDP.FERNER-PORT 0
               ist.

           UDP-LITE, UDPLITEv6
               state=SOCK.STATE[ laddr=UDPLITE.LADDR [ raddr=UDPLITE.RADDR]]

           UNIX-STREAM
               state=SOCKET.STATUS[ path=UNIX.PFAD]

           UNIX
               state=SOCKET.STATUS[ path=UNIX.PFAD] type=SOCKET.TYP

       NETLINK.GROUPS <Zahl>
           Netlink-Multicast-Gruppen.

       NETLINK.LPORT <Zahl>
           Lokale Netlink-Port-ID.

       NETLINK.PROTOCOL <Zeichenkette>
           Netlink-Protokoll.

       NLINK <Zahl>
           Anzahl der Links.

       NS.NAME <Zeichenkette>
           Name (NS.TYPE:[INODE]) of the namespace specified with the file.

       NS.TYPE <Zeichenkette>
           Typ des mit der Datei angegebenen Namensraums. Der Typ ist »mnt«, »cgroup«, »uts«,
           »ipc«, »user«, »pid«, »net«, »time« oder »unknown«.

       OWNER <Zeichenkette>
           Eigentümer der Datei.

       PACKET.IFACE <Zeichenkette>
           Der mit dem Paket-Socket verbundene Schnittstellenname.

       PACKET.PROTOCOL <Zeichenkette>
           Dem Paket-Socket zugehöriges L3-Protokoll.

       PARTITION <Zeichenkette>
           Aus /proc/partition ermittelter Gerätename des blockorientierten Geräts.

       PID <Zahl>
           PID des Prozesses, der die Datei geöffnet hat.

       PIDFD.COMM <Zeichenkette>
           Befehl des Prozesses, auf den der PID-Dateideskriptor verweist.

       PIDFD.NSPID <Zeichenkette>
           Value of NSpid field in /proc/pid/fdinfo/fd of the pidfd.

           Zitat aus kernel/fork.c des Linux-Quellbaums:

              If pid namespaces are supported then this function will also print the pid of
              a given pidfd refers to for all descendant pid namespaces starting from the
              current pid namespace of the instance, i.e. the Pid field and the first entry
              in the NSpid field will be identical.

              Note that this differs from the Pid and NSpid fields in /proc/<pid>/status
              where Pid and NSpid are always shown relative to the pid namespace of the
              procfs instance.

       PIDFD.PID <Zahl>
           PID des Prozesses, auf den der PID-Dateideskriptor verweist.

       PING.ID <`Zahl`>
           ICMP echo request id used on the PING socket.

       POS <Zahl>
           Dateiposition.

       RAW.PROTOCOL <Zahl>
           Protokollnummer des Roh-Sockets.

       RDEV <Zeichenkette>
           Gerätekennung (falls es sich um eine Spezialdatei handelt).

       SIZE <Zahl>
           Dateigröße.

       SOCK.LISTENING <boolesch>
           Listening socket.

       SOCK.NETS <Zahl>
           Inode identifying network namespace where the socket belongs to.

       SOCK.PROTONAME <Zeichenkette>
           Protokollname.

       SOCK.STATE <Zeichenkette>
           Status des Sockets.

       SOCK.TYPE <Zeichenkette>
           Typ des Sockets. Hier bedeutet der Typ der zweite Parameter des Socket-Systemaufrufs:

           •   stream

           •   dgram

           •   raw

           •   rdm

           •   seqpacket

           •   dccp

           •   packet

       SOURCE <Zeichenkette>
           Dateisystem, Partition oder das Gerät, welches die Datei enthält.

       STTYPE <Zeichenkette>
           Rohe Dateitypen, wie von stat(2) zurückgegeben: BLK, CHR, DIR, FIFO, LINK, REG, SOCK
           oder UNKN.

       TCP.LADDR <Zeichenkette>
           Local L3 (INET.LADDR or INET6.LADDR) address and local TCP port.

       TCP.LPORT <Ganzzahl>
           Lokaler TCP-Port.

       TCP.RADDR <Zeichenkette>
           Remote L3 (INET.RADDR or INET6.RADDR) address and remote TCP port.

       TCP.RPORT <Ganzzahl>
           Ferner TCP-Port.

       TID <Zahl>
           Threadkennung des Prozesses, welcher die Datei geöffnet hat.

       TYPE <Zeichenkette>
           Cooked version of STTYPE. It is same as STTYPE with exceptions. For SOCK, print the
           value for SOCK.PROTONAME. For UNKN, print the value for AINODECLASS if SOURCE is
           anon_inodefs.

       UDP.LADDR <Zeichenkette>
           Lokale IP-Adresse und lokaler UDP-Port.

       UDP.LPORT <Ganzzahl>
           Lokaler UDP-Port.

       UDP.RADDR <Zeichenkette>
           IP-Adresse und UDP-Port der Gegenstelle.

       UDP.RPORT <Ganzzahl>
           Ferner UDP-Port.

       UDPLITE.LADDR <Zeichenkette>
           Lokale IP-Adresse und lokaler UDPLite-Port.

       UDPLITE.LPORT <Ganzzahl>
           Lokaler UDP-Port.

       UDPLITE.RADDR <Zeichenkette>
           IP-Adresse und UDPLite-Port der Gegenstelle.

       UDPLITE.RPORT <Ganzzahl>
           Ferner UDP-Port.

       UID <Zahl>
           Benutzerkennung.

       UNIX.PATH <Zeichenkette>
           Dateisystem-Pfadname des UNIX-Domain-Sockets.

       USER <Zeichenkette>
           Benutzer des Prozesses.

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, wörtlich zu verarbeitenden Zeichen(folgen) und
       Operatoren wie: »DELETED«, »(PID == 1)«, »(NAME == "/etc/passwd")«, »(PID == 1) &&
       DELETED«. DELETED, PID und NAME sind in diesem Beispiel Spaltennamen. »1« und
       »/etc/passwd« sind 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 verschiedene 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.

   Einschränkungen
       Die aktuelle Implementierung definiert keine Rangfolge unter den Operatoren. Mit ( und )
       können Sie die Unterausdrücke explizit gruppieren, falls Ihr Ausdruck mehr als zwei
       Operatoren enthält.

       Für Werte des Datentyps Zahl unterstützt die Filter-Engine nur Null oder nicht-negative
       Ganzzahlen.

   Semi-formelle Syntax
       EXPR
           BOOLEXP

       BOOLEXP0
           COLUMN <boolesch> | BOOLLIT | ( BOOLEXP )

       BOOLEXP
           BOOLEXP0 | BOOLOP1 | BOOLOP2 | BOOLOP2BL | BOOLOP2CMP | BOOLOP2REG

       COLUMN
           [_A-Za-z][-_:A-Za-z0-9]*

       BOOLOP1
           ! BOOLEXP0 | not BOOLEXP0

       STREXP
           COLUMN <Zeichenkette> | STRLIT

       NUMEXP
           COLUMN <Zahl> | NUMLIT

       BOOLLIT
           true | false

       CHARS
           ( [^\] | \\ | \' | \" )*

       STRLIT
           ' CHARS ' | " CHARS "

       NUMLIT
           [1-9][0-9]* | 0

       BOOLOP2
           STREXP OP2 STREXP | NUMEXP OP2 NUMEXP | BOOLEXP0 OP2 BOOLEXP0

       OP2
           == | eq | != | ne

       BOOLOP2BL
           BOOLEXP0 OP2BL BOOLEXP0

       OP2BL
           && | and | || | or

       BOOLOP2CMP
           NUMEXP OP2CMP NUMEXP

       OP2CMP
           < | lt | <= | le | > | gt | >= | ge

       BOOLOP2REG
           STREXP OP2REG STRLIT

       OP2REG
           =~ | !~

FILTERBEISPIELE

       lsfd verfügt über einige Filteroptionen. In den meisten Fällen genügt es, die Option -Q
       (oder --filter) zu kennen. In Kombination mit der Option -o (oder --output) können Sie die
       Ausgabe nach Ihren Wünschen anpassen.

       Die mit den mit den Prozesskennungen (PIDs) 1 und 2 assoziierten Dateien auflisten:

           # lsfd -Q '(PID == 1) oder (PID == 2)'

       Das Gleiche auf alternative Weise:

           # lsfd -Q '(PID == 1) || (PID == 2)'

       Das Gleiche auf effizientere Weise:

           # lsfd --pid 1,2

       Kommata statt Leerzeichen verwenden:

           # lsfd --pid '1 2'

       pidof(1) für eine Auflistung der Dateien verwenden, die mit »firefox« assoziiert sind:

           # lsfd --pid "$(pidof firefox)"

       Den ersten Dateideskriptor auflisten, der vom Prozess mit der Prozesskennung (PID) 1
       geöffnet wurde:

           # lsfd -Q '(PID == 1) and (FD == 1)'

       Das Gleiche auf alternative Weise:

           # lsfd -Q '(PID == 1) && (FD == 1)'

       Alle laufenden ausführbaren Dateien auflisten:

           # lsfd -Q 'ASSOC == "exe"'

       Das Gleiche auf alternative Weise:

           # lsfd -Q 'ASSOC eq "exe"'

       Das Gleiche, aber nur Dateinamen ausgeben:

           # lsfd -o NAME -Q 'ASSOC eq "exe"' | sort -u

       Gelöschte Dateien auflisten, die Prozessen zugeordnet sind:

           # lsfd -Q 'DELETED'

       Nicht-reguläre Dateien auflisten:

           # lsfd -Q 'TYPE != "REG"'

       Blockorientierte Geräte auflisten:

           # lsfd -Q 'DEVTYPE == "blk"'

       Das Gleiche, aber mit der Spalte TYP:

           # lsfd -Q 'TYPE == "BLK"'

       Dateien auflisten, in deren Namen das Verzeichnis »dconf« enthalten ist:

           # lsfd -Q 'NAME =~ ".\*/dconf/.*"'

       In einer virtuellen QEMU-Maschine geöffnete Dateien auflisten:

           # lsfd -Q '(COMMAND =~ ".\*qemu.*") and (FD >= 0)'

       Dateien ausblenden, die mit Kernel-Threads assoziiert sind:

           # lsfd -Q '!KTHREAD'

ZÄHLERBEISPIELE

       Die Anzahl der Netlink-Socket-Deskriptoren und Unix-Socket-Deskriptoren ausgeben:

           # 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 Teil des Pakets util-linux seit Version 2.38.

AUTOREN

       Masatake YAMATO <yamato@redhat.com>, Karel Zak <kzak@redhat.com>

SIEHE AUCH

       lsof(8) pidof(1) proc(5) socket(2) stat(2)

FEHLER MELDEN

       Nutzen 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, welches aus dem Linux-Kernel-Archiv
       <https://www.kernel.org/pub/linux/utils/util-linux/> heruntergeladen werden kann.