7 примеров команды lsof в linux

Утилиты для получения помощи и информации

Источники получения помощи в UNIX системах. Ниже text обозначает что вы вводите — обычно команду или имя файла.

  • whatis text — показывает описания справочных страниц. В начале каждой справочной страницы есть её краткое описание. whatis осуществляет поиск в названиях справочных страниц и отображает описания всех страниц, подходящих под название. В названии могут содержаться шаблоны (-w) или это может быть регулярное выражение (-r). При использовании этих параметров, может потребоваться указывать название в кавычках или экранировать () специальные символы для того, чтобы оболочка командной строки не обрабатывала их. При поиске используются индексные базы данных, которые обновляются с помощью программы mandb. Для обновления баз в зависимости от установки, её можно периодически запускать из задания cron или вручную после установки новых справочных страниц. Примеры использования:# whatis toptop (1) — display Linux tasks# Вывести информацию для всех бинарных файлов текущего каталога# whatis *bin: ничего подходящего не найдено.boot (7) — General description of boot sequenceetc: ничего подходящего не найдено.initrd.img: ничего подходящего не найдено.proc (5) — process information pseudo-file system
  • apropos text — поиск в именах справочных страниц и кратких описаниях, выводит всё, что содержит строку text в базе whatis. Внутри каждой справочной страницы есть краткое описание о чём эта страница. apropos выполняет поиск ключевого слова в этом описании. Ключевое слово может представлять собой регулярное выражение (-r), шаблон (-w) или точное искомое ключевое слово (-e). При использовании этих параметров может потребоваться указывать ключевое слово в кавычках или экранировать () специальные символы для того, чтобы избежать их интерпретации оболочкой командной строки. Например:# apropos парольexpiry (1) — проверяет и изменяет пароль согласно срокам действияpasswd (1) — изменяет пароль пользователя
  • man text — это навигатор справочных страниц ОС. Каждый параметр страница, переданный man, обычно является названием программы, утилиты или функции. По каждому из этих параметров выполняется поиск и вывод связанной с ним справочной страницы. Если указан параметр раздел, то это заставляет man выполнять поиск только в этом справочном разделе. Действием по умолчанию является поиск во всех доступных разделах в заранее определённом порядке и показ только первой найденной страницы, даже если существуют страницы в нескольких разделах. Для выяснения всех возможностей выполните:# man man
  • which text — выводит пусть к бинарному файлу. Например:# which htop/usr/bin/htop
  • whereis text — ищет файл с названием text в бинарных, исходных и man -файлах и выдаёт полный путь.# whereis htophtop: /usr/bin/htop /usr/share/man/man1/htop.1.gz
  • locate text — выводит пути ко всем файлам, в названии которых содержится строка text.

Список всех сетевых подключений

Следующая команда с опцией ‘-i‘ показывает список всех сетевых соединений ‘LISTENING & ESTABLISHED’.

# lsof -i

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMErpcbind 1203 rpc 6u IPv4 11326 0t0 UDP *:sunrpcrpcbind 1203 rpc 7u IPv4 11330 0t0 UDP *:954rpcbind 1203 rpc 11u IPv6 11336 0t0 TCP *:sunrpc (LISTEN)avahi-dae 1241 avahi 13u IPv4 11579 0t0 UDP *:mdnsavahi-dae 1241 avahi 14u IPv4 11580 0t0 UDP *:58600rpc.statd 1277 rpcuser 11u IPv6 11862 0t0 TCP *:56428 (LISTEN)cupsd 1346 root 6u IPv6 12112 0t0 TCP localhost:ipp (LISTEN)cupsd 1346 root 7u IPv4 12113 0t0 TCP localhost:ipp (LISTEN)sshd 1471 root 3u IPv4 12683 0t0 TCP *:ssh (LISTEN)master 1551 root 12u IPv4 12896 0t0 TCP localhost:smtp (LISTEN)master 1551 root 13u IPv6 12898 0t0 TCP localhost:smtp (LISTEN)sshd 1834 root 3r IPv4 15101 0t0 TCP 192.168.0.2:ssh->192.168.0.1:conclave-cpp (ESTABLISHED)httpd 1918 root 5u IPv6 15991 0t0 TCP *:http (LISTEN)httpd 1918 root 7u IPv6 15995 0t0 TCP *:https (LISTEN)clock-app 2362 narad 21u IPv4 22591 0t0 TCP 192.168.0.2:45284->www.gov.com:http (CLOSE_WAIT)chrome 2377 narad 61u IPv4 25862 0t0 TCP 192.168.0.2:33358->maa03s04-in-f3.1e100.net:http (ESTABLISHED)chrome 2377 narad 80u IPv4 25866 0t0 TCP 192.168.0.2:36405->bom03s01-in-f15.1e100.net:http (ESTABLISHED)

