LSFD(1) دستورهای کاربری LSFD(1)

lsfd - فهرست کردن توصیف‌کننده‌های فایل باز پردازه‌ها

lsfd [گزینه]

lsfd به عنوان یک جایگزین مدرن برای lsof(8) در سیستم‌های لینوکس در نظر گرفته شده است. برخلاف lsof، lsfd مختص هسته لینوکس است؛ این دستور با کدی ساده‌تر از قابلیت‌های اختصاصی لینوکس مانند فضاهای نام (namespaces) پشتیبانی می‌کند. lsfd یک جایگزین بی‌درنگ و مستقیم (drop-in) برای lsof نیست؛ آن‌ها در رابط خط فرمان و قالب‌های خروجی متفاوت هستند.

خروجی پیش‌فرض ممکن است تغییر کند. بنابراین هر زمان که ممکن است، باید از استفاده از خروجی‌های پیش‌فرض در اسکریپت‌های خود خودداری کنید. همیشه در محیط‌هایی که خروجی پایدار مورد نیاز است، با استفاده از --output columns-list ستون‌های مورد انتظار را به‌طور صریح مشخص کنید.

lsfd از Libsmartcols برای قالب‌بندی و پالایش خروجی استفاده می‌کند. برای سفارشی‌سازی قالب خروجی، توضیحات گزینه --output و برای پالایش، گزینه --filter را ببینید. از lsfd --list-columns برای دریافت فهرستی از تمام ستون‌های موجود استفاده کنید.

-l, --threads

فهرست‌بندی در سطح ریسه‌ها (threads).

-J, --json

استفاده از قالب خروجی JSON.

-n, --noheadings

عدم چاپ سرآیندها (headings).

-o, --output list

مشخص کردن این‌که کدام ستون‌های خروجی چاپ شوند. برای جزئیات ستون‌های موجود به بخش ستون‌های خروجی (OUTPUT COLUMNS) مراجعه کنید.

فهرست پیش‌فرض ستون‌ها در صورتی که list در قالب +list مشخص شود، قابل گسترش است (به عنوان مثال، lsfd -o +DELETED).

-r, --raw

استفاده از قالب خروجی خام (raw).

--notruncate

عدم کوتاه کردن متن در ستون‌ها.

-p, --pid list

جمع‌آوری اطلاعات فقط برای پردازه‌های مشخص‌شده. list فهرستی از شناسه‌های پردازه (PID) جداشده با کاما است. همچنین بخش مثال‌های پالایش (FILTER EXAMPLES) را ببینید.

-i[4|6], --inet[=4|=6]

فهرست کردن فقط سوکت‌های IPv4 و/یا سوکت‌های IPv6.

-Q, --filter expression

چاپ فقط فایل‌هایی که با شرط ارائه‌شده توسط expression مطابقت دارند. همچنین scols-filter(5) و مثال‌های پالایش (FILTER EXAMPLES) را ببینید.

گزینه -Q همراه با یک PID (برای مثال: -Q PID==1) و گزینه -p (برای مثال: -p 1) می‌توانند برای رسیدن به همان نتیجه استفاده شوند، اما استفاده از گزینه -p بسیار کارآمدتر است زیرا در مرحله بسیار اولیه‌تری از پردازش نسبت به گزینه -Q عمل می‌کند.

-C, --counter label:filter_expr

تعریف یک شمارنده سفارشی مورد استفاده در خروجی --summary. lsfd یک شمارنده به نام label ایجاد می‌کند. در طول جمع‌آوری اطلاعات، lsfd فایل‌های مطابق با filter_expr را می‌شمارد و تعداد شمارش‌شده را در شمارنده‌ای به نام label ذخیره می‌کند. lsfd فیلترهای تعریف‌شده با گزینه‌های --filter را قبل از شمارش اعمال می‌کند؛ فایل‌های حذف‌شده توسط فیلترها شمرده نمی‌شوند.

