I Linux-systemet är det mest populära kommandot LSOF, förkortat till List of Open File. Detta kommando visar informationen om filerna som öppnas på ditt system. Med andra enkla ord kan vi förklara att LSOF-kommandot ger information om de filer som öppnas genom vilken process. Det listar helt enkelt ner de öppna filerna på utgångskonsolen. Den listar katalog, delat bibliotek, blockerar specialfil, vanlig pipa, ett internetuttag, specialteckenfil, Unix-domänuttag och mer andra. Lsof-kommandot kan användas för att kombinera med kommandot grep för att göra mer avancerade funktioner för listning och sökning.
Den här artikeln ger dig en grundläggande förståelse för LSOF-kommandot. Dessutom kommer du att undersöka hur du använder detta kommando i Linux-miljön.
Förutsättningar
Du måste vara inloggad som rotanvändare på ditt system eller måste ha sudo-kommandoförmåner.
Vi har utfört alla uppgifter på Ubuntu 20.04-systemet, som nämns nedan:
Lista öppna filer med LSOF-kommandot
Du kan lista alla öppnade filer med en fullständig beskrivning med LSOF-kommandot.
# lsof
Här har vi till exempel listat några öppna filer för bättre förståelse. I skärmdumpen nedan ser du informationen i form av kolumner som Command, PID, USER, FD, TYPE, etc.
Låt oss förklara varje term en efter en. I den första kolumnen ser du Kommando används för kommandonamnet. PID visar process-id. Under kolumnen USER visas användartypens roll eller namn. Ovanstående värden i bilden är självförklarande. Vi kommer dock att granska kolumnerna TYPE och FD.
FD används för en filbeskrivare som har vissa värden som:
- cwd - Representerar den aktuella arbetskatalogen.
- rtd - Visar rotkatalogen
- Text - Används för programkod och textdata
- mem - Används för minneskartad fil
- 1u - filbeskrivaren u för läs- och skrivläge, w för skrivläge och r används för läsläge.
TYP-kolumnen innehåller alla filer och identifieringar med hjälp av nyckelord. DIR betyder katalog. REG representerar den vanliga filen. CHR används för teckenfiler. FIFO betyder First In First Out.
Lista användarspecifika filer med LSOF-kommandot
Om vi till exempel vill lista alla öppnade filer med användarnamn kbuzdar kan du göra följande med hjälp av följande kommando:
$ sudo lsof -u kbuzdar
Sökprocesser som arbetar på en viss port
Du kan söka i dessa filer eller bearbeta filer som körs på ett visst portnummer. För detta ändamål behöver du bara använda följande kommando med -i-alternativet och ange ett specifikt portnummer.
# lsof -i TCP: 22Om du vill lista alla öppna filer som kör processer i TCP Port som sträcker sig mellan 1-1024, kör du nedanstående kommando:
# lsof -i TCP: 1-1024Visa öppna filer Endast för IPv4 och IPv6
Till exempel vill du bara visa IPv4- och IPv6-nätverksfiler. Kör följande kommando för att öppna filer för IPV4 i terminalfönstret:
# lsof -i 4Använd följande kommando för IPV6:
# lsof -i 6Visa filer genom att exkludera specifika användare
Om du vill utesluta en root-användare kan du utesluta en root-användare genom att använda tecknet '^' med kommandot som visas i nedanstående skärmdump:
# lsof -i -u ^ root
Du kan utesluta en specifik användare genom att använda deras namn.
Visa alla nätverksanslutningar med kommandot lsof
Skriv följande lsof-kommando med alternativ -i för att visa listan över alla nätverksanslutningar:
# lsof -i
Sökprocess med PID
I följande exempel visas bara de filer eller processer vars PID är 2 [två].
# lsof -p 2
Döda särskilda användaraktiviteter
Ibland kan du behöva specifika användarprocesser. I det här fallet kan du genom att utföra följande kommando döda alla processer för 'kbuzdar' -användaren.
# kill -9 'lsof -t -u kbuzdar'
Slutsats
I den här artikeln har vi sett hur man använder lsof-kommandot på Linux-systemet. Vi har implementerat olika exempel för en bättre förståelse av lsof-kommandot. Det är inte möjligt att utarbeta alla tillgängliga alternativ men du kan utforska mansidan för kommandot lsof för att få mer information om det här kommandot. Dela med oss din feedback via kommentarer.