Het Gebruik van de Linux lsof Commando

0
409
Fatmawati Achmad Zaenuri/Shutterstock.com

Als alles in Linux is een bestand, dat er meer is dan gewoon de bestanden op je harde schijf. Deze tutorial zal u tonen hoe te gebruiken lsof om alle andere apparaten en processen die worden behandeld als bestanden.

Op Linux, Alles Is een Bestand

De vaak geciteerde zin dat alles in Linux is een bestand is een soort van waar. Een bestand is een verzameling van bytes. Wanneer ze worden gelezen in een programma of verzonden naar een printer, verschijnen ze voor het genereren van een stroom van bytes. Wanneer ze worden geschreven, zij het accepteren van een stroom van bytes.

Vele andere componenten van het systeem accepteren of het genereren van gegevensstromen van bytes, zoals toetsenborden, socket verbindingen, printers en communicatie processen. Omdat ze ofwel te accepteren, te genereren, of accepteren en het genereren van byte-streams, deze apparaten kunnen worden behandeld—op een zeer laag niveau—alsof ze bestanden.

Dit concept is een vereenvoudiging van de implementatie van het Unix besturingssysteem. Het betekende dat een kleine set van handlers, tools en Api ‘ s kunnen worden gemaakt voor het verwerken van een breed scala van verschillende bronnen.

De gegevens en programma bestanden die op uw harde schijf zijn gewoon oude bestandssysteem dat bestanden. We kunnen gebruik maken van het ls commando om ze te tonen en uit te vinden wat informatie over hen.

Hoe gaan we te weten komen over alle andere processen en apparaten die worden behandeld alsof ze bestanden? Wij maken gebruik je het lsof commando. Dit is een lijst van geopende bestanden in het systeem. Dat is, het bevat alles wat wordt behandeld alsof het een bestand is.

GERELATEERD: Wat Betekent “Alles Is een Bestand” Betekenen in Linux?

Het lsof Commando

Veel van de processen of apparaten aan dat lsof kunnen melden op behoren tot de root of werden gelanceerd in de root, dus je moet gebruik maken van het sudo commando met lsof.

En omdat deze lijst zal heel lang gaan we de pijp door minder .

sudo lsof | minder

Voordat je het lsof verschijnt de uitvoer van GNOME gebruikers kunnen een bericht in het terminal venster.

lsof: WAARSCHUWING: kan niet in stat() zekering.gvfsd-zekering file system /run/user/1000/gvfs
Output informatie onvolledig kan zijn.

lsof is het verwerken van alle gemounte bestandssystemen. Dit bericht is verhoogd omdat lsof is opgetreden in een GNOME Virtual file system (GVFS). Dit is een speciaal geval van een bestandssysteem in user space (ZEKERING). Het fungeert als een brug tussen GNOME, zijn Api ‘ s en de kernel. Niemand—zelfs niet root—toegang tot één van deze bestandssystemen, behalve de eigenaar, die gemonteerd is (in dit geval, GNOME). Deze waarschuwing kunt u negeren.

De output van lsof is zeer breed. De meest linkse kolommen zijn:

De meest rechtse kolommen zijn:

Het lsof Kolommen