درباره filter_expr به scols-filter(5) مراجعه کنید. label نباید شامل { یا : باشد. می‌توانید با مشخص کردن چندباره این گزینه، چندین شمارنده تعریف کنید. همچنین بخش مثال‌های شمارنده (COUNTER EXAMPLES) را ببینید.

--summary[=mode]

این گزینه خروجی خطوط خلاصه را کنترل می‌کند. آرگومان اختیاری mode می‌تواند only، append یا never باشد. اگر آرگومان mode حذف شود، مقدار پیش‌فرض آن only است.

خلاصه، شمارنده‌ها را گزارش می‌دهد. یک شمارنده از یک برچسب و یک مقدار عددی صحیح تشکیل شده است. --counter گزینه‌ای برای تعریف یک شمارنده است. اگر کاربر هیچ شمارنده‌ای تعریف نکند، lsfd از تعاریف شمارنده‌های داخلی از پیش تعریف‌شده (شمارنده‌های پیش‌فرض) برای ایجاد خروجی خلاصه استفاده می‌کند.

هشدار: استفاده هم‌زمان از --summary و --json ممکن است خروجی را نامعتبر کند. تنها ترکیب --summary=only و --json معتبر است.

--debug-filter

تخلیه ساختار داده داخلی برای فیلتر و خروج. این فقط برای توسعه‌دهندگان lsfd مفید است.

--dump-counters

تخلیه تعریف شمارنده‌های استفاده‌شده در خروجی --summary.

--hyperlink[=when]

چاپ مسیرها به صورت پیوندهای درون‌ترمینالی (hyperlinks). آرگومان اختیاری when می‌تواند always، never یا auto باشد. اگر آرگومان حذف شود، مقدار پیش‌فرض آن auto است، به این معنی که پیوندها فقط زمانی که خروجی به ترمینال هدایت شود استفاده خواهند شد.

-H, --list-columns

فهرست کردن ستون‌هایی که می‌توان با گزینه --output مشخص کرد. می‌تواند با --json یا --raw برای دریافت فهرست در قالبی خوانا برای ماشین استفاده شود.

-h, --help

نمایش متن راهنما و خروج.

-V, --version

نمایش نسخه و خروج.

LIBSMARTCOLS_DEBUG=all

خروجی اشکال‌زدایی libsmartcols را فعال می‌کند.

LIBSMARTCOLS_DEBUG_PADDING=on

استفاده از نویسه‌های فاصله‌گذاری مرئی (visible padding).

LIBSMARTCOLS_JSON=compact|lines

قالب خروجی JSON را هنگام استفاده از --json کنترل می‌کند. مقادیر پشتیبانی‌شده عبارتند از compact برای خروجی JSON با حداقل فاصله خالی، و lines برای قالب JSON Lines (یک شیء JSON در هر خط). اگر مقداردهی نشده باشد یا روی هر مقدار دیگری تنظیم شده باشد، از JSON با فرمت‌بندی خوانا (pretty-printed) استفاده می‌شود.

هر ستون یک نوع دارد. نوع‌ها بین < و > قرار گرفته‌اند.

هشدار: نام‌ها و نوع‌های ستون‌ها هنوز پایدار نیستند. آن‌ها ممکن است در نسخه‌های آینده تغییر کنند.

AINODECLASS <string>

کلاس گره آی‌نود بی‌نام (anonymous inode).

ASSOC <string>

ارتباط و وابستگی بین فایل و پردازه.

BLKDRV <string>

نام گرداننده (driver) دستگاه بلوکی که توسط /proc/devices تعیین شده است.

BPF-MAP.ID <number>

شناسه (ID) نگاشت bpf.

BPF-MAP.TYPE <string>

نام رمزگشایی‌شده نوع نگاشت bpf.

BPF-MAP.TYPE.RAW <number>

نوع نگاشت bpf (خام).

BPF.NAME <string>

نام شیء bpf.

BPF-PROG.ID <number>

شناسه (ID) برنامه bpf.

BPF-PROG.TAG <string>

برچسب (TAG) برنامه bpf.

BPF-PROG.TYPE <string>

نام رمزگشایی‌شده نوع برنامه bpf.

BPF-PROG.TYPE.RAW <number>

نوع برنامه bpf (خام).

CHRDRV <string>

نام گرداننده (driver) دستگاه نویسه‌ای که توسط /proc/devices تعیین شده است.

COMMAND <string>

دستور پردازه‌ای که فایل را باز کرده است.

DELETED <boolean>

دسترس‌پذیری از سیستم فایل.

DEV <string>

شناسه (ID) دستگاه حاوی فایل.

DEVTYPE <string>

نوع دستگاه (blk، char یا nodev).

ENDPOINTS <string>

اطلاعات نقاط پایانی (endpoints) ارتباط بین‌فرآیندی (IPC) مبادله‌شده با این توصیف‌کننده فایل (fd).

دستور lsfd نقاط پایانی را در میان پردازه‌هایی که پیمایش می‌کند جمع‌آوری می‌کند؛ اگر پردازه‌ها را با گزینه -p محدود کنید، lsfd ممکن است برخی از نقاط پایانی را نادیده بگیرد.

قالب این ستون بستگی به شیء مرتبط با توصیف‌کننده فایل (fd) دارد:

نوع FIFO، نوع mqueue، منابع ptmx و pts

PID,COMMAND,ASSOC[-r][-w]

نویسه‌های پایانی ([-r][-w]) نشان‌دهنده حالت خواندن و/یا نوشتن نقطه پایانی هستند.

نوع eventfd

PID,COMMAND,ASSOC

UNIX

مشابه UNIX-STREAM.

در یک کانتینر، ممکن است lsfd نتواند ستون ENDPOINTS را پر کند. lsfd از sock_diag(7) برای جمع‌آوری اطلاعات درباره نقاط پایانی UNIX استفاده می‌کند. SELinux ممکن است استفاده از sock_diag را در کانتینر محدود کند. می‌توانید این محدودیت را با تنظیم مقدار ۱ برای متغیر منطقی virt_sandbox_use_netlink برطرف کنید. برای جزئیات بیشتر به container_selinux(8) مراجعه کنید.

UNIX-STREAM

PID,COMMAND,ASSOC[-r?][-w?]

درباره نویسه‌های پایانی ([-r?][-w?])، به توضیحات SOCK.SHUTDOWN مراجعه کنید.

EVENTFD.ID <number>

شناسه Eventfd.

EVENTPOLL.TFDS <string>

توصیف‌کننده‌های فایل هدف قرار گرفته توسط فایل eventpoll.

FD <number>

توصیف‌کننده فایل (File descriptor) برای فایل.

FLAGS <string>

پرچم‌های مشخص‌شده هنگام باز کردن فایل.

FUID <number>

شماره شناسه کاربری (UID) مالک فایل.

INET.LADDR <string>

نشانی IP محلی.

INET.RADDR <string>

نشانی IP دوردست (remote).

INET6.LADDR <string>

نشانی IPv6 محلی.

INET6.RADDR <string>

نشانی IPv6 دوردست.

INODE <number>

شماره آی‌نود (Inode).

INOTIFY.INODES <string>

نسخه پردازش‌شده و خوانای INOTIFY.INODES.RAW. قالب عنصر به صورت inode-number,source-of-inode است.

INOTIFY.INODES.RAW <string>

فهرست آی‌نودهای تحت نظارت. قالب عنصر به صورت inode-number,device-major:device-minor است.

KNAME <string>

نام خام فایل استخراج‌شده از /proc/pid/fd/fd یا /proc/pid/map_files/region.

KTHREAD <boolean>

این‌که آیا پردازه یک ریسه هسته (kernel thread) است یا خیر.

MAJ:MIN <string>

شناسه دستگاه برای فایل‌های ویژه، یا شناسه دستگاه حاوی فایل.

MAPLEN <number>

طول نگاشت فایل (بر حسب صفحه / page).

MISCDEV <string>

نام متفرقه دستگاه نویسه‌ای تعیین‌شده توسط /proc/misc.

MNTID <number>

شناسه سوارکردن (Mount ID).

MODE <string>

حالت دسترسی (rwx).

NAME <string>

نسخه پردازش‌شده KNAME. عمدتاً همانند KNAME است.

برخی فایل‌ها قالب‌ها و منابع اطلاعاتی ویژه‌ای دارند:

AF_VSOCK

state=SOCK.STATE type=SOCK.TYPE laddr=VSOCK.LADDR[ raddr=VSOCK.RADDR]

raddr برای سوکت‌های در حال گوش دادن (listening) نمایش داده نمی‌شود.

bpf-map

id=BPF-MAP.ID type=BPF-MAP.TYPE[ name=BPF.NAME]

bpf-prog

id=BPF-PROG.ID type=BPF-PROG.TYPE tag= BPF-PROG.TAG [ name=BPF.NAME]

eventpoll

tfds=EVENTPOLL.TFDS

eventfd

id=EVENTFD.ID

inotify

inodes=INOTIFY.INODES

misc:tun

iface=TUN.IFACE[ devnetns=TUN.DEVNETNS][ socknetns=SOCK.NETNS]

NETLINK

protocol=NETLINK.PROTOCOL[ lport=NETLINK.LPORT[ group=NETLINK.GROUPS]]

PACKET

type=SOCK.TYPE[ protocol=PACKET.PROTOCOL][ iface=PACKET.IFACE]

pidfd

pid=TARGET-PID comm=TARGET-COMMAND nspid=TARGET-NSPIDS

lsfd مقادیر TARGET-PID و TARGET-NSPIDS را از /proc/pid/fdinfo/fd استخراج می‌کند.

PING

state=SOCK.STATE[ id=PING.ID][ laddr=INET.LADDR [ raddr=INET.RADDR]]

PINGv6

state=SOCK.STATE[ id=PING.ID][ laddr=INET6.LADDR [ raddr=INET6.RADDR]]

ptmx

tty-index=PTMX.TTY-INDEX

lsfd مقدار PTMX.TTY-INDEX را از /proc/pid/fdinfo/fd استخراج می‌کند.

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]]]

