Linux-opdrachten

Linux lsof-opdracht

Linux lsof-opdracht
De opdrachttool "lsof" in Linux is een van de vele ingebouwde tools die super handig is voor het bekijken van de "lijst met open bestanden". Ja, de term "lsof" is de afkorting van de taak.

Er zijn voortdurend een aantal processen in het systeem actief, die toegang hebben tot verschillende bestanden van het systeem. Deze bestanden kunnen schijfbestanden, scripts, netwerksockets, apparaten, named pipes en andere zijn. Met behulp van "lsof" is het mogelijk om veel dingen uit te voeren, zoals debuggen. Het is ook heel handig voor systeembeheerders om erachter te komen welke bestanden door welke processen worden geopend. Een van de handigste scenario's die ik heb gevonden, is wanneer je op het punt staat een bestandssysteem te ontkoppelen, maar het wordt nog steeds gebruikt.

Laten we zonder verder oponthoud beginnen met "lsof"! Ik neem aan dat je huidige UNIX/Linux-systeem al "lsof" heeft geïnstalleerd.

Plaats

welke lsof

Dit rapporteert het volledige pad van de opdracht, in dit geval "lsof".

"lsof" versie
lsof -v

Dit rapporteert diepgaande versie-informatie van "lsof", inclusief de builddatum van het binaire bestand, compilerversie, compilervlaggen en andere.

Basisgebruik van "lsof"

Voer zelf "lsof" uit.

lsof

Dit rapporteert een GROTE lijst van alle bestanden die door het systeem worden geopend op het moment dat de opdracht wordt uitgevoerd.

Hoewel alle velden voor zichzelf spreken, raak je meestal in de war over de kolommen "FD" en "TYPE" en hun waarden. Laten we ze eens bekijken.

FD: Afkorting van “File Descriptor”. Het komt met de volgende waarden:.

Er zijn ook andere waarden die u in de kolom zult opmerken, zoals "1u" gevolgd door u, r, w, enz. waarde. Wat betekenen die??

TYPE: beschrijft het bestandstype en de identificatie ervan. De waarden zijn als volgt:.

Gebruikersspecifieke geopende bestanden

Linux is een briljant platform voor meerdere gebruikers. Meerdere gebruikers hebben tegelijkertijd toegang tot het systeem en kunnen bewerkingen uitvoeren waarvoor ze toestemming hebben.

Voer de volgende opdracht uit om de bestanden te bekijken die door een bepaalde gebruiker worden geopend:.

lsof -u

Om de gebruikers met een hogere rang uit te checken, heeft "lsof" echter het "superuser"-privilege nodig.

sudo lsof -u

Hoe zit het met het bekijken van alle opdrachten en bestanden die een bepaalde gebruiker gebruikt?? Voer de volgende uit:.

lsof -i -u

Nogmaals, voor gebruikers met een hogere rang heeft "lsof" het recht "superuser" nodig.

sudo lsof -i -u

Poortspecifieke lopende processen

Voor het vinden van alle processen die momenteel een bepaalde poort gebruiken, roept u "lsof" aan met de vlag "-i", gevolgd door het protocol en de poortinformatie.

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

Als u bijvoorbeeld alle programma's wilt bekijken die momenteel toegang hebben tot poort 80 via het TCP/IP-protocol, voert u de volgende opdracht uit:.

lsof -i TCP:80

Deze methode kan ook worden gebruikt om alle processen weer te geven die poorten gebruiken binnen een bepaald bereik, bijvoorbeeld 1 tot 1000. De commandostructuur is vergelijkbaar met voorheen met een beetje magie bij het poortnummergedeelte.

lsof -i TCP:1-1000

Protocolspecifieke processen

Hier zijn 2 voorbeelden die de processen tonen die momenteel de IPv4- en IPv6-protocollen gebruiken.

lsof -i 4

lsof -i 6

Netwerkverbindingen weergeven