Environment variables.

«Art, like morality, consists in drawing the line somewhere» ~ Gilbert K. Chesterton

Related linux commands:

lsof FAQ — full documentation.

awk — Find and Replace text.

fuser — Identify/kill the process that is accessing a file.

kill — Stop a process from running.

mount — Mount a file system.

ps — Process status.

strace — Trace system calls and signals.

uname — Print system information.

access(2), crash(1), fattach(3C), ff(1), fstat(8),
gethostname(2), isprint(3), lstat(2), netstat(1), readlink(2)
Equivalent Windows command: psfile

Copyright 1999-2020 SS64.com
Some rights reserved

Значение столбцов lsof

Типов открытых файлов много, и далеко не все столбцы применимы к каждому из них. Поэтому если для каких-то файлов некоторые столбцы не заполнены данными, то это нормально.

  • COMMAND: Имя команды, связанной с процессом, который открыл файл.
  • PID: Идентификационный номер процесса, который открыл файл.
  • TID: Идентификационный номер задачи (потока) . Пустой столбец означает, что это не задача; это процесс.
  • TASKCMD: это имя команды задачи. Обычно это будет то же самое, что и процесс, названный в столбце COMMAND, но некоторые реализации задач (например, Linux) позволяют задаче изменить имя своей команды.
  • USER: это идентификационный номер пользователя или логин пользователя, которому принадлежит процесс, обычно то же самое, что сообщает ps. Однако в Linux USER — это идентификационный номер пользователя или логин, который владеет каталогом в /proc, где lsof находит информацию о процессе. Обычно это то же самое значение, которое сообщает ps, но может отличаться, если процесс изменил свой эффективный идентификатор пользователя (также смотрите Что такое файловая система /proc в Linux)
  • FD: показывает файловый дескриптор файла. Файловые дескрипторы описаны ниже.
  • TYPE: тип узла, связанного с файлом. Виды данных типов описаны ниже.
  • DEVICE: содержит номера устройств, разделённые запятыми, для специальных символьных, специальных блочных, обычных файлов, каталогов или NFS. Также может отображаться базовый адрес или имя устройства с сокетом Linux AX.25.
  • SIZE/OFF: Показывает размер файла или смещение файла в байтах.
  • NODE: Показывает номер узла локального файла или номер узла NFS-файла на хосте сервера или тип интернет-протокола. Может отображаться STR для потока, IRQ или номер инода устройства с сокетом Linux AX.25.
  • NAME: для обычных файлов показывает имя точки монтирования и файловой системы, в которой находится файл. Для других типов файлов здесь указываются специфичные для них данные, подробности будут даны ниже.

Как комбинировать условия поиска lsof (логические И и ИЛИ)

Давайте выведем файлы, которые были открыты пользователем mial и которые связаны с процессами systemd. Мы знаем, что можем предоставить более одного элемента поиска в командной строке, поэтому это должно быть легко.

sudo lsof -u mial -c systemd

Теперь давайте посмотрим на вывод lsof. Это не выглядит правильно; в выводе есть записи, которые были запущены пользователем root.

Это не то что мы ожидали. Что произошло?

Если вы предоставите несколько поисковых терминов, lsof вернёт любой файл, который соответствует первому поисковому запросу или второму поисковому запросу и так далее. Другими словами, она выполняет поиск ИЛИ.

Чтобы lsof выполняла поиск И, используйте опцию -a. Это означает, что будут перечислены только те файлы, которые соответствуют первому поисковому запросу, второму поисковому запросу и т. д.

Давайте попробуем это снова и используем опцию -a.

sudo lsof -u mial -c systemd -a

Теперь каждый файл в списке — это файл, который был открыт пользователем mial или от его имени и связан с systemd.

Обратите внимание, что два условия, одно из которых содержит отрицание (^) обрабатываются как логическое И:

sudo lsof +D /home -u ^mial

