I Linux-systemet er den mest populære kommando LSOF, forkortet til Liste over åben fil. Denne kommando viser oplysningerne om de filer, der er åbnet på dit system. Med andre enkle ord kan vi forklare, at LSOF-kommandoen giver information om de filer, der åbnes ved hvilken proces. Det viser blot de åbne filer på outputkonsollen. Den viser bibliotek, delt bibliotek, blokering af speciel fil, almindelig pipe, en internetstik, specialfil, Unix domænesokkel og flere andre. Lsof-kommandoen kan bruges til at kombinere med grep-kommandoen for at gøre mere avancerede funktioner til notering og søgning.
Denne artikel giver dig en grundlæggende forståelse af LSOF-kommandoen. Desuden vil du undersøge, hvordan du bruger denne kommando i Linux-miljøet.
Forudsætninger
Du skal være logget ind som en rootbruger på dit system eller skal have sudo-kommandosamfund.
Vi har udført alle opgaver på Ubuntu 20.04-system, som er nævnt nedenfor:
Liste åbne filer ved hjælp af LSOF kommando
Du kan liste alle åbnede filer med en komplet beskrivelse ved hjælp af LSOF-kommandoen.
# lsof
For eksempel har vi her listet nogle åbne filer for din bedre forståelse. I nedenstående skærmbillede vil du se oplysningerne i form af kolonner som Command, PID, USER, FD, TYPE osv.
Lad os forklare hvert udtryk en efter en. I den første kolonne vil du se Kommando bruges til kommandonavnet. PID viser proces-id'et. Under kolonnen med navnet USER ser du brugerrolletypen eller navnet. De ovenfor viste værdier i billedet er selvforklarende. Vi gennemgår imidlertid kolonnerne TYPE og FD.
FD bruges til en filbeskrivelse, der har nogle værdier som:
- cwd - Repræsenterer den aktuelle arbejdsmappe.
- rtd - Viser rodmappen
- txt - Bruges til programkode og tekstdata
- mem - Bruges til hukommelseskortet fil
- 1u - filbeskrivelse u til læse- og skrivetilstand, w til skrivetilstand, og r bruges til læsningstilstand.
TYPE-kolonnen indeholder alle filer og identifikationer ved hjælp af nøgleord. DIR betyder katalog. REG repræsenterer den almindelige fil. CHR bruges til karakterfiler. FIFO betyder først ind først ud.
Vis brugerspecifikke filer ved hjælp af LSOF-kommandoen
For eksempel, hvis vi vil liste alle åbnede filer med brugernavn kbuzdar, kan du gøre følgende ved hjælp af følgende kommando:
$ sudo lsof -u kbuzdar
Søgningsprocesser, der arbejder på en bestemt port
Du kan søge i disse filer eller behandle dem, der kører på et bestemt portnummer. Til dette formål skal du bare bruge følgende kommando med -i option og indtaste et specifikt portnummer.
# lsof -i TCP: 22Hvis du vil liste alle åbne filer, der kører processer i TCP Port, der varierer mellem 1-1024, skal du udføre nedenstående kommando:
# lsof -i TCP: 1-1024Vis åbne filer Kun til IPv4 og IPv6
For eksempel vil du kun vise IPv4- og IPv6-netværksfiler. Kør følgende kommando for at åbne filer til IPV4 i terminalvinduet:
# lsof -i 4Brug følgende kommando til IPV6:
# lsof -i 6Vis filer ved at ekskludere specifikke brugere
Hvis du vil ekskludere en rodbruger, kan du ekskludere en rodbruger ved at bruge tegnet '^' med kommandoen, der vises i nedenstående skærmbillede:
# lsof -i -u ^ rod
Du kan ekskludere en bestemt bruger ved at bruge vedkommendes navn.
Vis alle netværksforbindelser ved hjælp af kommandoen lsof
Skriv følgende lsof-kommando med option -i for at få vist listen over alle netværksforbindelser:
# lsof -i
Søgningsproces efter PID
I det følgende eksempel vises kun de filer eller processer, hvis PID er 2 [to].
# lsof -p 2
Dræb bestemte brugeraktiviteter
Nogle gange har du muligvis brug for specifikke brugerprocesser. I dette tilfælde kan du ved at udføre følgende kommando dræbe alle processerne for 'kbuzdar' brugeren.
# kill -9 'lsof -t -u kbuzdar'
Konklusion
I denne artikel har vi set, hvordan man bruger lsof-kommandoen på Linux-systemet. Vi har implementeret forskellige eksempler for en bedre forståelse af lsof-kommandoen. Det er ikke muligt at uddybe alle tilgængelige indstillinger, men du kan udforske mandsiden for lsof-kommandoen for at få mere om denne kommando. Del med os din feedback via kommentarer.