signalfd

mask=SIGNALFD.MASK

TCP, TCPv6

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

timerfd

clockid=TIMERFD.CLOCKID[ remaining=TIMERFD.REMAINING [ interval=TIMERFD.INTERVAL]]

UDP, UDPv6

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

اگر UDP.RADDR برابر با 0.0.0.0 و UDP.RPORT برابر با 0 باشد، lsfd مقدار raddr= را پنهان می‌کند.

UDP-LITE, UDPLITEv6

state=SOCK.STATE[ laddr=UDPLITE.LADDR [ raddr=UDPLITE.RADDR]]

UNIX-STREAM

state=SOCK.STATE[ path=UNIX.PATH]

UNIX

state=SOCK.STATE[ path=UNIX.PATH] type=SOCK.TYPE

توجه داشته باشید که نشانگرهای (deleted) از این ستون حذف شده‌اند. برای آگاهی از قابلیت خواندن فایل از سیستم فایل، به KNAME، DELETED یا XMODE مراجعه کنید.

NETLINK.GROUPS <number>

گروه‌های چندپخشی (multicast) نت‌لینک (Netlink).

NETLINK.LPORT <number>

شناسه درگاه (پورت) محلی نت‌لینک.

NETLINK.PROTOCOL <string>

پروتکل نت‌لینک.