Но если требуется логическое И, то лучше взять за правило всегда использовать опцию -a, поскольку так команда становиться более однозначной:

sudo lsof +D /home -u ^mial -a

и в случае добавления третьего условия поиска она будет работать как ожидается:

sudo lsof -u mial +D /home/mial -c^chromium -a

Исключение пользователя с помощью символа ‘^’

Здесь мы исключили пользователя root. Вы можете исключить любого пользователя, используя команду ‘^‘ как показано выше.

# lsof -i -u^root

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

rpcbind 1203 rpc 6u IPv4 11326 0t0 UDP *:sunrpcrpcbind 1203 rpc 7u IPv4 11330 0t0 UDP *:954rpcbind 1203 rpc 8u IPv4 11331 0t0 TCP *:sunrpc (LISTEN)rpcbind 1203 rpc 9u IPv6 11333 0t0 UDP *:sunrpcrpcbind 1203 rpc 10u IPv6 11335 0t0 UDP *:954rpcbind 1203 rpc 11u IPv6 11336 0t0 TCP *:sunrpc (LISTEN)avahi-dae 1241 avahi 13u IPv4 11579 0t0 UDP *:mdnsavahi-dae 1241 avahi 14u IPv4 11580 0t0 UDP *:58600rpc.statd 1277 rpcuser 5r IPv4 11836 0t0 UDP *:soap-beeprpc.statd 1277 rpcuser 8u IPv4 11850 0t0 UDP *:55146rpc.statd 1277 rpcuser 9u IPv4 11854 0t0 TCP *:32981 (LISTEN)rpc.statd 1277 rpcuser 10u IPv6 11858 0t0 UDP *:55800rpc.statd 1277 rpcuser 11u IPv6 11862 0t0 TCP *:56428 (LISTEN)

8.5. Утилита iotop

Утилита работает аналогично утилите , но упорядочивает процессы в зависимости от интенсивности операций ввода-вывода, а не от нагрузки на центральный процессор.

По умолчанию утилита будет выводить информацию обо всех процессах. В данном примере используется параметр для вывода информации исключительно о тех процессах, которые осуществляют операции ввода-вывода.

# iotop -o

Total DISK READ: 8.63 M/s | Total DISK WRITE: 0.00 B/s TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND15000 be/4 root 2.43 M/s 0.00 B/s 0.00 % 14.60 % tar cjf /srv/di…25000 be/4 root 6.20 M/s 0.00 B/s 0.00 % 6.15 % tar czf /srv/di…24988 be/4 root 0.00 B/s 7.21 M/s 0.00 % 0.00 % gzip25003 be/4 root 0.00 B/s 1591.19 K/s 0.00 % 0.00 % gzip25004 be/4 root 0.00 B/s 193.51 K/s 0.00 % 0.00 % bzip2

Используйте параметр для задействования режима вывода данных утилиты в форме журнала (вместо стандартного интерактивного режима вывода данных).

# iotop -bod 10

Total DISK READ: 12.82 M/s | Total DISK WRITE: 5.69 M/s TID PRIO USER DISK READ DISK WRITE SWAPIN IO COMMAND25153 be/4 root 2.05 M/s 0.00 B/s 0.00 % 7.81 % tar cjf /srv/di…25152 be/4 root 10.77 M/s 0.00 B/s 0.00 % 2.94 % tar czf /srv/di…25144 be/4 root 408.54 B/s 0.00 B/s 0.00 % 0.05 % python /usr/sbi…12516 be/3 root 0.00 B/s 1491.33 K/s 0.00 % 0.04 % [jbd2/sdc1-8]12522 be/3 root 0.00 B/s 45.48 K/s 0.00 % 0.01 % [jbd2/sde1-8]25158 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % 25155 be/4 root 0.00 B/s 493.12 K/s 0.00 % 0.00 % bzip225156 be/4 root 0.00 B/s 2.81 M/s 0.00 % 0.00 % gzip25159 be/4 root 0.00 B/s 528.63 K/s 0.00 % 0.00 %

А это пример использования утилиты для отслеживания операций дискового ввода-вывода, осуществляемых в течение каждых десяти секунд от лица пользователя с именем (средствами единственного процесса, запущенного данным пользователем, но данное обстоятельство не принципиально и может не рассматриваться). Параметр позволяет накапливать статистические данные об операциях ввода-вывода.

