V sistemu Linux je najbolj priljubljen ukaz LSOF, okrajšan za seznam odprtih datotek. Ta ukaz prikazuje informacije o datotekah, odprtih v vašem sistemu. Z drugimi preprostimi besedami lahko razložimo, da ukaz LSOF ponuja informacije o datotekah, ki se odprejo v katerem procesu. Preprosto navede odprte datoteke na izhodni konzoli. V njem so navedeni imenik, knjižnica v skupni rabi, posebna datoteka bloka, običajna cev, internetna vtičnica, posebna datoteka znakov, vtičnica domene Unix in še več. Ukaz Lsof lahko uporabite za kombiniranje z ukazom grep za naprednejše funkcije za uvrstitev na seznam in iskanje.
Ta članek vam bo dal osnovno razumevanje ukaza LSOF. Poleg tega boste raziskali, kako uporabljati ta ukaz v okolju Linux.
Predpogoji
V svoj sistem se morate prijaviti kot korenski uporabnik ali imeti privillages ukaza sudo.
Vse naloge smo opravili na Ubuntu 20.04, ki je omenjen spodaj:
Seznam odprtih datotek navedite z ukazom LSOF
Vse odprte datoteke s popolnim opisom lahko navedete z ukazom LSOF.
# tudif
Tu smo na primer našteli nekaj odprtih datotek za vaše boljše razumevanje. Na spodnjem posnetku zaslona boste videli informacije v obliki stolpcev, kot so Command, PID, USER, FD, TYPE itd.
Pojasnimo vsak izraz posebej. V prvem stolpcu boste videli, da se za ime ukaza uporablja ukaz. PID prikazuje ID procesa. Pod stolpcem z imenom USER boste videli vrsto ali ime uporabniške vloge. Zgornje prikazane vrednosti na sliki so samoumevne. Vendar bomo pregledali stolpca TYPE in FD.
FD se uporablja za deskriptor datoteke, ki ima nekatere vrednosti kot:
- cwd - Predstavlja trenutni delovni imenik.
- rtd - Prikaže korenski imenik
- txt - Uporablja se za programsko kodo in besedilne podatke
- mem - Uporablja se za pomnilniško datoteko
- 1u - deskriptor datoteke u za način branja in pisanja, w za način pisanja in r, ki se uporablja za način branja.
Stolpec TIP vsebuje vse datoteke in identifikacije z uporabo ključnih besed. DIR pomeni imenik. REG predstavlja običajno datoteko. CHR se uporablja za posebne datoteke z znaki. FIFO pomeni First In First Out.
Z ukazom LSOF navedite uporabniško določene datoteke
Če želimo na primer našteti vse odprte datoteke z uporabniškim imenom kbuzdar, lahko z naslednjim ukazom to storite:
$ sudo lsof -u kbuzdar
Iskalni procesi, ki delujejo na določenih vratih
V teh datotekah lahko iščete ali obdelate tiste, ki se izvajajo na določeni številki vrat. V ta namen morate uporabiti naslednji ukaz z možnostjo -i in vnesti določeno številko vrat.
# lsof -i TCP: 22Če želite našteti vse odprte datoteke, ki izvajajo procese vrat TCP, ki se gibljejo med 1-1024, potem izvedite spodnji ukaz:
# lsof -i TCP: 1-1024Prikaži odprte datoteke samo za IPv4 in IPv6
Na primer, želite prikazati samo omrežne datoteke IPv4 in IPv6. Zaženite naslednji ukaz, da v oknu terminala odprete datoteke za IPV4:
# lsof -i 4Za IPV6 uporabite naslednji ukaz:
# lsof -i 6Prikažite datoteke tako, da izključite določene uporabnike
Če želite izključiti korenskega uporabnika, ga lahko izključite z uporabo znaka '^' z ukazom, ki je prikazan na spodnjem posnetku zaslona:
# lsof -i -u ^ root
Določenega uporabnika lahko izključite z uporabo njegovega imena.
Z ukazom lsof prikažite vse omrežne povezave
Za prikaz seznama vseh omrežnih povezav vnesite naslednji ukaz lsof z možnostjo -i:
# lsof -i
Postopek iskanja po PID
V naslednjem primeru so prikazane samo tiste datoteke ali procesi, katerih PID je 2 [dva].
# lsof -p 2
Ubijte določene dejavnosti uporabnikov
Včasih boste morda potrebovali določene uporabniške procese. V tem primeru lahko z izvajanjem naslednjega ukaza ubijete vse procese uporabnika 'kbuzdar'.
# kill -9 'lsof -t -u kbuzdar'
Zaključek
V tem članku smo videli, kako uporabiti ukaz lsof v sistemu Linux. Uvedli smo različne primere za boljše razumevanje ukaza lsof. Vseh razpoložljivih možnosti ni mogoče podrobneje opisati, vendar lahko za več informacij o tem ukazu raziščete priročno stran ukaza lsof. Delite z nami svoje povratne informacije prek komentarjev.