NLINK <number>

تعداد پیوندها (Link count).

NS.NAME <string>

نام (NS.TYPE:[INODE]) فضای نام مشخص‌شده با فایل.

NS.TYPE <string>

نوع فضای نام مشخص‌شده با فایل. نوع یکی از موارد mnt، cgroup، uts، ipc، user، pid، net، time یا unknown است.

OWNER <string>

مالک فایل.

PACKET.IFACE <string>

نام رابط شبکه مرتبط با سوکت بسته (packet socket).

PACKET.PROTOCOL <string>

نام پروتکل لایه ۲ (L2) مرتبط با سوکت بسته (رمزگشایی‌شده).

PACKET.PROTOCOL.RAW <number>

شماره پروتکل لایه ۲ (L2) مرتبط با سوکت بسته (خام).

PARTITION <string>

نام دستگاه بلوکی تعیین‌شده توسط /proc/partition.

PID <number>

شناسه پردازه (PID) بازکننده فایل.

PIDFD.COMM <string>

دستور پردازه هدف قرار گرفته توسط pidfd.

PIDFD.NSPID <string>

مقدار فیلد NSpid در /proc/pid/fdinfo/fd مربوط به pidfd.

نقل‌قول از kernel/fork.c در درخت کد منبع لینوکس:

اگر فضاهای نام pid پشتیبانی شوند، این تابع همچنین pid مربوط به pidfd مشخص‌شده را برای تمام فضاهای نام pid فرزند، با شروع از فضای نام pid فعلی نمونه چاپ می‌کند؛ یعنی فیلد Pid و اولین ورودی در فیلد NSpid یکسان خواهند بود.

