Linux-kommandon

Linux lsof Command

Linux lsof Command
Kommandoverktyget “lsof” i Linux är ett av de många inbyggda verktygen som är väldigt användbart för att kolla in ”listan över öppna filer”. Ja, termen "lsof" är en förkortning av uppgiften.

Det finns ett antal processer som körs i systemet hela tiden och får åtkomst till olika filer i systemet. Dessa filer kan vara diskfiler, skript, nätverksuttag, enheter, namngivna rör och andra. Med hjälp av “lsof” är det möjligt att utföra många saker, som felsökning. Det är också ganska användbart för systemadministratörer att ta reda på vilka filer som nås genom vilka processer. En av de mest användbara scenarierna jag har hittat är när du håller på att avmontera ett filsystem men det är fortfarande tillgängligt.

Utan vidare ado, låt oss komma igång med “lsof”! Jag antar att ditt nuvarande UNIX / Linux-system redan har "lsof" installerat.

Plats

vilken lsof

Detta rapporterar hela sökvägen för kommandot, i det här fallet "lsof".

”Lsof” -version
lsof -v

Detta kommer att rapportera djupgående version av ”lsof”, inklusive byggdatum för binär, kompilatorversion, kompilatorflaggor och andra.

Grundläggande “lsof” användning

Kör “lsof” av sig själv.

lsof

Detta rapporterar en STOR lista över alla filer som systemet nås när kommandot körs.

Medan alla fälten är självförklarande, blir du mestadels förvirrad över kolumnerna "FD" och "TYPE" och deras värden. Låt oss kolla in dem.

FD: Förkortning av "File Descriptor". Det kommer upp med följande värden.

Det finns också andra värden som du kommer att märka i kolumnen, som “1u” följt av u, r, w, etc. värde. Vad betyder det??

TYP: Beskriver filtyp och dess identifikation. Värdena är som följer.

Användarspecifika öppnade filer

Linux är en lysande fleranvändarplattform. Flera användare kan komma åt systemet samtidigt och utföra åtgärder som de har behörighet för.

För att kolla in de filer som en viss användare använder, kör du följande kommando.

lsof -u

Men för att kolla in användare med högre rang behöver "lsof" privilegium "superanvändare".

sudo lsof -u

Vad sägs om att kolla in alla kommandon och filer som en viss användare har åtkomst till? Kör följande.

lsof -i -u

Återigen, för användare med högre rang behöver "lsof" privilegiet "superanvändare".

sudo lsof -i -u

Hamnsspecifika körprocesser

För att ta reda på alla processer som för närvarande använder en viss port, ring "lsof" med "-i" -flaggan följt av protokollet och portinformation.

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

Om du till exempel vill kolla in alla program som för närvarande har åtkomst till port 80 via TCP / IP-protokoll, kör du följande kommando.

lsof -i TCP: 80

Denna metod kan också användas för att visa alla processer som använder portar inom ett visst intervall, till exempel 1 till 1000. Kommandostrukturen liknar tidigare med lite magi vid portnummerdelen.

lsof -i TCP: 1-1000

Protokollspecifika processer

Här är två exempel som visar de processer som för närvarande använder IPv4- och IPv6-protokollen.

lsof -i 4

lsof -i 6

Listar nätverksanslutningar

Följande kommando rapporterar alla nätverksanslutningar från det aktuella systemet.

lsof -i

Exklusive med ^

Ja, vi kan utesluta specifik användare, port, FD och andra med tecknet “^”. Allt du behöver göra är att använda den med försiktighet så att du inte förstör hela produktionen.

I det här exemplet, låt oss utesluta alla processer från användarens "root".

lsof -u ^ root

Det finns andra sätt att använda denna uteslutande mekanism med “lsof”, till exempel med flaggor som “-c”, “-d” etc. Inte alla flaggor stöder denna mekanism. Det är därför jag rekommenderar att du testar en demo med den här metoden med vilken flagga som helst innan du implementerar den i vissa skript.

PID-sökning

PID är en viktig egenskap för alla processer som körs i systemet. Det gör det möjligt att finjustera en viss process. Processnamnet är inte riktigt bra i många situationer, eftersom samma binära kan skapa kopior av sig själv och utföra olika uppgifter parallellt.

Om du inte vet hur du får PID för en process, använd bara "ps" för att lista alla pågående processer och filtrera utdata med "grep" med processnamn och / eller kommandon.

ps -A

Utför nu filtreringen med "grep".

ps -A | grep

Kolla nu vilka filer som PID har åtkomst till.

lsof -p

Lista öppna filer för en viss enhet

Funktionen hos “lsof” är inte bara begränsad till dessa funktioner. Du kan också filtrera resultatet av “lsof” efter enhetsbasis. För detta ändamål ser kommandot ut ungefär så här.

lsof

Det här kommandot är mycket användbart för att ta reda på alla processer som körs med deras ägarinformation för åtkomst till ett visst filsystem. Om du har problem med att avmontera ett filsystem är det här det bästa sättet att gå.

lsof

Lista öppnade filer under en katalog

I likhet med föregående exempel, passera bara katalogvägen till “lsof” för att ta reda på om någon process har åtkomst till den.

Obs: “lsof” kommer att kontrollera katalogen rekursivt, så det kan ta tid.

= lsof + D

Bonus: avsluta all användaraktivitet

Var extremt försiktig med den här delen eftersom den helt enkelt kan klara sig med allt som en användare gör. Följande kommando dödar alla körningsprocesser för en användare.

sudo kill -9 'lsof -t -u Slutgiltiga tankar

Funktionerna i “lsof” stannar inte bara här. De som nämns här är de som vi behöver mest dagligen. Det finns många andra funktioner i "lsof" som kan vara till nytta (i specifika fall, naturligtvis).

För alla tillgängliga funktioner och deras användning, kolla in man- och infosidorna på “lsof”.

man lsof

info lsof

lsof -?

Njut av!

Mus Så här vänder du mus- och styrplattans rullningsriktning i Windows 10
Så här vänder du mus- och styrplattans rullningsriktning i Windows 10
Mus och Pekplattas gör inte bara datoranvändning lättare men effektivare och mindre tidskrävande. Vi kan inte föreställa oss ett liv utan dessa enhete...
Mus Så här ändrar du muspekare och markörstorlek, färg och schema på Windows 10
Så här ändrar du muspekare och markörstorlek, färg och schema på Windows 10
Muspekaren och markören i Windows 10 är mycket viktiga aspekter av operativsystemet. Detta kan också sägas för andra operativsystem, så i sanning är d...
Gratis och öppen källkodsmotorer för utveckling av Linux-spel
Den här artikeln kommer att täcka en lista över gratis motorer med öppen källkod som kan användas för att utveckla 2D- och 3D-spel på Linux. Det finns...