В Linux всё — это файл: обычные файлы, сокеты, устройства, каталоги, процессы. "lsof" расшифровывается как List Open Files — "список открытых файлов".
Соответвенно, команда
lsof позволяет просматривать информацию об открытых файлах и связанных с ними процессах:✔️ какие файлы, сокеты и порты открыты
✔️ каким процессом они используются
✔️ кто блокирует нужный файл
✔️ что "занимает" устройство, диск или порт
Эта утилита вам пригодится, если вы сталкиваетесь с ошибками доступа к файлам, например, при монтировании, удалении или использовании разделов.
⚙️ Синтаксис:
lsof [опции]
⚙️ Примеры использования
1️⃣ Проверить, кто занимает порт.
lsof -i :80
Покажет процесс (PID), который слушает порт 80.
2️⃣ Найти процесс, держащий файл "занятым".
lsof /path/to/file
Если файл нельзя удалить или смонтировать диск — это поможет выяснить, кто его использует.
3️⃣ Проверить активные сетевые соединения.
lsof -i
Выведет список всех TCP/UDP подключений (локальные и удалённые адреса, PID, программа).
4️⃣ Найти удалённые, но не освобождённые файлы.
lsof +L1
Полезно, если диск "заполнен", но место не освобождается — это покажет процессы, держащие "удалённые" файлы открытыми.
5️⃣ Вывести все файлы, открытые процессом.
lsof -p 1234
Покажет, какие файлы, сокеты и устройства открыты у процесса с PID 1234.
6️⃣ Посмотреть, кто использует каталог.
lsof +D /var/log/
Полезно при попытке размонтировать диск или директорию — можно увидеть, кто удерживает файлы внутри.