توجه داشته باشید که این با فیلدهای Pid و NSpid در /proc/<pid>/status متفاوت است، جایی که Pid و NSpid همیشه نسبت به فضای نام pid نمونه procfs نمایش داده می‌شوند.

PIDFD.PID <number>

شناسه پردازه (PID) پردازه هدف قرار گرفته توسط pidfd.

PING.ID <`number`>

شناسه درخواست اکو ICMP استفاده‌شده در سوکت PING.

POS <number>

موقعیت فایل (File position).

RAW.PROTOCOL <string>

نام پروتکل سوکت خام (raw socket) (رمزگشایی‌شده).

نکته

نوع داده این ستون از نسخه v2.39 تا v2.41 برابر با <number> بود.

RAW.PROTOCOL.RAW <number>

شماره پروتکل سوکت خام (خام).

RDEV <string>

شناسه دستگاه (اگر فایل ویژه باشد).

SIGNALFD.MASK <string>

سیگنال‌های ماسک‌شده.

SIZE <number>

اندازه فایل.

SOCK.LISTENING <boolean>

سوکت در حال گوش دادن (Listening socket).

SOCK.NETS <number>

آی‌نود تعیین‌کننده فضای نام شبکه که سوکت به آن تعلق دارد.

SOCK.PROTONAME <string>

نام پروتکل.

SOCK.SHUTDOWN <string>

وضعیت خاموشی (shutdown) سوکت.

[-r?]

اگر نویسه اول r باشد، دریافت مجاز است. اگر - باشد، دریافت غیرمجاز است. اگر ? باشد، وضعیت نامشخص است.

[-w?]

اگر نویسه دوم w باشد، ارسال مجاز است. اگر - باشد، ارسال غیرمجاز است. اگر ? باشد، وضعیت نامشخص است.

SOCK.STATE <string>

وضعیت سوکت.

SOCK.TYPE <string>

نوع سوکت. در اینجا نوع به معنای پارامتر دوم فراخوان سیستمی socket است:
•stream
•dgram
•raw
•rdm
•seqpacket
•dccp
•packet

SOURCE <string>

سیستم فایل، پارتیشن یا دستگاه حاوی فایل. برای اتصالی که مقدار ERROR برای ستون TYPE دارد، lsfd این ستون را با syscall:_errno_ پر می‌کند.

STTYPE <string>

نوع‌های خام فایل برگشتی از stat(2): BLK، CHR، DIR، FIFO، LINK، REG، SOCK، یا UNKN.

TCP.LADDR <string>

نشانی لایه ۳ محلی (INET.LADDR یا INET6.LADDR) و درگاه (پورت) TCP محلی.

TCP.LPORT <number>

درگاه (پورت) TCP محلی.

TCP.RADDR <string>

نشانی لایه ۳ دوردست (INET.RADDR یا INET6.RADDR) و درگاه (پورت) TCP دوردست.

TCP.RPORT <number>

درگاه (پورت) TCP دوردست.

TID <number>

شناسه ریسه (Thread ID) مربوط به پردازه بازکننده فایل.

TIMERFD.CLOCKID <string>

شناسه ساعت (Clockid).

TIMERFD.INTERVAL <number>

بازه زمانی (Interval).

TIMERFD.REMAINING <number>

زمان باقی‌مانده.

PTMX.TTY-INDEX <number>

نمایه TTY طرف مقابل.

TUN.DEVNETNS <number>

آی‌نود تعیین‌کننده فضای نام شبکه که دستگاه به آن تعلق دارد.