Alle kolommen die niet van toepassing zijn voor elke type van bestand openen. Het is normaal dat sommige van hen leeg.

  • Opdracht: De naam van de opdracht die is gekoppeld aan het proces dat het bestand is geopend.
  • PID: Proces Identificatie nummer van het proces dat het bestand is geopend.
  • T: Taak (draad) nummer. Een lege kolom betekent dat het niet een taak; het is een proces.
  • Gebruiker: Gebruiker-ID of de naam van de gebruiker die het proces behoort, of de gebruikersnaam of login van de persoon die eigenaar is van de directory in de /proc waar lsof vindt u informatie over het proces.
  • FD: Toont de beschrijver van het bestand. File descriptors worden hieronder beschreven.
  • Type: het type van de node verbonden met het bestand. Opmerking typen worden hieronder beschreven.
  • Apparaat: Bevat het apparaat getallen, gescheiden door komma ‘ s, voor een karakter speciaal, blok speciale, regelmatige, de map of de NFS bestand, of een kernel referentie adres dat geeft het bestand. Het kan ook de base-adres of de apparaatnaam van een Linux-AX.25 socket apparaat.
  • Grootte/Off: Toont de grootte van het bestand of het bestand offset in bytes.
  • Knoop: de knoop nummer van een lokaal bestand, of de inode nummer van een NFS bestand op de server host, of internet protocol-type. Het kunnen weergeven STR voor een stream of de IRQ-of inode nummer van een Linux-AX.25 socket apparaat.
  • Naam: Geeft de naam van het koppelpunt en een bestandssysteem waarop het bestand zich bevindt.

De FD Kolom

De beschrijver in het FD kolom kunt u een van de vele opties; de man pagina een lijst van hen allen.

De FD kolom item kan worden opgebouwd uit drie delen: een file descriptor, een modus karakter, en een lock karakter. Enkele common file descriptors zijn:

  • cwd: Current working directory.
  • err: FD-informatie fout (zie kolom NAAM).
  • ltx: Gedeelde bibliotheek tekst (code en data).
  • m86: DOS-Samenvoegen toegewezen bestand.
  • mem: Memory-mapped-bestand.
  • mmap: Memory-mapped device.
  • pd: Bovenliggende map.
  • oto: Root directory.
  • txt: het Programma tekst (code en gegevens)
  • Een aantal, die een bestandsdescriptor.

De modus karakter kan een van de volgende handelingen uit:

  • r: Lees-toegang.
  • w: Schrijf toegang.
  • u: toegang tot Lezen en Schrijven.
  • ”: Een ruimte karakter, als de modus is onbekend en er is geen lock karakter.
  • –: Mode onbekend en er is een lock-teken.

De lock-teken kan zijn:

  • r: Lees slot op een deel van het bestand.
  • R: Lees slot op het gehele bestand.
  • w: vergrendeling Schrijven op een deel van het bestand.
  • W: Schrijven lock op het gehele bestand.
  • u: Lezen en schrijven slot van elke lengte.
  • U: Onbekend type slot.
  • ”: Een ruimte karakter. Geen slot.

De Kolom TYPE

Er zijn meer dan 70 inzendingen die kunnen worden weergegeven in de kolom TYPE. Sommige gemeenschappelijke items die u te zien krijgt zijn:

  • REG: Regelmatig bestandssysteem bestand.
  • DIR: Directory.
  • FIFO: First In First Out.
  • CHR: een Karakter speciaal bestand.
  • BLK: Blok speciaal bestand.
  • INET: Internet aansluiting.
  • unix: UNIX domein socket

Zie Processen Die Geopend zijn Bestand

Om de processen die een bepaald bestand, de naam van het bestand als parameter voor lsof. Bijvoorbeeld, om de processen die kern.log bestand, gebruik je dit commando:

sudo lsof /var/log/kern.log

lsof reageert door het tonen van het proces, rsyslogd die werd gestart door de gebruiker syslog.

Zie Alle Bestanden die zijn Geopend van een Directory

Om de bestanden die zijn geopend, uit een directory, en de processen die ze geopend, langs de map lsof is het als een parameter. U moet gebruik maken van de +D (directory) optie.

Om alle bestanden die geopend zijn in de /var/log/ map, gebruik je dit commando:

sudo lsof +D /var/log/

lsof reageert met een lijst van alle open bestanden in die directory.

Om alle bestanden die zijn geopend in de /home directory, gebruik je het volgende commando:

sudo lsof +D /home

De bestanden zijn geopend van de /home directory worden weergegeven. Merk op dat met kortere beschrijvingen in sommige van de kolommen, de hele lijst is smaller.

Lijst met Bestanden die zijn Geopend Door een Proces

