Linuxlab

Открытые файлы в Linux: команда lsof

Обновлено 3 июля 2026 г.

lsof (list open files) показывает, какие файлы и сокеты открыты и каким процессом.

Синтаксис

lsof [опции]

Частые случаи

lsof -p 1234            # что открыто процессом с PID 1234
lsof /var/log/syslog    # кто держит этот файл
sudo lsof -i :80        # кто занял порт 80
sudo lsof -i            # все сетевые соединения
lsof +D /home/user      # все открытые файлы в каталоге

Как это устроено: в Linux почти всё - это файл

В Linux обычный файл, сокет, канал и устройство - всё это «открытые файлы» у процесса. Поэтому lsof отвечает сразу на много вопросов: кто занял сетевой порт (-i :порт), почему не отмонтировать диск (какой процесс держит на нём файл), куда делось место (удалённый, но всё ещё открытый файл место не освобождает - его видно в lsof). Те же данные лежат в /proc/<PID>/fd, а lsof лишь собирает их в удобный вид.

В книге

Подробно эта тема разобрана в главе Мониторинг и узкие места.

См. также

Сокеты: ss, Просмотр процессов, Файловая система /proc.