Linux команди

Linux lsof Command

Linux lsof Command
Командният инструмент „lsof“ в Linux е един от многото вградени инструменти, който е изключително полезен за проверка на „списъка с отворени файлове“. Да, терминът „lsof“ е съкращението на задачата.

В системата постоянно се изпълняват редица процеси, които имат достъп до различни файлове на системата. Тези файлове могат да бъдат дискови файлове, скриптове, мрежови сокети, устройства, именувани канали и други. Използвайки “lsof”, е възможно да изпълнявате много неща, като отстраняване на грешки. Също така е много полезно за системните администратори да разберат до какви файлове се осъществява достъп от какви процеси. Един от най-полезните сценарии, които открих, е когато сте на път да демонтирате файлова система, но тя все още е достъпна.

Без повече шум, нека да започнем с „lsof“! Предполагам, че в текущата ви система UNIX / Linux вече е инсталиран “lsof”.

Местоположение

което също

Това отчита пълния път на командата, в този случай „lsof“.

Версия „lsof“
lsof -v

Това ще отчете задълбочена информация за версията на “lsof”, включително датата на изграждане на двоичния файл, версията на компилатора, флаговете на компилатора и други.

Основно използване „lsof“

Стартирайте “lsof” от само себе си.

също

Това отчита ГОЛЯМ списък на всички файлове, до които системата има достъп в момента на изпълнение на командата.

Въпреки че всички полета са самообясними, най-вече се объркайте относно колоните „FD“ и „TYPE“ и техните стойности. Нека ги проверим.

FD: Съкращение на “File Descriptor”. Излиза със следните стойности.

Има и други стойности, които ще забележите в колоната, като „1u“, последвано от u, r, w и т.н. стойност. Какво означават това?

ТИП: Описва типа на файла и неговата идентификация. Стойностите са както следва.

Специфични за потребителя отворени файлове

Linux е брилянтна многопотребителска платформа. Няколко потребители могат да имат достъп до системата едновременно и да извършват операции, за които имат разрешение.

За да проверите файловете, които са достъпни от определен потребител, изпълнете следната команда.

lsof -u

Въпреки това, за да провери потребителите с по-висок ранг, „lsof“ ще се нуждае от привилегията „суперпотребител“.

sudo lsof -u

Какво ще кажете да проверите всички команди и файлове, до които има достъп определен потребител? Изпълнете следната.

lsof -i -u

Отново, за потребители с по-висок ранг, „lsof“ ще се нуждае от привилегията „суперпотребител“.

sudo lsof -i -u

Работещи процеси, специфични за портове

За да разберете всички процеси, които в момента използват определен порт, извикайте “lsof” с флага “-i”, последван от протокола и информацията за порта.

lsof -i<46><@hostname|host_address>
:

Например, за да проверите всички програми, които в момента имат достъп до порт 80 през протокола TCP / IP, изпълнете следната команда.

lsof -i TCP: 80

Този метод може да се използва и за показване на всички процеси, които използват портове в определен диапазон, например от 1 до 1000. Структурата на командите е подобна на преди с малко магия в частта с номера на порта.

lsof -i TCP: 1-1000

Специфични за протокола процеси

Ето 2 примера, показващи процесите, които в момента използват протоколите IPv4 и IPv6.

lsof -i 4

lsof -i 6

Изброяване на мрежови връзки

Следващата команда ще отчете всички мрежови връзки от текущата система.

lsof -i

С изключение на ^

Да, можем да изключим конкретен потребител, порт, FD и други, като използваме символа „^“. Всичко, което трябва да направите, е да го използвате с повишено внимание, за да не объркате целия изход.

В този пример нека изключим всички процеси от потребителския "корен".

lsof -u ^ корен

Има и други начини за използване на този изключващ механизъм с “lsof”, например с флагове като “-c”, “-d” и т.н. Не всички флагове поддържат този механизъм. Ето защо препоръчвам да изпробвате демонстрация с този метод с всеки флаг, преди да го внедрите в някои скриптове.

PID търсене

PID е важно свойство на всеки работещ процес в системата. Тя позволява по-фино определяне на определен процес. Името на процеса не е много полезно в много ситуации, тъй като един и същ двоичен файл може да създава свои копия и да изпълнява паралелно различни задачи.

Ако не знаете как да получите PID на даден процес, просто използвайте „ps“, за да изброите всички работещи процеси и да филтрирате изхода, използвайки „grep“ с името на процеса и / или командите.

ps -A

Сега изпълнете филтрирането с помощта на “grep”.

ps -A | grep

Сега проверете до какви файлове има достъп PID.

lsof -p

Изброяване на отворени файлове за конкретно устройство

Функционалността на “lsof” не се ограничава само до тези функции. Можете също да филтрирате резултата от “lsof” и по устройство. За тази цел командата ще изглежда така.

също

Тази команда е изключително полезна за откриване на всички работещи процеси с информация за собственика им, достъп до определена файлова система. Ако имате проблеми с демонтирането на файлова система, това е най-добрият начин.

също

Списък на отворени файлове в директория

Подобно на предишния пример, просто предайте пътя на директорията на “lsof”, за да разберете дали някой процес има достъп до него.

Забележка: “lsof” ще проверява директорията рекурсивно, така че може да отнеме време.

= също + D

Бонус: прекратяване на цялата активност на потребителя

Бъдете изключително предпазливи с тази част, тъй като тя може просто да обърка всичко, което прави потребителят. Следващата команда ще унищожи всички работещи процеси на потребител.

sudo kill -9 'lsof -t -u Финални мисли

Функциите на “lsof” не само спират до тук. Споменатите тук са тези, от които ще се нуждаем най-много всеки ден. Има много други функционалности на „lsof“, които могат да ви бъдат полезни (разбира се, в конкретни случаи).

За всички налични функции и тяхното използване разгледайте страниците с информация и информация на „lsof“.

човек също

информация lsof

също -?

Наслади се!

Топ Oculus App Lab Games
Ако сте собственик на слушалки на Oculus, тогава трябва да знаете за странично зареждане. Sideloading е процесът на инсталиране на несъхранявано съдър...
Топ 10 игри за игра на Ubuntu
Платформата на Windows е една от доминиращите платформи за игри поради огромния процент игри, които се развиват днес, за да поддържат Windows. Може ли...
5 най-добри аркадни игри за Linux
В днешно време компютрите са сериозни машини, използвани за игри. Ако не можете да получите новия висок резултат, ще разберете какво имам предвид. В т...