В системата Linux най-популярната команда е LSOF, съкратено за Списък на отворен файл. Тази команда показва информацията за файловете, отворени във вашата система. С други прости думи можем да обясним, че командата LSOF предоставя информация за файловете, които се отварят чрез кой процес. Той просто изброява отворените файлове на изходната конзола. В него са изброени директория, споделена библиотека, блокиране на специален файл, обикновена тръба, интернет сокет, специален файл за символи, Unix домейн сокет и други. Командата Lsof може да се използва за комбиниране с командата grep за извършване на по-разширени функции за изброяване и търсене.
Тази статия ще ви даде основно разбиране за командата LSOF. Освен това ще проучите как да използвате тази команда в средата на Linux.
Предварителни условия
Трябва да влезете като root потребител на вашата система или да имате привилегии за командване на sudo.
Изпълнихме всички задачи на Ubuntu 20.04, която е спомената по-долу:
Избройте отворени файлове с помощта на командата LSOF
Можете да изброите всички отворени файлове с пълно описание, като използвате командата LSOF.
# lsf
Например тук сме изброили някои отворени файлове за по-добро разбиране. На екрана по-долу ще видите информацията под формата на колони като Command, PID, USER, FD, TYPE и т.н.
Нека обясним всеки термин един по един. В първата колона ще видите, че командата се използва за името на командата. PID показва идентификатора на процеса. Под колоната с име USER ще видите типа или името на потребителската роля. Показаните по-горе стойности в изображението са обясними. Ние обаче ще прегледаме колоните TYPE и FD.
FD се използва за дескриптор на файл, който има някои стойности като:
- cwd - Представлява текущата работна директория.
- rtd - Показва основната директория
- текст - Използва се за програмен код и текстови данни
- мем - Използва се за картографиран файл с памет
- 1u - файлов дескриптор u за режим на четене и запис, w за режим на запис и r, използван за режим на четене.
Колоната TYPE съдържа всички файлове и идентификации, използващи ключови думи. DIR означава директория. REG представлява обикновения файл. CHR се използва за специални файлове със знаци. FIFO означава First In First Out.
Списък на специфични за потребителя файлове с помощта на командата LSOF
Например, ако искаме да изброим всички отворени файлове с потребителско име kbuzdar, тогава, като използвате следната команда, можете да направите това:
$ sudo lsof -u kbuzdar
Процеси на търсене, работещи на определен порт
Можете да търсите в тези файлове или да обработвате тези, работещи на определен номер на порт. За тази цел просто трябва да използвате следната команда с опция -i и да въведете конкретен номер на порт.
# lsof -i TCP: 22Ако искате да изброите всички отворени файлове, изпълняващи процеси на TCP порт, които варират между 1-1024, изпълнете посочената по-долу команда:
# lsof -i TCP: 1-1024Показване на отворени файлове Само за IPv4 и IPv6
Например искате да показвате само мрежови файлове IPv4 и IPv6. Изпълнете следната команда, за да отворите файлове за IPV4 в прозореца на терминала:
# lsof -i 4За IPV6 използвайте следната команда:
# lsof -i 6Показвайте файлове, като изключвате конкретни потребители
Ако искате да изключите root потребител, тогава можете да изключите root потребител, като използвате символа '^' с командата, показана на екрана по-долу:
# lsof -i -u ^ корен
Можете да изключите конкретен потребител, като използвате името му.
Покажете всички мрежови връзки, като използвате командата lsof
Въведете следната команда lsof с опция -i, за да покажете списъка с всички мрежови връзки:
# lsof -i
Процес на търсене по PID
В следващия пример показва само тези файлове или процеси, чийто PID е 2 [два].
# lsof -p 2
Убийте конкретни потребителски дейности
Понякога може да се нуждаете от специфични потребителски процеси. В този случай, като изпълните следната команда, можете да убиете всички процеси на потребителя 'kbuzdar'.
# kill -9 'lsof -t -u kbuzdar'
Заключение
В тази статия видяхме как да използваме командата lsof в системата Linux. Приложихме различни примери за по-добро разбиране на командата lsof. Не е възможно да се изяснят всички налични опции, но можете да проучите ръководството на командата lsof, за да получите повече информация за тази команда. Споделете с нас вашите отзиви чрез коментари.