TUN.IFACE <string>

رابط شبکه در پس دستگاه tun.

TYPE <string>

نسخه پردازش‌شده STTYPE. با استثنائاتی مشابه STTYPE است. برای SOCK، مقدار SOCK.PROTONAME را چاپ می‌کند. برای UNKN، اگر SOURCE برابر anon_inodefs باشد، مقدار AINODECLASS را چاپ می‌کند.

اگر lsfd هنگام فراخوانی یک فراخوان سیستمی برای کسب اطلاعات درباره یک توصیف‌کننده فایل هدف دچار خطا شود، این ستون را برای آن با ERROR پر می‌کند.

UDP.LADDR <string>

نشانی IP محلی و درگاه (پورت) UDP محلی.

UDP.LPORT <number>

درگاه (پورت) UDP محلی.

UDP.RADDR <string>

نشانی IP دوردست و درگاه (پورت) UDP دوردست.

UDP.RPORT <number>

درگاه (پورت) UDP دوردست.

UDPLITE.LADDR <string>

نشانی IP محلی و درگاه (پورت) UDPLite محلی.

UDPLITE.LPORT <number>

درگاه (پورت) UDP محلی.

UDPLITE.RADDR <string>

نشانی IP دوردست و درگاه (پورت) UDPLite دوردست.

UDPLITE.RPORT <number>

درگاه (پورت) UDP دوردست.

UID <number>

شماره شناسه کاربری (UID).

UNIX.IPEER < number >

شماره آی‌نود برای همتای سوکت دامنه UNIX.

اگر lsfd در یک کانتینر اجرا شود، ممکن است ستون UNIX.IPEER را پر نکند. برای جزئیات بیشتر به توضیحات UNIX در ستون ENDPOINTS مراجعه کنید.

UNIX.PATH <string>

نام مسیر سیستم فایل برای سوکت دامنه UNIX.

USER <string>

کاربر پردازه.

VSOCK.LADDR <string>, VSOCK.RADDR <string>

نشانی VSOCK محلی. قالب عنصر به صورت VSOCK.LCID:VSOCK.LPORT است.

شناسه‌های زمینه (CID) شناخته‌شده رمزگشایی می‌شوند: “*”، “hypervisor”، “local” یا “host”. درگاه‌های شناخته‌شده رمزگشایی می‌شوند: “*”.

VSOCK.LCID <number>, VSOCK.RCID <number>

شناسه‌های زمینه (context identifiers) محلی و دوردست VSOCK.

VSOCK.LPORT <number>, VSOCK.RPORT <number>

درگاه‌های محلی و دوردست VSOCK.

XMODE <string>

نسخه توسعه‌یافته MODE. این ستون ممکن است گسترش یابد؛ وقتی lsfd از وضعیت جدیدی از توصیف‌کننده‌های فایل و/یا نگاشت‌های حافظه پشتیبانی کند، ممکن است حروف جدیدی به XMODE اضافه شوند.

[-r]

بازشده یا نگاشت‌شده برای خواندن. این مورد در MODE نیز وجود دارد.

[-w]

بازشده یا نگاشت‌شده برای نوشتن. این مورد در MODE نیز وجود دارد.

[-x]

نگاشت‌شده برای اجرای کد. این مورد در MODE نیز وجود دارد.

[-D]

حذف‌شده از سیستم فایل. همچنین DELETED را ببینید.

[-Ll]

قفل‌شده یا اجاره‌شده (leased). نویسه l نشان‌دهنده یک قفل خواندن، قفل اشتراکی یا اجاره خواندن است. L نشان‌دهنده یک قفل نوشتن، قفل انحصاری یا اجاره نوشتن است. اگر هر دو قفل یا اجاره خواندن/اشتراکی و نوشتن/انحصاری توسط یک توصیف‌کننده فایل گرفته شده باشند، L به عنوان پرچم استفاده می‌شود.

[-m]

