1. Вывод всех открытых файлов с помощью команды lsof
В приведенном ниже примере lsof в Linux будет показан список открытых файлов. В данном выводе отображаются такие столбцы, как Command, PID, USER, FD, TYPE и т.д.
# lsof
Разделы и их значения говорят сами за себя. Однако мы рассмотрим столбцы FD&TYPE более подробно:
FD – обозначает дескриптор файла и принимает следующие значения как:
- cwd – текущий рабочий каталог
- rtd – корневой каталог
- txt – текст программы (код и данные)
- mem – файл памяти
Кроме того, в столбцах FD такие номера, как 1u, являются фактическим дескриптором файла, а за ним следует один из флагов u, r, w как режим доступа:
- r – доступа для чтения.
- w – доступа для записи.
- u – чтения и записи.
TYPE – файлов и их идентификация:
- DIR – директория
- REG – обычный файл
- CHR – специальный символьный файл.
- FIFO – First In First Out
2. Список открытых пользовательских файлов
Приведенная ниже команда отобразит список всех открытых файлов пользователя sedicomm:
# lsof -u sedicomm
3. Поиск процессов, работающих на конкретном порту
Чтобы узнать все запущенные процессы на определенном порту, просто используйте следующую команду с флагом -i. В приведенном ниже примере будут выведены все запущенные процессы порта 22:
# lsof -i TCP:22
4. Вывод открытых файлов IPv4 и IPv6
В приведенном ниже примере lsof в Linux показаны только сетевые файлы IPv4 и IPv6, выведенные с помощью отдельных команд:
# lsof -i 4
# lsof -i 6
5. Вывод открытых файлов диапазона портов TCP 1-1024
Для вывода всех запущенных процессов открытых файлов TCP-порт меняется в диапазоне 1-1024.
# lsof -i TCP:1-1024
6. Исключение пользователей с использованием символа «^»
# lsof -i -u^root
7. Узнайте, какие файлы и команды использует пользователь?
Приведенный ниже пример показывает, что пользователь sedicomm использует такие команды, как ping и /etc.
# lsof -i -u sedicomm
8. Вывод списка всех сетевых подключений
Следующая команда с опцией «-i» выводит список всех сетевых подключений «LISTENING & ESTABLISHED»:
# lsof -i
9. Поиск по PID
В приведенном ниже примере показано только те выводы, чей PID равен 1:
# lsof -p 1
10. Завершение всей активности конкретного пользователя
Иногда вам может потребоваться завершить все процессы для конкретного пользователя. Команда ниже завершает все процессы пользователя sedicomm:
# kill -9 `lsof -t -u sedicomm`
Примечание: здесь невозможно привести пример всех доступных опций, это руководство знакомит вас, как можно использовать команду lsof. Вы можете обратиться к странице справки команды lsof, чтобы узнать больше: man lsof.