# iotop -q -a -u vagrant -b -p 5216 -d 10 -n 10

Total DISK READ: 0.00 B/s | Total DISK WRITE: 0.00 B/s TID PRIO USER DISK READ DISK WRITE SWAPIN IO COMMAND5216 be/4 vagrant 0.00 B 0.00 B 0.00 % 0.00 % gzipTotal DISK READ: 818.22 B/s | Total DISK WRITE: 20.78 M/s5216 be/4 vagrant 0.00 B 213.89 M 0.00 % 0.00 % gzipTotal DISK READ: 2045.95 B/s | Total DISK WRITE: 23.16 M/s5216 be/4 vagrant 0.00 B 430.70 M 0.00 % 0.00 % gzipTotal DISK READ: 1227.50 B/s | Total DISK WRITE: 22.37 M/s5216 be/4 vagrant 0.00 B 642.02 M 0.00 % 0.00 % gzipTotal DISK READ: 818.35 B/s | Total DISK WRITE: 16.44 M/s5216 be/4 vagrant 0.00 B 834.09 M 0.00 % 0.00 % gzipTotal DISK READ: 6.95 M/s | Total DISK WRITE: 8.74 M/s5216 be/4 vagrant 0.00 B 920.69 M 0.00 % 0.00 % gzipTotal DISK READ: 21.71 M/s | Total DISK WRITE: 11.99 M/s

Для чего служит команда lsof

Относительно lsof справка man как раз сообщает, что lsof есть сокращение от LiSt of Open Files, и что утилита эта служит для вывода информации о том, какие файлы используются теми или иными процессами. Причем утилита эта имеется в очень многих версиях и диалектах UNIX, включая Linux версии 2.1.72 и выше, а также в HP-UX, AIX, NextStep, Apple Darwin для Power Macintosh, SCO UnixWare, Solaris, FreeBSD, NetBDS, OpenBSD и так далее.

Создателем программа lsof является Victor A. Abell, его домашняя страничка расположена по адресу, где вы можете найти исходные коды программы. Их можно также скачать с FTP-сайта ftp://vic.cc.purdue.edu/pub/tools/unix/lsof.

О том, как скомпилировать и установить программу, вы можете прочитать в статье.

Если запустить эту утилиту без параметров, выдается информация о всех работающих процессах и открытых ими файлах. Даже в моей системе с одним пользователем эта команда выдала 2344 строки текста. Попробуй проанализируй эту массу информации! Но давайте взглянем хотя бы на несколько строк ее вывода, чтобы на этом примере понять, какую же информацию она выдает.

Кстати, если вы будете экспериментировать, имейте в виду, что будучи запущенной простым пользователем, эта команда выдает информацию только о процессах, запущенных этим пользователем. Поэтому во многих случаях вы можете не получить от нее никакого ответа. Если вы хотите получить вразумительный ответ на любой свой запрос, ее необходимо запускать от имени root-а (можно воспользоваться следующей формой запуска sudo lsof). Кроме того, команда отрабатывает достаточно медленно, так что будьте терпеливы и не щелкайте раньше времени <Ctrl>+<C> — программа не
зависла, просто идет поиск информации.

А теперь смотрим листинг 1 (или результат работы программы на вашем экране).

Листинг 1.
Вывод команды lsof.

COMMAND PID USER FD TYPE DEVICE SIZE NODE NAMEinit 1 root cwd DIR 3,3 4096 2 /init 1 root txt REG 3,3 27036 161176 /sbin/initinit 1 root mem REG 3,3 103044 160493 /lib/ld-2.3.2.soinit 1 root 10u FIFO 3,3 71954 /dev/initctlportmap 1528 rpc 3u IPv4 1656 UDP *:sunrpc xinetd 1649 root 0r CHR 1,3 65970 /dev/nullrpc.mount 1682 root 5u unix 0xc34cea80 10311 socketnmbd 1790 root 6u IPv4 2456 UDP *:netbios-ns sh 23252 kos 4u CHR 5,0 70758 /dev/ttysh 23252 kos 6u CHR 136,3 5 /dev/pts/3sh 23252 kos 8w FIFO 0,5 840800 pipesh 23253 kos cwd DIR 3,3 4096 160487 /usr/share/mansh 23253 kos rtd DIR 3,3 4096 2 /sh 23253 kos txt REG 3,3 626028 160664 /bin/bash