De volgende opdracht rapporteert alle netwerkverbindingen van het huidige systeem:.

lsof -i

Exclusief met ^

Ja, we kunnen specifieke gebruiker, poort, FD en anderen uitsluiten met het teken "^". Het enige dat u hoeft te doen, is het met de nodige voorzichtigheid gebruiken, zodat u niet de hele uitvoer verknoeit.

Laten we in dit voorbeeld alle processen uitsluiten van de gebruiker "root".

lsof -u^root

Er zijn andere manieren om dit uitsluitingsmechanisme te gebruiken met "lsof", bijvoorbeeld met de vlaggen zoals "-c", "-d" enz. Niet alle vlaggen ondersteunen dit mechanisme. Daarom raad ik aan om een ​​demo met deze methode uit te proberen met een willekeurige vlag voordat je het in sommige scripts implementeert.

PID zoeken

PID is een belangrijke eigenschap van elk lopend proces op het systeem. Het maakt een fijnere lokalisatie van een bepaald proces mogelijk. De procesnaam is in veel situaties niet erg handig, omdat hetzelfde binaire bestand kopieën van zichzelf kan maken en tegelijkertijd verschillende taken kan uitvoeren.

Als u niet weet hoe u de PID van een proces kunt krijgen, gebruikt u gewoon "ps" om alle lopende processen op te sommen en filtert u de uitvoer met "grep" met de procesnaam en/of opdrachten.

ps -A

Voer nu de filtering uit met "grep".

ps -A | grep

Bekijk nu welke bestanden die PID gebruikt.

lsof -p

Openstaande bestanden voor een specifiek apparaat weergeven

De functionaliteit van "lsof" is niet alleen beperkt tot deze functies. U kunt het resultaat van "lsof" ook filteren op apparaatbasis. Voor dit doel ziet het commando er ongeveer zo uit:.

lsof

Deze opdracht is super handig om alle lopende processen te achterhalen met hun eigenaarinformatie die toegang heeft tot een bepaald bestandssysteem. Als je problemen hebt met het ontkoppelen van een bestandssysteem, is dit de beste manier om te gaan.

lsof

Lijst geopende bestanden onder een map

Net als bij het vorige voorbeeld, geef je gewoon het mappad door aan "lsof" om te zien of een proces er toegang toe heeft.

Opmerking: "lsof" zal de map recursief controleren, dus het kan even duren.

=lsof +D

Bonus: beëindig alle gebruikersactiviteit

Wees uiterst voorzichtig met dit onderdeel, want het kan alles wat een gebruiker aan het doen is gewoon verknoeien. De volgende opdracht zal alle lopende processen van een gebruiker doden.

sudo kill -9 'lsof -t -u Laatste gedachten

De kenmerken van "lsof" stoppen hier niet alleen. Degene die hier worden genoemd, zijn degenen die we dagelijks het meest nodig hebben. Er zijn tal van andere functionaliteiten van "lsof" die van pas kunnen komen (in specifieke gevallen natuurlijk).

Voor alle beschikbare functies en hun gebruik, bekijk de man- en infopagina's van "lsof".

man lsof

info lsof

lsof -?

Genieten!

Handige hulpmiddelen voor Linux-gamers
Als je graag games op Linux speelt, is de kans groot dat je apps en hulpprogramma's zoals Wine, Lutris en OBS Studio hebt gebruikt om de game-ervaring...
HD Remastered Games voor Linux die nog nooit eerder een Linux-release hebben gehad
Veel game-ontwikkelaars en uitgevers komen met HD-remaster van oude games om de levensduur van franchise te verlengen, fans die compatibiliteit met mo...
Hoe AutoKey te gebruiken om Linux-spellen te automatiseren
AutoKey is een hulpprogramma voor desktopautomatisering voor Linux en X11, geprogrammeerd in Python 3, GTK en Qt. Met behulp van de scripting- en MACR...