Om de bestanden die zijn geopend door een bepaald proces, gebruikt u de-c (opdracht) optie. Let op: u kunt meer dan één zoekterm lsof in een keer.

sudo lsof -c ssh -c-init

lsof biedt een lijst van de bestanden die zijn geopend door processen die op de commando-regel.

Zie Bestanden die zijn Geopend Door een Gebruiker

Om de weergave te beperken tot de bestanden die zijn geopend door een specifieke gebruiker, gebruikt u de -u (gebruiker) optie. In dit voorbeeld kijken we naar de bestanden die zijn geopend door processen die eigendom zijn van of worden gelanceerd namens Maria.

sudo lsof -u maria

Alle van de bestanden die zijn geopend op naam van de gebruiker Mary. Dit zijn bestanden die zijn geopend door de desktop-omgeving, bijvoorbeeld, of gewoon als een resultaat van Maria hebben aangemeld.

Met uitzondering van de Bestanden die zijn Geopend door een Gebruiker

U wilt uitsluiten van de bestanden die zijn geopend door een gebruiker, gebruikt u de operator^. Gebruikers uit te sluiten van de lijst maakt het gemakkelijker om de informatie waarin u geïnteresseerd bent. Moet u de-u optie gebruiken als voor, en voeg het ^ – teken aan het begin van de naam van de gebruiker.

sudo lsof +D /home -u ^mary

Deze keer is de lijst voor de /home map bevat geen bestanden die zijn geopend door de gebruiker Mary.

Lijst met Bestanden die zijn Geopend door een Proces

Om een lijst van de bestanden die zijn geopend door een specifiek proces, gebruik de -p (proces) optie en geef de proces-ID als een parameter.

sudo lsof – p 4610

Alle bestanden die zijn geopend door de proces-ID die u hebt opgegeven, weergegeven.

Aanbieding Proces-Id ‘ s Die Zijn Geopend in een Bestand

Om de proces-Id ‘ s voor de processen die een bepaald bestand, gebruik je de-t (beknopt) optie en geef de naam van het bestand op de commando-regel.

sudo lsof -t /usr/share/mime/mime.cache

Het proces-Id ‘ s worden weergegeven in een eenvoudige lijst.

EN OF Zoekopdrachten

Laten we een lijst met bestanden die zijn geopend door gebruiker Maria, die in verband met de SSH processen. We weten dat We meer dan één item zoeken op de commando-regel, dus moet dit makkelijk zijn.

sudo lsof -u maria -c ssh

Laten we nu eens kijken naar de uitvoer van lsof. Dat ziet er niet recht; er zijn vermeldingen in de uitvoer die zijn gestart door root.

Dat is niet wat we verwacht hadden. Wat is er gebeurd?

Wanneer u meerdere zoektermen lsof terug een bestand dat overeenkomt met de eerste zoekterm of de tweede zoekterm, enzovoort. In andere woorden, het voert een OF zoeken.

Om lsof het uitvoeren van een EN zoeken, gebruikt u de -a (en) optie. Dit betekent dat alleen de bestanden die worden vermeld zal worden degenen die overeenkomen met de eerste zoekterm, en de tweede zoekterm, enzovoort.

Laten we proberen dat opnieuw en gebruik dan de-a optie.

sudo lsof -u maria -c ssh -een

Nu elk bestand in de lijst is er een die is geopend door of namens Maria, en zijn geassocieerd met het SSH commando.

Automatisch Verversen Van Het Scherm

We kunnen gebruik maken van de +|-r (herhaal) – optie om lsof in de modus herhalen. De herhaal optie kan worden toegepast op twee manieren, hetzij +r of -r. We moeten ook het aantal seconden willen we lsof te wachten met het vernieuwen van de display.

Met behulp van de herhaal optie in formaat maakt lsof de resultaten weer zoals gewoonlijk, maar het voegt een onderbroken lijn aan de onderkant van het scherm. Wacht voor het aantal seconden die op de commando-regel en druk vervolgens hiermee wordt de weergave met een nieuwe reeks van de resultaten.