Как видите, один и тот же процесс открывает много файлов, каждому из
которых соответствует строка в выводе lsof
. В начале строки указывается имя процесса, его идентификатор, имя
пользователя, запустившего процесс. В столбце FD стоит номер
файлового дескриптора или одна из следующих буквенных комбинаций (я
не берусь корректно перевести на русский язык некоторых из
расшифровок этих сокращений, так что привожу их в том виде, как они
выдаются справочной системой):

  • cwd — текущий рабочий каталог;
  • ltx — текст разделяемой библиотеки;
  • mxx — hex memory-mapped type number xx.
  • m86 — DOS Merge mapped file;
  • mem — файл, загруженный в память (memory-mapped file), чаще всего – библиотека,
  • mmap — memory-mapped device;
  • pd — родительский каталог;
  • rtd — корневой каталог;
  • txt – текст программы (код и данные);
  • v86 — VP/ix mapped file.

Номер файлового дескриптора сопровождается символом, указывающим режим, в
котором файл был открыт:

  • r
    — файл открыт для чтения;
  • w
    – файл открыт для записи;
  • u
    — файл открыт для чтения и для записи;
  • пробел
    – режим доступа неизвестен и файл не блокирован;
  • ‘-’
    — режим доступа неизвестен, но на файл установлена блокировка.

В
последнем случае за дефисом следует еще один символ, определяющий тип
блокировки (подробнее смотри man
lsof).

В
следующем столбце указан тип файла. Чаще других встречаются файлы
одного из следующих типов: REG — обычный файл, DIR — каталог, BLK —
файл блочного устройства, CHR — файл символьного устройства, LINK —
файл символической ссылки, INET – Internet-сокет, UNIX –
доменный сокет UNIX. Но на справочной странице список типов гораздо
обширнее.

Вслед за типом указывается
устройство, на котором расположен файл, размер файла, номер
индексного дескриптора и имя файла.

Опции команды

Поскольку просматривать
вывод команды lsof, запущенной без параметров, достаточно неудобно, можно сократить объем выдаваемых данных, конкретизировав ваш запрос, что достигается за счет использования опций. Опций у этой утилиты довольно много и большинство из них действует по принципу ограничения вывода. Если вы указываете, например, опцию -U, то будут выведены только данные о сокетах UNIX, а все другие файлы игнорируются. Если указать две или более опций, то их действие определяется правилом ИЛИ, то есть выводится информация, определяемая каждой из опций.

Например, команда:

/usr/sbin/lsof
-U -u kos

выдаст данные о всех открытых UNIX-сокетах и всех файлах, принадлежащих
процессам, запущенным пользователем “kos”.

Если же необходимо скомбинировать действие опций по принципу логического
И, то это делается путем специальной опции -a.

Например, команда

/usr/sbin/lsof
-a -U -u kos

выдаст список только сокетов UNIX, принадлежащих процессам, владельцем
которых является пользователь “kos”’

Обратите внимание на то, что опция -a стоит не между объединяемыми ею другими опциями.

Впрочем, ее можно ставить где угодно, все равно все перечисленные в
командной строке опции будут работать по принципу “логическое И”

Но если указывается, например, несколько однотипных опций, то вначале к ним
применяется операция логического ИЛИ, а затем уже работает опция -a.

Пример: по команде

/usr/sbin/lsof
-i@aaa.bbb -i@ccc.ddd -a -ufff,ggg

будет выведен список файлов, принадлежащих ЛИБО пользователю “fff”, ЛИБО пользователю “ggg” И имеющих сетевые соединения ЛИБО к хосту aaa.bbb ЛИБО к хосту ccc.ddd.

Опции команды lsof можно записывать одну за другой без пробелов, предваряя это список всего одним дефисом, то есть вместо

/usr/sbin/lsof -a -b -C

можно указать просто

/usr/sbin/lsof -abC

Однако при этом надо побеспокоиться о том, чтобы не было неоднозначности в
интерпретации опций. Но я не буду детально рассматривать возможные
причины неоднозначности, если у вас возникает желание использовать
эту возможность, смотрите соответствующую man-страницу.

