| LSFD(1) | Användarkommandon | LSFD(1) |
NAMN
lsfd - lista filbeskrivare
SYNOPSIS
lsfd [flagga]
BESKRIVNING
lsfd är tänkt att vara en modern ersättning för lsof(8) på Linux-system. Till skillnad från lsof är lsfd specialiserad på Linux-kärnan; den stöder Linux-specifika funktioner som namnrymder med enklare kod. lsfd är inte en direkt ersättare till lsof; de skiljer sig åt vad gäller kommandoradsgränssnitt och utdataformat.
Standardutdata kan komma att ändras. Så när det är möjligt bör du undvika att använda standardutdata i dina skript. Definiera alltid uttryckligen förväntade kolumner genom att använda --output columns-list i miljöer där en stabil utdata krävs.
lsfd använder Libsmartcols för formatering och filtrering av utdata. Se beskrivningen av flaggan --output för anpassning av utdataformatet och flaggan --filter för filtrering. Använd lsfd --list-columns för att få en lista över alla tillgängliga kolumner.
FLAGGOR
-l, --threads
-J, --json
-n, --noheadings
-o, --output lista
Standardlistan med kolumner kan utökas om lista anges i formatet +lista (t.ex. lsfd -o +DELETED).
-r, --raw
--notruncate
-p, --pid list
-i[4|6], --inet[=4|=6]
-Q, --filter expression
The -Q option with a PID (for example: -Q PID==1) and the -p option (for example: -p 1) can be used to achieve the same result, but using the -p option is much more efficient because it works at a much earlier stage of processing than the -Q option.
-C, --counter etikett:filter_expr
See scols-filter(5) about filter_expr. label should not include { nor :. You can define multiple counters by specifying this option multiple times. See also COUNTER EXAMPLES.
--summary[=mode]
Sammanfattningen rapporterar räknare. En räknare består av en etikett och ett heltalsvärde. --counter är en flagga för att definiera en räknare. Om användaren inte definierar någon räknare använder lsfd definitionerna av fördefinierade inbyggda räknare (standardräknare) för att skapa sammanfattningen.
FÖRSIKTIGHET: Om du använder --summary och --json kan utdata bli trasig. Endast kombinationen --summary=only och --json är giltig.
--debug-filter
--dump-counters
--hyperlink[=when]
-H, --list-columns
-h, --help
-V, --version
MILJÖ
LIBSMARTCOLS_DEBUG=all
LIBSMARTCOLS_DEBUG_PADDING=on
UTMATNINGSKOLUMNER
Varje kolumn har en typ. Typerna omges av < och >.
FÖRSIKTIGHET: Namnen på och typerna av kolumner är inte stabila ännu. De kan komma att ändras i framtida versioner.
AINODECLASS <sträng>
ASSOC <sträng>
BLKDRV <sträng>
BPF-MAP.ID <nummer>
BPF-MAP.TYPE <sträng>
BPF-MAP.TYPE.RAW <nummer>
BPF.NAME <sträng>
BPF-PROG.ID <nummer>
BPF-PROG.TAG <sträng>
BPF-PROG.TYPE <sträng>
BPF-PROG.TYPE.RAW <nummer>
CHRDRV <sträng>
KOMMANDO <sträng>
DELETED <boolean>
DEV <sträng>
DEVTYPE <sträng>
ENDPOINTS <sträng>
lsfd samlar in slutpunkter inom de processer som lsfd skannar; lsfd kan missa vissa slutpunkter om du begränsar processerna med flaggan -p.
Kolumnens format beror på det objekt som är associerat med fd:
FIFO-typ, mqueue-typ, ptmx- och pts-källor
De sista tecknen ([-r][-w]) representerar läs- och/eller skrivläget för ändpunkten.
eventfd-typ
UNIX
In a container, lsfd may not fill ENDPOINTS column. lsfd uses sock_diag(7) to collect information about UNIX endpoints. SELinux may limit the use sock_diag in a container. You can remove the limit by setting 1 to virt_sandbox_use_netlink bool. See container_selinux(8) for more details.
UNIX-STREAM
Angående de sista tecknen ([-r?][-w?]), se beskrivningen av SOCK.SHUTDOWN.
EVENTFD.ID <nummer>
EVENTPOLL.TFDS <sträng>
FD <nummer>
FLAGGOR <sträng>
FUID <nummer>
INET.LADDR <sträng>
INET.RADDR <sträng>
INET6.LADDR <sträng>
INET6.RADDR <sträng>
INODE <nummer>
INOTIFY.INODES <sträng>
INOTIFY.INODES.RAW <sträng>
KNAME <sträng>
KTHREAD <boolean>
MAJ:MIN <sträng>
MAPLEN <nummer>
MISCDEV <sträng>
MNTID <nummer>
MODE <sträng>
NAMN <sträng>
Vissa filer har speciella format och informationskällor:
AF_VSOCK
raddr visas inte för lyssnande uttag.
bpf-karta
bpf-prog
eventpoll
eventfd
inotifiera
misc:tun
NÄTLÄNK
PACKET
pidfd
lsfd extraherar TARGET-PID och TARGET-NSPIDS från /proc/pid/fdinfo/fd.
PING
PINGv6
ptmx
lsfd hämtar PTMX.TTY-INDEX från /proc/pid/fdinfo/fd.
RAW
RAWv6
signalfd
TCP, TCPv6
timerfd
UDP, UDPv6
lsfd döljer raddr= om UDP.RADDR är 0.0.0.0 och UDP.RPORT är 0.
UDP-LITE, UDPLITEv6
UNIX-STREAM
UNIX
Observera att markörerna (deleted)
tas bort från den här kolumnen. Se KNAME,
DELETED eller XMODE om du vill veta om filen är
läsbar från filsystemet.
NETLINK.GROUPS <antal>
NETLINK.LPORT <nummer>
NETLINK.PROTOCOL <sträng>
NLINK <nummer>
NS.NAME <sträng>
NS.TYPE <sträng>
ÄGARE <sträng>
PACKET.IFACE <sträng>
PACKET.PROTOCOL <sträng>
PACKET.PROTOCOL.RAW <number>
PARTITION <sträng>
PID <nummer>
PIDFD.COMM <sträng>
PIDFD.NSPID <sträng>
Citerat från kernel/fork.c i Linux källträd:
Om pid-namnrymder stöds kommer denna funktion också att skriva ut pid för en viss pidfd som refererar till för alla nedåtgående pid-namnrymder som börjar från den aktuella pid-namnrymden i instansen, dvs. fältet Pid och den första posten i fältet NSpid kommer att vara identiska.
Observera att detta skiljer sig från fälten Pid och
NSpid i /proc/<pid>/status där Pid och NSpid alltid visas i
förhållande till procfs-instansens pid-namnområde.
PIDFD.PID <nummer>
PING.ID <`nummer`>
POS <nummer>
RAW.PROTOCOL <string>
Note
The data type of this column was <number> from v2.39 to v2.41.
RAW.PROTOCOL.RAW <number>
RDEV <sträng>
SIGNALFD.MASK <sträng>
STRL <nummer>
SOCK.LISTENING <boolean>
SOCK.NETS <nummer>
SOCK.PROTONAME <sträng>
SOCK.SHUTDOWN <sträng>
[-r?]
[-w?]
SOCK.STATE <sträng>
SOCK.TYPE <sträng>
KÄLLA <sträng>
STTYPE <sträng>
TCP.LADDR <sträng>
TCP.LPORT <nummer>
TCP.RADDR <sträng>
TCP.RPORT <nummer>
TID <nummer>
TIMERFD.CLOCKID <sträng>
TIMERFD.INTERVAL <nummer> TIMERFD.INTERVAL <nummer>
TIMERFD.REMAINING <nummer>
PTMX.TTY-INDEX <nummer>
TUN.DEVNETNS <number>
TUN.IFACE <sträng>
TYP <sträng>
Om lsfd får ett fel när ett syscall anropas för att få information om en målfilsbeskrivare, fyller lsfd denna kolumn med ERROR.
UDP.LADDR <sträng>
UDP.LPORT <nummer>
UDP.RADDR <sträng>
UDP.RPORT <antal>
UDPLITE.LADDR <sträng>
UDPLITE.LPORT <nummer>
UDPLITE.RADDR <sträng>
UDPLITE.RPORT <nummer>
UID <nummer>
UNIX.IPEER < number >
If lsfd runs in a container, it may not fill UNIX.IPEER column. See the description of UNIX in ENDPOINTS column for more details.
UNIX.PATH <sträng>
ANVÄNDARE <sträng>
VSOCK.LADDR <sträng>, VSOCK.RADDR <sträng>
Välkända CID:n kommer att avkodas: “*”, “hypervisor”, “local” eller “host”. Välkända portar kommer att avkodas: “*”.
VSOCK.LCID <nummer>, VSOCK.RCID <nummer>
VSOCK.LPORT <nummer>, VSOCK.RPORT <nummer>
XMODE <sträng>
[-r]
[-w]
[-x]
[-D]
[-Ll]
[-m]
EXEMPEL PÅ FILTER
lsfd har några flaggor för filtrering. I de flesta fall bör du känna till flaggan -Q (eller --filter). Kombinerat med -o (eller --output) kan du anpassa utdata som du vill.
Lista filer associerade med PID 1 och PID 2-processer:
# lsfd -Q '(PID == 1) eller (PID == 2)'
Gör samma sak på ett alternativt sätt:
# lsfd -Q '(PID == 1) || (PID == 2)'
Gör samma sak på ett mer effektivt sätt:
# lsfd --pid 1,2
Blanksteg kan användas i stället för kommatecken:
# lsfd --pid '1 2'
Använd pidof(1) för att lista de filer som är associerade med "firefox":
# lsfd --pid "$(pidof firefox)"
Lista den 1:a filbeskrivaren som öppnades av PID 1-processen:
# lsfd -Q '(PID == 1) och (FD == 1)'
Gör samma sak på ett alternativt sätt:
# lsfd -Q '(PID == 1) && (FD == 1)'
Lista alla körbara program som körs:
# lsfd -Q 'ASSOC == "exe"'
Gör samma sak på ett alternativt sätt:
# lsfd -Q 'ASSOC är lika med "exe"'
Gör samma sak men skriv bara ut filnamn:
# lsfd -o NAME -Q 'ASSOC eq "exe"' | sort -u
Lista borttagna filer som är associerade med processer:
# lsfd -Q 'DELETED'
Lista icke-reguljära filer:
# lsfd -Q 'TYPE != "REG"'
Lista blockenheter:
# lsfd -Q 'DEVTYPE == "blk"'
Gör samma sak med kolumnen TYPE:
# lsfd -Q 'TYPE == "BLK"'
Lista filer som innehåller "dconf"-katalogen i sina namn:
# lsfd -Q 'NAME =~ ".\*/dconf/.*"''
Lista filer som öppnats i en virtuell QEMU-maskin:
# lsfd -Q '(COMMAND =~ ".\*qemu.*") och (FD >= 0)'
Lista timerfd-filer som förföll inom 0,5 sekunder:
# lsfd -Q '(TIMERFD.remaining < 0,5) och (TIMERFD.remaining > 0,0)'
Lista processer som kommunicerar via unix stream-sockets:
# lsfd -Q 'TYPE == "UNIX-STREAM" && UNIX.PATH =~ ".+"' -oUNIX.PATH,PID,COMMAND,FD,SOCK.STATE,ENDPOINTS
Listar processer som kommunicerar via en angiven unix stream-socket:
# lsfd -Q 'TYPE == "UNIX-STREAM" && UNIX.PATH == "@/tmp/.X11-unix/X0"' -oUNIX.PATH,PID,COMMAND,FD,SOCK.STATE,ENDPOINTS
RÄKNEEXEMPEL
Rapportera antalet netlink-uttagsdeskriptorer och unix-uttagsdeskriptorer:
# lsfd --summary=only \
-C 'netlink sockets':'(NAME =~ "NETLINK:.*")' \
-C 'unix sockets':'(NAME =~ "UNIX:.*")'
VÄRDE RÄKNING
57 netlink-uttag
1552 unix-uttag
Gör samma sak men skriv ut i JSON-format:
# lsfd --summary=only --json \
-C 'netlink sockets':'(NAME =~ "NETLINK:.*")' \
-C 'unix sockets':'(NAME =~ "UNIX:.*")'
{
"lsfd-summary": [
{
"värde": 15,
"räknare": "netlink sockets"
},{
"värde": 798,
"räknare": "unix sockets"
}
]
}
HISTORIK
Kommandot lsfd är en del av paketet util-linux sedan v2.38.
UPPHOVSPERSONER
Masatake YAMATO <yamato@redhat.com>, Karel Zak <kzak@redhat.com>
SE ÄVEN
bpftool(8), bps(8), lslocks(8), lsof(8), pidof(1), proc(5), scols-filter(5), socket(2), ss(8), stat(2), vsock(7)
FELRAPPORTERING
För felrapporter, använd felhanteraren https://github.com/util-linux/util-linux/issues.
TILLGÄNGLIGHET
Kommandot lsfd ingår i paketet util-linux som kan hämtas från Linux Kernel Archive https://www.kernel.org/pub/linux/utils/util-linux/.
| 2026-05-18 | util-linux 2.42.1 |