W systemie Linux najpopularniejszym poleceniem jest LSOF, w skrócie listy plik otwartego. To polecenie pokazuje informacje o plikach otwartych w twoim systemie. Innymi prostymi słowami możemy wyjaśnić, że polecenie LSOF dostarcza informacji o plikach, które są otwarte. Po prostu wymienia otwarte pliki na konsoli wyjściowej. Wymienia katalog, udostępnioną bibliotekę, blokowy plik specjalny, zwykła rura, gniazdo internetowe, plik specjalny znak, gniazdo domeny unix i inne inne. Polecenie LSOF można użyć do łączenia z poleceniem GREP, aby wykonać bardziej zaawansowane funkcje do listów i wyszukiwania.
Ten artykuł da ci podstawowe zrozumienie polecenia LSOF. Ponadto zbadasz, jak używać tego polecenia w środowisku Linux.
Wymagania wstępne
Musisz zalogować się jako użytkownik root w swoim systemie lub mieć prywatne polecenia sudo.
Wykonaliśmy wszystkie zadanie na Ubuntu 20.04 System, który jest wspomniany poniżej:
Wymień otwórz pliki za pomocą polecenia LSOF
Możesz wymienić wszystkie otwarte pliki z pełnym opisem za pomocą polecenia LSOF.
# lsof
Na przykład tutaj wymieniliśmy niektóre otwarte pliki, aby uzyskać lepsze zrozumienie. Na poniższym zrzucie ekranu zobaczysz informacje w formie kolumn takich jak polecenie, PID, użytkownik, FD, typ itp.
Wyjaśnijmy każdy termin jeden po drugim. W pierwszej kolumnie zobaczysz, że polecenie jest używane dla nazwy polecenia. PID pokazuje identyfikator procesu. W kolumnie o nazwie użytkownik zobaczysz typ lub nazwa roli użytkownika. Powyższe wartości na obrazie są oczywiste. Jednak przejrzymy kolumny typu i FD.
FD jest używany dla deskryptora pliku, który ma pewne wartości jako:
Kolumna typu zawiera wszystkie pliki i identyfikacje za pomocą słów kluczowych. DIR DIRECTORY. Reg reprezentuje zwykły plik. CHR jest używany do plików specjalnych znaków. FIFO oznacza pierwszy w pierwszym wyjściu.
Wymień pliki specyficzne dla użytkownika za pomocą polecenia LSOF
Na przykład, jeśli chcemy wymienić wszystkie otwarte pliki nazwy użytkownika KBUZDAR, używając następującego polecenia, możesz to zrobić:
$ sudo lsof -u kbuzdar
Procesy wyszukiwania pracujące na określonym porcie
Możesz wyszukiwać te pliki lub procesy uruchomione na określonym numerze portu. W tym celu wystarczy użyć następującego polecenia z opcją -i i wprowadzić określony numer portu.
# lsof -i tcp: 22
Jeśli chcesz wymienić wszystkie otwarte pliki uruchomione procesy portu TCP, który rozciąga się między 1-1024, wykonaj poniższe polecenie:
# lsof -i tcp: 1-1024
Wyświetl otwarte pliki tylko dla IPv4 i IPv6
Na przykład chcesz wyświetlać tylko pliki sieciowe IPv4 i IPv6. Uruchom następujące polecenie, aby otworzyć pliki dla IPv4 w oknie terminalu:
# lsof -i 4
W przypadku IPv6 użyj następującego polecenia:
# lsof -i 6
Wyświetl pliki, wykluczając określonych użytkowników
Jeśli chcesz wykluczyć użytkownika root, możesz wykluczyć użytkownika root za pomocą znaku „^” z poleceniem, który jest pokazany na poniższym zrzucie ekranu:
# lsof -i -u^root
Możesz wykluczyć konkretnego użytkownika, używając jego nazwy.
# lsof -i -u^kbuzdar
Wyświetl wszystkie połączenia sieciowe za pomocą polecenia LSOF
Wpisz następujące polecenie LSOF z opcją -i, aby wyświetlić listę wszystkich połączeń sieciowych:
# lsof -i
Proces wyszukiwania przez PID
W poniższym przykładzie pokazuje tylko te pliki lub procesy, których PID to 2 [dwa].
# lsof -p 2
Zabij określone działania użytkownika
Czasami możesz potrzebować określonych procesów użytkownika. W takim przypadku, wykonując następujące polecenie, możesz zabić wszystkie procesy użytkownika „KBUZDAR”.
# Kill -9 'lsof -t -u kbuzdar'
Wniosek
W tym artykule widzieliśmy, jak używać polecenia LSOF w systemie Linux. Wdrożyliśmy różne przykłady lepszego zrozumienia polecenia LSOF. Nie można opracować wszystkich dostępnych opcji, ale możesz zbadać stronę Man LSOF Command, aby uzyskać więcej o tym poleceniu. Podziel się z nami swoją opinią za pośrednictwem komentarzy.