Отмечу только, что существует ряд опций, которые позволяют
изменить вывод программы lsof. Например, опция -R заставляет lsof
дополнительно выводить данные об идентификаторе родительского
процесса. Очень интересной может оказаться опция -F. Запущенная с
этой опцией утилита lsof выдает информацию не в виде таблицы, а в
виде последовательности отдельных строк. В таком случае вывод можно
перенаправить на вход другой программы, которая будет каким-либо
образом обрабатывать полученную информацию. После опции -F можно
указать, какие именно поля будут присутствовать в выводе. Например,
если командная строка имела вид

$ /usr/sbin/lsof -F pcfn

в выводе lsof будет присутствовать идентификатор процесса (p), имя команды (c), файловый дескриптор (f) и имя файла.

8.1. Утилита lsof

С помощью утилиты вы можете получить список открытых файлов.

При использовании утилиты без параметров будет выводиться список, содержащий все открытые файлы. В данном списке вы можете обнаружить строку команды (в данном случае это команда init), идентификатор созданного процесса в столбце PID (1), а также имя пользователя (root), с привилегиями которого была открыта корневая директория и файл . Данные из столбца FD (содержащего информацию о дескрипторе файла) говорят о том, что директория / являлась как корневой директорией (rtd), так и текущей рабочей директорией (cwd) при исполнении команды /sbin/init. В столбце FD может содержаться строка , указывающая на то, что директория является корневой директорией, строка , указывающая на то, что директория является текущей рабочей директорией и строка , указывающая не то, что открыт файл (включая файлы с данными и кодом).

root@debian7:~# lsof | head -4

COMMAND PID TID USER FD TYPE DEVICE SIZE/OFF NODE NAME

init 1 root cwd DIR 254,0 4096 2 /init 1 root rtd DIR 254,0 4096 2 /init 1 root txt REG 254,0 36992 130856 /sbin/init

В остальных случаях в столбце FD приводятся числовые значения дескрипторов с символами, соответствующими режимам открытия файлов, причем символ w соответствует режиму записи данных, r — режиму чтения данных, а u — режиму чтения и записи данных. Вы можете вывести список файлов, открытых в рамках процесса с определенным идентификатором PID, воспользовавшись командой . Для процесса данная команда будет выглядеть следующим образом:

lsof -p 1

В приведенном ниже примере показана простая методика использования утилиты для доказательства того, что текстовый редактор хранит файл с расширением в открытом состоянии (даже в том случае, если исполнение соответствующего процесса приостанавливается в фоновом режиме) при работе с нашей недавно смонтированной файловой системой.

# df -h | grep sdb/dev/sdb1

541M 17M 497M 4% /srv/project33# vi /srv/project33/busyfile.txt+ Stopped vi /srv/project33/busyfile.txt# lsof /srv/*COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEvi 3243 root 3u REG 8,17 4096 12 /srv/project33/.busyfile.txt.swp

А здесь мы видим, что демон открывает несколько файлов журналов для записи (как указано в строке FD).

root@debian7:~# lsof /var/log/*

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

rsyslogd 2013 root 1w REG 254,0 454297 1308187 /var/log/syslog

rsyslogd 2013 root 2w REG 254,0 419328 1308189 /var/log/kern.log

rsyslogd 2013 root 5w REG 254,0 116725 1308200 /var/log/debug

rsyslogd 2013 root 6w REG 254,0 309847 1308201 /var/log/messages

rsyslogd 2013 root 7w REG 254,0 17591 1308188 /var/log/daemon.log

rsyslogd 2013 root 8w REG 254,0 101768 1308186 /var/log/auth.log

Вы можете указать имя интересующего вас пользователя в рамках команды . В данном примере выводится информация о текущих рабочих директориях нескольких программ с интерфейсом командной строки, запущенных от лица пользователя paul.

$ lsof -u paul | grep homebash 3302 paul cwd DIR 253,0 4096 788024 /home/paullsof 3329 paul cwd DIR 253,0 4096 788024 /home/paulgrep 3330 paul cwd DIR 253,0 4096 788024 /home/paullsof 3331 paul cwd DIR 253,0 4096 788024 /home/paul

Совместно с параметром -u утилиты также может быть использовать символ ^, соответствующий логической операции ‘не’. Исходя из этого, команда для получения информации обо всех открытых файлах, за исключением тех файлов, которые открыты пользователем root, будет выглядеть следующим образом:

lsof -u^root

Друзья помогите этому контенту стать доступнее в социальных сетях.

Не проходи мимо жмакни по кнопке возможно кому то еще он будет полезен!