مالتی‌پلکس‌شده (چندگانه). اگر توصیف‌کننده فایل توسط یک فایل eventpoll یا فراخوان‌های سیستمی کلاسیک برای مالتی‌پلکسینگ (select(2)، pselect(2)، poll(2) و ppoll(2)) هدف قرار گیرد، این پرچم بیتی تنظیم می‌شود. توجه داشته باشید که اگر فراخوانی یکی از فراخوان‌های سیستمی کلاسیک قطع شود، lsfd ممکن است نتواند m را روی توصیف‌کننده‌های فایل نظارت‌شده توسط آن فراخوانی علامت‌گذاری کند. به restart_syscall(2) مراجعه کنید.

دستور lsfd گزینه‌های کمی برای پالایش دارد. در بیشتر موارد، آنچه باید بدانید گزینه -Q (یا --filter) است. در ترکیب با گزینه -o (یا --output)، می‌توانید خروجی را همان‌طور که می‌خواهید سفارشی کنید.

فهرست کردن فایل‌های مرتبط با پردازه‌های با PID 1 و PID 2:

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

انجام همان کار به روشی جایگزین:

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

انجام همان کار به روشی کارآمدتر:

# lsfd --pid 1,2

می‌توان به جای کاما از فاصله‌ها استفاده کرد:

# lsfd --pid '1 2'

استفاده از pidof(1) برای فهرست کردن فایل‌های مرتبط با "firefox":

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

فهرست کردن اولین توصیف‌کننده فایل بازشده توسط پردازه با PID 1:

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

انجام همان کار به روشی جایگزین:

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

فهرست کردن تمام فایل‌های اجرایی در حال اجرا:

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

انجام همان کار به روشی جایگزین:

# lsfd -Q 'ASSOC eq "exe"'

انجام همان کار اما چاپ فقط نام‌های فایل:

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

فهرست کردن فایل‌های حذف‌شده مرتبط با پردازه‌ها:

# lsfd -Q 'DELETED'

فهرست کردن فایل‌های غیرعادی (غیرمعمولی):

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

فهرست کردن دستگاه‌های بلوکی:

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

انجام همان کار با ستون TYPE:

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

فهرست کردن فایل‌هایی که شاخه "dconf" در نام آن‌ها وجود دارد:

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

فهرست کردن فایل‌های بازشده در یک ماشین مجازی QEMU:

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

فهرست کردن فایل‌های timerfd منقضی‌شده ظرف ۰٫۵ ثانیه:

# lsfd -Q '(TIMERFD.remaining < 0.5) and (TIMERFD.remaining > 0.0)'

فهرست کردن پردازه‌های در حال ارتباط از طریق سوکت‌های جریانی یونیکس:

# lsfd  -Q 'TYPE == "UNIX-STREAM" && UNIX.PATH =~ ".+"' -oUNIX.PATH,PID,COMMAND,FD,SOCK.STATE,ENDPOINTS

فهرست کردن پردازه‌های در حال ارتباط از طریق یک سوکت جریانی یونیکس مشخص:

# lsfd  -Q 'TYPE == "UNIX-STREAM" && UNIX.PATH == "@/tmp/.X11-unix/X0"' -oUNIX.PATH,PID,COMMAND,FD,SOCK.STATE,ENDPOINTS

گزارش تعداد توصیف‌کننده‌های سوکت netlink و توصیف‌کننده‌های سوکت unix:

# lsfd --summary=only \
        -C 'netlink sockets':'(NAME =~ "NETLINK:.*")' \
        -C 'unix sockets':'(NAME =~ "UNIX:.*")'
VALUE COUNTER
   57 netlink sockets
 1552 unix sockets

انجام همان کار اما چاپ در قالب JSON:

# 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"
      }
   ]
}

دستور lsfd از نسخه v2.38 بخشی از بسته util-linux است.

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

bpftool(8), bps(8), lslocks(8), lsof(8), pidof(1), proc(5), scols-filter(5), socket(2), ss(8), stat(2), vsock(7)

برای گزارش باگ‌ها، از ردیاب مشکلات https://github.com/util-linux/util-linux/issues.

دستور lsfd بخشی از بسته util-linux است که می‌تواند از بایگانی هسته لینوکس https://www.kernel.org/pub/linux/utils/util-linux. دریافت شود.

2026-09-02 util-linux 2.42.3