Утилита lsof
(от англ. List Open Files) — инструмент командной строки Linux, предназначенный для отображения информации о файлах, которые в данный момент используются процессами в ОС. Эта команда особенно полезна для системных администраторов, которым необходимо устранять неполадки, связанные с доступом к файлам и потреблением системных ресурсов.
В этой статье мы покажем Вам 10 примеров использования команды lsof
в Linux.
Содержание:
- Вывод на экран всех открытых файлов в ОС
- Отображение файлов, используемых конкретным пользователем
- Поиск процессов, которые прослушивают сетевые порты
- Вывод файлов, открытых процессами определенного пользователя, которые используют сетевые соединения
- Исключение файлов определенного пользователя
- Поиск процессов, работающих на определенном сетевом порту
- Просмотр процессов, работающих на сетевых портах определенного диапазона
- Поиск процессов, использующих сетевые соединения IPv4 и IPv6
- Вывод списка файлов, используемых определенным процессом
- Завершение всех процессов пользователя
- Выводы
Вывод на экран всех открытых файлов в ОС
Чтобы отобразить в терминале список всех используемых файлов в операционной системе, выполните команду lsof
без каких-либо опций и аргументов:
Утилита lsof
по умолчанию выводит следующую информацию о каждом файле:
COMMAND
— название процесса или команды, которая использует файл;PID
— идентификатор процесса;USER
— пользователь, которому принадлежит процесс;FD
— дескриптор файла (например,cwd
— текущий рабочий каталог,txt
— исполняемый код,mem
— отображенные в память файлов,rtd
— корневой каталог);TYPE
— тип файла или объекта файловой системы (например,REG
— обычный файл,DIR
— каталог, и другие);DEVICE
— мажорный и минорный номера устройства, на котором находится файл;SIZE/OFF
— размер файла или значение смещения в нем;NODE
— номер индексного дескриптора (inode
);NAME
— абсолютный путь к файлу.
Читайте также: Как узнать, кто использует файл с инструментом lsof.
Отображение файлов, используемых конкретным пользователем
Вы можете вывести на экран информацию о файлах, которые используются процессами конкретного пользователя. Для этого нужно выполнить команду lsof
с опцией -u
и именем пользователя в качестве аргумента. Например:
Поиск процессов, которые прослушивают сетевые порты
Также одной из важных особенностей lsof
является возможность определения процессов, прослушивающих какой-либо порт. Для этой задачи Вам нужно использовать команду вместе с опцией -i
:
Вывод файлов, открытых процессами определенного пользователя, которые используют сетевые соединения
Вы можете объединить опции -i
и -u
, чтобы вывести на экран информацию о файлах, открытых процессами конкретного пользователя, использующих сетевые соединения. Например:
Читайте также: 15 примеров команды ls в Linux.
Исключение файлов определенного пользователя
Можно исключить процессы определенного пользователя из вывода lsof
. Для этого напишите перед именем пользователя специальный символ ^
. Например:
Поиск процессов, работающих на определенном сетевом порту
Чтобы вывести на экран информацию о процессах, которые работают на определенном порту, выполните в терминале следующую команду:
Где:
<port-type>
— тип сетевого протокола, связанного с портом (TCP или UDP);<port-number>
— номер сетевого порта.
Например, узнаем, какие процессы прослушивают TCP-порты 22 и 80:
Вы можете не указывать тип порта. Тогда утилита lsof
выведет на экран процессы, использующие протоколы TCP и UDP.
Просмотр процессов, работающих на сетевых портах определенного диапазона
Вы можете вывести на экран список процессов, которые прослушивают сетевые порты из определенного диапазона. Для этого модифицируйте предыдущую команду следующим образом:
К примеру, давайте узнаем, какие процессы используют TCP-порты с 22 по 1024:
Читайте также: Какой процесс слушает порт в Linux.
Поиск процессов, использующих сетевые соединения IPv4 и IPv6
Команда lsof
поможет Вам узнать информацию о файлах, открытых процессами, использующими сетевые соединения IPv4. Для этого выполните следующую команду:
Чтобы вывести на экран процессы, которые обмениваются данными по сети IPv6, замените аргумент 4
на 6
:
Вывод списка файлов, используемых определенным процессом
Опция -p
команды lsof
позволяет Вам вывести на экран информацию о файлах, которые открыты конкретным процессом. Для примера узнаем, какие файлы использует процесс с идентификатором 1:
Читайте также: 17 примеров использования top в Linux.
Завершение всех процессов пользователя
Вы можете вывести на экран только идентификаторы процессов, запущенных конкретным пользователем. Для этого Вам нужно использовать команду lsof
с опциями -t
и -u
. Например:
Чтобы завершить все процессы пользователя, передайте в качестве аргумента для команды kill -9
предыдущую команду:
Выводы
Мы показали Вам 10 полезных примеров использования утилиты lsof
в операционной системе Linux. Они пригодятся любому начинающему системному администратору.
Спасибо за время, уделенное прочтению статьи!
Если возникли вопросы — задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.