Met de optie-r dit zal doorgaan totdat u drukt op Ctrl+C. Met de +r formaat, het zal blijven totdat er zijn geen resultaten om weer te geven, of totdat u drukt op Ctrl+C.

sudo lsof -u maria -c ssh -een -r5

Opmerking de gestippelde lijn aan de onderkant van de lijst. Deze scheidt elke nieuwe weergave van de gegevens bij de uitgang is vernieuwd.

Het weergeven van de Bestanden die zijn Verbonden met Internet Verbindingen

De -i (internet) optie kunt u de bestanden die zijn geopend door processen die samenhangen met netwerk-en internet-verbindingen.

lsof-i

Alle bestanden die zijn geopend door netwerk-en internet-verbindingen weergegeven.

Het weergeven van de Bestanden die zijn Verbonden met Internet Verbindingen door Proces-ID

Te zien van de bestanden die zijn geopend door internet-verbindingen die worden geassocieerd met een specifieke proces-ID, het toevoegen van de optie-p en de-a optie.

Hier zijn we op zoek naar de bestanden die zijn geopend door een internet-of netwerkverbinding, door een proces met een ID van 606.

sudo lsof -i-a -p 606

Alle bestanden die zijn geopend door de proces-ID 606 die verbonden zijn met internet-of netwerkverbindingen worden weergegeven.

Het weergeven van de Bestanden die zijn Verbonden met Internet Verbindingen en Opdrachten

We kunnen gebruik maken van de -c (opdracht) optie om te zoeken naar bestanden die zijn geopend door de specifieke processen. Om te zoeken naar bestanden die zijn geopend door internet-of netwerkverbindingen worden geassocieerd met de ssh proces, gebruik je het volgende commando:

lsof -i-a -c-ssh

Alle bestanden die zijn geopend door de ssh processen worden vermeld in de uitvoer.

Het weergeven van de Bestanden die zijn Verbonden met Internet Verbindingen en Poorten

Kunnen We lsof verslag over de bestanden die zijn geopend door internet-of netwerkverbindingen op een specifieke poort. Om dit te doen, gebruiken we de : teken, gevolgd door het nummer van de poort.

Hier maken we vragen lsof om een lijst met bestanden die zijn geopend door het netwerk of de internet-verbindingen via poort 22.

lsof -i :22

Alle van de bestanden die zijn geopend door processen die samenhangen met poort 22 (de standaard poort voor SSH-verbindingen).

Het weergeven van de Bestanden die zijn Verbonden met Internet Verbindingen en Protocollen

We kunnen vragen lsof om de bestanden die zijn geopend door processen die samenhangen met netwerk-en internet-verbindingen, die het gebruik van een bepaalde protocol. We kunnen kiezen uit TCP, UDP, SMTP. Laten we gebruik maken van het TCP-protocol en zien wat we kunnen krijgen.

sudo lsof-i tcp

Alleen de bestanden in de lijst zijn die zijn geopend door processen die met behulp van het TCP-protocol.

We hebben Alleen Krassen op het Oppervlak

Dat is een goede aarding in sommige situaties voor lsof, maar er is veel meer dan dat. Hoe veel meer kan worden beoordeeld door het feit dat de man-pagina is meer dan 2.800 regels lang.

Het lsof commando kan gebruikt worden om te boren steeds dieper in de lagen van de geopende bestanden en de pseudo-bestanden. We hebben een schets van de kaart; de atlas is in de man-pagina.

LEES VERDER

  • “Wat is een “Qi-Gecertificeerd” Draadloze Lader?
  • “Hoe iOS-13 Zal voor het Ontgrendelen van het Potentieel van NFC
  • “Hoe om te Stoppen met Chrome (of Rand) Van de overname van Uw Media-Toetsen
  • “Het Aanpassen van de Nieuwe Windows Terminal App
  • “6 Geweldige Functies in Windows 10 Nieuwe Spel Bar