10 примеров использования команды lsof в Linux

10 примеров использования команды lsof в Linux

Рубрики:

Linux, Утилиты Linux

Метки:

,

Утилита lsof (от англ. List Open Files) — инструмент командной строки Linux, предназначенный для отображения информации о файлах, которые в данный момент используются процессами в ОС. Эта команда особенно полезна для системных администраторов, которым необходимо устранять неполадки, связанные с доступом к файлам и потреблением системных ресурсов.

В этой статье мы покажем Вам 10 примеров использования команды lsof в Linux.

Содержание:

  1. Вывод на экран всех открытых файлов в ОС
  2. Отображение файлов, используемых конкретным пользователем
  3. Поиск процессов, которые прослушивают сетевые порты
  4. Вывод файлов, открытых процессами определенного пользователя, которые используют сетевые соединения
  5. Исключение файлов определенного пользователя
  6. Поиск процессов, работающих на определенном сетевом порту
  7. Просмотр процессов, работающих на сетевых портах определенного диапазона
  8. Поиск процессов, использующих сетевые соединения IPv4 и IPv6
  9. Вывод списка файлов, используемых определенным процессом
  10. Завершение всех процессов пользователя
  11. Выводы

Вывод на экран всех открытых файлов в ОС

Чтобы отобразить в терминале список всех используемых файлов в операционной системе, выполните команду lsof без каких-либо опций и аргументов:

 

lsof

Утилита lsof по умолчанию выводит следующую информацию о каждом файле:

  • COMMAND — название процесса или команды, которая использует файл;
  • PID — идентификатор процесса;
  • USER — пользователь, которому принадлежит процесс;
  • FD — дескриптор файла (например, cwd — текущий рабочий каталог, txt — исполняемый код, mem — отображенные в память файлов, rtd — корневой каталог);
  • TYPE — тип файла или объекта файловой системы (например, REG — обычный файл, DIR — каталог, и другие);
  • DEVICE — мажорный и минорный номера устройства, на котором находится файл;
  • SIZE/OFF — размер файла или значение смещения в нем;
  • NODE — номер индексного дескриптора (inode);
  • NAME — абсолютный путь к файлу.

Читайте также: Как узнать, кто использует файл с инструментом lsof.

Отображение файлов, используемых конкретным пользователем

Вы можете вывести на экран информацию о файлах, которые используются процессами конкретного пользователя. Для этого нужно выполнить команду lsof с опцией -u и именем пользователя в качестве аргумента. Например:

 

lsof user

Поиск процессов, которые прослушивают сетевые порты

Также одной из важных особенностей lsof является возможность определения процессовпрослушивающих какой-либо порт. Для этой задачи Вам нужно использовать команду вместе с опцией -i:

 

List all Network Connections

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

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

 

lsof users file and commands

Читайте также: 15 примеров команды ls в Linux.

Исключение файлов определенного пользователя

Можно исключить процессы определенного пользователя из вывода lsof. Для этого напишите перед именем пользователя специальный символ ^. Например:

 

lsof exclude user

Поиск процессов, работающих на определенном сетевом порту

Чтобы вывести на экран информацию о процессах, которые работают на определенном порту, выполните в терминале следующую команду:

 

Где:

  • <port-type> — тип сетевого протокола, связанного с портом (TCP или UDP);
  • <port-number> — номер сетевого порта.

Например, узнаем, какие процессы прослушивают TCP-порты 22 и 80:

 

lsof certain port

Вы можете не указывать тип порта. Тогда утилита lsof выведет на экран процессы, использующие протоколы TCP и UDP.

Просмотр процессов, работающих на сетевых портах определенного диапазона

Вы можете вывести на экран список процессов, которые прослушивают сетевые порты из определенного диапазона. Для этого модифицируйте предыдущую команду следующим образом:

 

К примеру, давайте узнаем, какие процессы используют TCP-порты с 22 по 1024:

 

lsof port range

Читайте также: Какой процесс слушает порт в Linux.

Поиск процессов, использующих сетевые соединения IPv4 и IPv6

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

 

lsof ipv4

Чтобы вывести на экран процессы, которые обмениваются данными по сети IPv6, замените аргумент 4 на 6:

 

lsof ipv6

Вывод списка файлов, используемых определенным процессом

Опция -p команды lsof позволяет Вам вывести на экран информацию о файлах, которые открыты конкретным процессом. Для примера узнаем, какие файлы использует процесс с идентификатором 1:

 

Search by PID

Читайте также: 17 примеров использования top в Linux.

Завершение всех процессов пользователя

Вы можете вывести на экран только идентификаторы процессов, запущенных конкретным пользователем. Для этого Вам нужно использовать команду lsof с опциями -t и -u. Например:

 

user all PIDs

Чтобы завершить все процессы пользователя, передайте в качестве аргумента для команды kill -9 предыдущую команду:

Выводы

Мы показали Вам 10 полезных примеров использования утилиты lsof в операционной системе Linux. Они пригодятся любому начинающему системному администратору.

Спасибо за время, уделенное прочтению статьи!

Если возникли вопросы — задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Ciscoкурсы по кибербезопасностиполный курс по кибербезопасностикурсы DevNet / DevOps (программируемые системы) от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!

Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
Что Вы получите?
  • Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
  • Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проведем вечерние онлайн-лекции на нашей платформе.
  • Согласуем с вами удобное время для практик.
  • Если хотите индивидуальный график — обсудим и реализуем.
  • Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
  • Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
А еще поможем Вам:
  • отредактировать или создать с нуля резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.

Рубрики:

Linux, Утилиты Linux

Метки:

,

Больше похожих постов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения


Поиск по сайту
Лучшее
Популярное
Рубрики
Меню