I Linux-systemet er den mest populære kommandoen LSOF, forkortet til List Of Open File. Denne kommandoen viser informasjonen om filene som er åpnet på systemet ditt. Med andre enkle ord kan vi forklare at LSOF-kommandoen gir informasjon om filene som åpnes av hvilken prosess. Den viser bare de åpne filene på utgangskonsollen. Den viser katalog, delt bibliotek, blokker spesialfil, vanlig rør, en internettkontakt, karakterspesifil, Unix domenekontakt og flere andre. Lsof-kommandoen kan brukes til å kombinere med grep-kommandoen for å gjøre mer avanserte funksjoner for oppføring og søk.
Denne artikkelen vil gi deg en grunnleggende forståelse av LSOF-kommandoen. Videre vil du utforske hvordan du bruker denne kommandoen i Linux-miljøet.
Forutsetninger
Du må være pålogget som rotbruker på systemet ditt eller må ha sudo-kommandoprivilegier.
Vi har utført alle oppgavene på Ubuntu 20.04-systemet, som er nevnt nedenfor:
Liste åpne filer ved hjelp av LSOF-kommando
Du kan liste alle åpnede filer med en fullstendig beskrivelse ved hjelp av LSOF-kommandoen.
# lsof
For eksempel har vi her oppført noen åpne filer for bedre forståelse. I skjermbildet nedenfor ser du informasjonen i form av kolonner som Command, PID, USER, FD, TYPE, etc.
La oss forklare hvert begrep en etter en. I den første kolonnen vil du se Kommando brukes til kommandonavnet. PID viser prosess-ID. Under kolonnen USER ser du brukerrolletypen eller navnet. Ovennevnte verdier i bildet er selvforklarende. Imidlertid vil vi gjennomgå kolonnene TYPE og FD.
FD brukes til en filbeskrivelse som har noen verdier som:
- cwd - Representerer den gjeldende arbeidskatalogen.
- rtd - Viser rotkatalogen
- tekst - Brukes til programkode og tekstdata
- mem - Brukes til minnekartet fil
- 1u - filbeskrivelse u for lese- og skrivemodus, w for skrivemodus, og r brukes til lesemodus.
TYPE-kolonnen inneholder alle filer og identifikasjoner ved hjelp av nøkkelord. DIR betyr katalog. REG representerer den vanlige filen. CHR brukes til karakterfiler. FIFO betyr First In First Out.
Liste brukerspesifikke filer ved hjelp av LSOF-kommandoen
Hvis vi for eksempel vil liste opp alle åpnede filer med brukernavnet kbuzdar, kan du gjøre følgende ved å bruke følgende kommando:
$ sudo lsof -u kbuzdar
Søkeprosesser som arbeider på en bestemt port
Du kan søke i disse filene eller behandle de som kjører på et bestemt portnummer. For dette formålet trenger du bare å bruke følgende kommando med -i alternativet og angi et spesifikt portnummer.
# lsof -i TCP: 22Hvis du vil liste alle åpne filer som kjører prosesser av TCP Port som varierer mellom 1-1024, utfører du kommandoen nedenfor:
# lsof -i TCP: 1-1024Vis åpne filer Bare for IPv4 og IPv6
For eksempel vil du bare vise IPv4- og IPv6-nettverksfiler. Kjør følgende kommando for å åpne filer for IPV4 i terminalvinduet:
# lsof -i 4Bruk følgende kommando for IPV6:
# lsof -i 6Vis filer ved å ekskludere bestemte brukere
Hvis du vil ekskludere en rotbruker, kan du ekskludere en rotbruker ved å bruke tegnet '^' med kommandoen som vises i skjermbildet nedenfor:
# lsof -i -u ^ root
Du kan ekskludere en bestemt bruker ved å bruke vedkommendes navn.
Vis alle nettverkstilkoblinger ved hjelp av kommandoen lsof
Skriv inn følgende lsof-kommando med alternativ -i for å vise listen over alle nettverkstilkoblinger:
# lsof -i
Søkeprosess etter PID
I det følgende eksemplet viser bare de filene eller prosessene hvis PID er 2 [to].
# lsof -p 2
Drep bestemte brukeraktiviteter
Noen ganger kan det hende du trenger spesifikke brukerprosesser. I dette tilfellet, ved å utføre følgende kommando, kan du drepe alle prosessene til 'kbuzdar' brukeren.
# kill -9 'lsof -t -u kbuzdar'
Konklusjon
I denne artikkelen har vi sett hvordan du bruker lsof-kommandoen på Linux-systemet. Vi har implementert forskjellige eksempler for bedre forståelse av lsof kommando. Det er ikke mulig å utdype alle tilgjengelige alternativer, men du kan utforske mansiden til lsof-kommandoen for å få mer informasjon om denne kommandoen. Del med oss din tilbakemelding via kommentarer.