Linux-ലെ 10 lsof കമാൻഡ് ഉദാഹരണങ്ങൾ


ഇതാണ് ഞങ്ങളുടെ നിലവിലുള്ള Linux കമാൻഡുകളുടെ പരമ്പര, ഈ ലേഖനത്തിൽ, പ്രായോഗിക ഉദാഹരണങ്ങൾ ഉപയോഗിച്ച് ഞങ്ങൾ lsof കമാൻഡ് അവലോകനം ചെയ്യാൻ പോകുന്നു. lsof എന്നർത്ഥം 'ലിസ്റ്റ് ഓപ്പൺ ഫയലുകൾ' എന്നത് ഏത് പ്രക്രിയയിലൂടെ ഏത് ഫയലുകളാണ് തുറന്നിരിക്കുന്നതെന്ന് കണ്ടെത്താൻ ഉപയോഗിക്കുന്നു.

നമുക്കെല്ലാവർക്കും അറിയാവുന്നതുപോലെ, Linux/Unix എല്ലാം ഒരു ഫയലായി കണക്കാക്കുന്നു (പൈപ്പുകൾ, സോക്കറ്റുകൾ, ഡയറക്ടറികൾ, ഉപകരണങ്ങൾ മുതലായവ). lsof കമാൻഡ് ഉപയോഗിക്കുന്നതിനുള്ള ഒരു കാരണം, ഫയലുകൾ ഉപയോഗിക്കുന്നുണ്ടെന്ന് പറയുന്നതിനാൽ ഒരു ഡിസ്ക് അൺമൗണ്ട് ചെയ്യാൻ കഴിയാത്തതാണ്. ഈ കമാൻഡിന്റെ സഹായത്തോടെ, ഉപയോഗത്തിലുള്ള ഫയലുകൾ നമുക്ക് എളുപ്പത്തിൽ തിരിച്ചറിയാൻ കഴിയും.

ചുവടെയുള്ള ഉദാഹരണത്തിൽ, കമാൻഡ്, PID, USER, FD, TYPE മുതലായവ പോലുള്ള നിരകൾ പ്രദർശിപ്പിക്കുന്ന മികച്ച ധാരണയ്ക്കായി അവയിൽ ചിലത് എക്uസ്uട്രാക്uറ്റുചെയ്uത തുറന്ന ഫയലുകളുടെ ഒരു നീണ്ട ലിസ്റ്റിംഗ് കാണിക്കും.

# lsof

COMMAND    PID      USER   FD      TYPE     DEVICE  SIZE/OFF       NODE NAME
init         1      root  cwd      DIR      253,0      4096          2 /
init         1      root  rtd      DIR      253,0      4096          2 /
init         1      root  txt      REG      253,0    145180     147164 /sbin/init
init         1      root  mem      REG      253,0   1889704     190149 /lib/libc-2.12.so
init         1      root   0u      CHR        1,3       0t0       3764 /dev/null
init         1      root   1u      CHR        1,3       0t0       3764 /dev/null
init         1      root   2u      CHR        1,3       0t0       3764 /dev/null
init         1      root   3r     FIFO        0,8       0t0       8449 pipe
init         1      root   4w     FIFO       0,8       0t0       8449 pipe
init         1      root   5r      DIR       0,10         0          1 inotify
init         1      root   6r      DIR       0,10         0          1 inotify
init         1      root   7u     unix 0xc1513880       0t0       8450 socket

വിഭാഗങ്ങളും അവയുടെ മൂല്യങ്ങളും സ്വയം വിശദീകരിക്കുന്നതാണ്. എന്നിരുന്നാലും, ഞങ്ങൾ FD & TYPE കോളങ്ങൾ കൂടുതൽ കൃത്യമായി അവലോകനം ചെയ്യും.

FD - ഒരു ഫയൽ ഡിസ്ക്രിപ്റ്ററിനെ സൂചിപ്പിക്കുന്നു, കൂടാതെ ചില മൂല്യങ്ങൾ ഇങ്ങനെ കാണാനിടയുണ്ട്:

  • cwd കറന്റ് വർക്കിംഗ് ഡയറക്uടറി
  • rtd റൂട്ട് ഡയറക്uടറി
  • txt പ്രോഗ്രാം ടെക്സ്റ്റ് (കോഡും ഡാറ്റയും)
  • mem മെമ്മറി-മാപ്പ് ചെയ്ത ഫയൽ

1u പോലെയുള്ള FD കോളം നമ്പറുകളിലും യഥാർത്ഥ ഫയൽ ഡിസ്ക്രിപ്റ്റർ ആണ്, തുടർന്ന് അതിന്റെ മോഡിന്റെ u,r,w എന്നിവ ഇങ്ങനെയാണ്:

  • വായന ആക്uസസ്സിനുള്ള R.
  • എഴുതാനുള്ള ആക്uസസിനായി w.
  • വായിക്കാനും എഴുതാനുമുള്ള ആക്uസസ്സ്.

ടൈപ്പ് - ഫയലുകളുടെ ഐഡന്റിഫിക്കേഷൻ.

  • DIR - ഡയറക്ടറി
  • REG – റെഗുലർ ഫയൽ
  • CHR - പ്രതീക പ്രത്യേക ഫയൽ.
  • FIFO - ഫസ്റ്റ് ഇൻ ഫസ്റ്റ് ഔട്ട്

താഴെയുള്ള കമാൻഡ് ഉപയോക്തൃ tecmint-ന്റെ എല്ലാ തുറന്ന ഫയലുകളുടെയും ലിസ്റ്റ് പ്രദർശിപ്പിക്കും.

# lsof -u tecmint

COMMAND  PID    USER   FD   TYPE     DEVICE SIZE/OFF   NODE NAME
sshd    1838 tecmint  cwd    DIR      253,0     4096      2 /
sshd    1838 tecmint  rtd    DIR      253,0     4096      2 /
sshd    1838 tecmint  txt    REG      253,0   532336 188129 /usr/sbin/sshd
sshd    1838 tecmint  mem    REG      253,0    19784 190237 /lib/libdl-2.12.so
sshd    1838 tecmint  mem    REG      253,0   122436 190247 /lib/libselinux.so.1
sshd    1838 tecmint  mem    REG      253,0   255968 190256 /lib/libgssapi_krb5.so.2.2
sshd    1838 tecmint  mem    REG      253,0   874580 190255 /lib/libkrb5.so.3.3

ഒരു നിർദ്ദിഷ്uട പോർട്ടിന്റെ പ്രവർത്തിക്കുന്ന എല്ലാ ലിനക്uസ് പ്രക്രിയകളും കണ്ടെത്തുന്നതിന്, -i എന്ന ഓപ്ഷനുള്ള ഇനിപ്പറയുന്ന കമാൻഡ് ഉപയോഗിക്കുക. താഴെയുള്ള ഉദാഹരണം പോർട്ട് 22-ന്റെ എല്ലാ പ്രവർത്തിക്കുന്ന പ്രക്രിയകളും ലിസ്റ്റ് ചെയ്യും.

# lsof -i TCP:22

COMMAND  PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd    1471    root    3u  IPv4  12683      0t0  TCP *:ssh (LISTEN)
sshd    1471    root    4u  IPv6  12685      0t0  TCP *:ssh (LISTEN)

താഴെയുള്ള ഉദാഹരണത്തിൽ IPv4, IPv6 നെറ്റ്uവർക്ക് ഫയലുകൾ മാത്രം പ്രത്യേക കമാൻഡുകൾ ഉപയോഗിച്ച് തുറക്കുന്നു.

# lsof -i 4

COMMAND    PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
rpcbind   1203     rpc    6u  IPv4  11326      0t0  UDP *:sunrpc
rpcbind   1203     rpc    7u  IPv4  11330      0t0  UDP *:954
rpcbind   1203     rpc    8u  IPv4  11331      0t0  TCP *:sunrpc (LISTEN)
avahi-dae 1241   avahi   13u  IPv4  11579      0t0  UDP *:mdns
avahi-dae 1241   avahi   14u  IPv4  11580      0t0  UDP *:58600

# lsof -i 6

COMMAND    PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
rpcbind   1203     rpc    9u  IPv6  11333      0t0  UDP *:sunrpc
rpcbind   1203     rpc   10u  IPv6  11335      0t0  UDP *:954
rpcbind   1203     rpc   11u  IPv6  11336      0t0  TCP *:sunrpc (LISTEN)
rpc.statd 1277 rpcuser   10u  IPv6  11858      0t0  UDP *:55800
rpc.statd 1277 rpcuser   11u  IPv6  11862      0t0  TCP *:56428 (LISTEN)
cupsd     1346    root    6u  IPv6  12112      0t0  TCP localhost:ipp (LISTEN)

1-1024 മുതൽ ടിസിപി പോർട്ടിന്റെ ഓപ്പൺ ഫയലുകളുടെ എല്ലാ പ്രവർത്തിക്കുന്ന പ്രക്രിയകളും ലിസ്റ്റ് ചെയ്യാൻ.

# lsof -i TCP:1-1024

COMMAND  PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
rpcbind 1203     rpc   11u  IPv6  11336      0t0  TCP *:sunrpc (LISTEN)
cupsd   1346    root    7u  IPv4  12113      0t0  TCP localhost:ipp (LISTEN)
sshd    1471    root    4u  IPv6  12685      0t0  TCP *:ssh (LISTEN)
master  1551    root   13u  IPv6  12898      0t0  TCP localhost:smtp (LISTEN)
sshd    1834    root    3r  IPv4  15101      0t0  TCP 192.168.0.2:ssh->192.168.0.1:conclave-cpp (ESTABLISHED)
sshd    1838 tecmint    3u  IPv4  15101      0t0  TCP 192.168.0.2:ssh->192.168.0.1:conclave-cpp (ESTABLISHED)
sshd    1871    root    3r  IPv4  15842      0t0  TCP 192.168.0.2:ssh->192.168.0.1:groove (ESTABLISHED)
httpd   1918    root    5u  IPv6  15991      0t0  TCP *:http (LISTEN)
httpd   1918    root    7u  IPv6  15995      0t0  TCP *:https (LISTEN)

ഇവിടെ, ഞങ്ങൾ റൂട്ട് ഉപയോക്താവിനെ ഒഴിവാക്കിയിരിക്കുന്നു. മുകളിൽ കാണിച്ചിരിക്കുന്നതുപോലെ കമാൻഡ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഒരു പ്രത്യേക ഉപയോക്താവിനെ '^' ഉപയോഗിച്ച് ഒഴിവാക്കാം.

# lsof -i -u^root

COMMAND    PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
rpcbind   1203     rpc    6u  IPv4  11326      0t0  UDP *:sunrpc
rpcbind   1203     rpc    7u  IPv4  11330      0t0  UDP *:954
rpcbind   1203     rpc    8u  IPv4  11331      0t0  TCP *:sunrpc (LISTEN)
rpcbind   1203     rpc    9u  IPv6  11333      0t0  UDP *:sunrpc
rpcbind   1203     rpc   10u  IPv6  11335      0t0  UDP *:954
rpcbind   1203     rpc   11u  IPv6  11336      0t0  TCP *:sunrpc (LISTEN)
avahi-dae 1241   avahi   13u  IPv4  11579      0t0  UDP *:mdns
avahi-dae 1241   avahi   14u  IPv4  11580      0t0  UDP *:58600
rpc.statd 1277 rpcuser    5r  IPv4  11836      0t0  UDP *:soap-beep
rpc.statd 1277 rpcuser    8u  IPv4  11850      0t0  UDP *:55146
rpc.statd 1277 rpcuser    9u  IPv4  11854      0t0  TCP *:32981 (LISTEN)
rpc.statd 1277 rpcuser   10u  IPv6  11858      0t0  UDP *:55800
rpc.statd 1277 rpcuser   11u  IPv6  11862      0t0  TCP *:56428 (LISTEN)

താഴെയുള്ള ഉദാഹരണം, ഉപയോക്താവ് tecmint, ping, /etc ഡയറക്ടറി പോലുള്ള കമാൻഡുകൾ ഉപയോഗിക്കുന്നുണ്ടെന്ന് കാണിക്കുന്നു.

# lsof -i -u tecmint

COMMAND  PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
bash    1839 tecmint  cwd    DIR  253,0    12288   15 /etc
ping    2525 tecmint  cwd    DIR  253,0    12288   15 /etc

'-i' ഓപ്ഷനുള്ള ഇനിപ്പറയുന്ന കമാൻഡ് എല്ലാ നെറ്റ്uവർക്ക് കണക്ഷനുകളുടെയും 'ലിസ്uറ്റനിംഗ് & എസ്റ്റാബ്ലിഷ്ഡ്' ലിസ്റ്റ് കാണിക്കുന്നു.

# lsof -i

COMMAND    PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
rpcbind   1203     rpc    6u  IPv4  11326      0t0  UDP *:sunrpc
rpcbind   1203     rpc    7u  IPv4  11330      0t0  UDP *:954
rpcbind   1203     rpc   11u  IPv6  11336      0t0  TCP *:sunrpc (LISTEN)
avahi-dae 1241   avahi   13u  IPv4  11579      0t0  UDP *:mdns
avahi-dae 1241   avahi   14u  IPv4  11580      0t0  UDP *:58600
rpc.statd 1277 rpcuser   11u  IPv6  11862      0t0  TCP *:56428 (LISTEN)
cupsd     1346    root    6u  IPv6  12112      0t0  TCP localhost:ipp (LISTEN)
cupsd     1346    root    7u  IPv4  12113      0t0  TCP localhost:ipp (LISTEN)
sshd      1471    root    3u  IPv4  12683      0t0  TCP *:ssh (LISTEN)
master    1551    root   12u  IPv4  12896      0t0  TCP localhost:smtp (LISTEN)
master    1551    root   13u  IPv6  12898      0t0  TCP localhost:smtp (LISTEN)
sshd      1834    root    3r  IPv4  15101      0t0  TCP 192.168.0.2:ssh->192.168.0.1:conclave-cpp (ESTABLISHED)
httpd     1918    root    5u  IPv6  15991      0t0  TCP *:http (LISTEN)
httpd     1918    root    7u  IPv6  15995      0t0  TCP *:https (LISTEN)
clock-app 2362   narad   21u  IPv4  22591      0t0  TCP 192.168.0.2:45284->www.gov.com:http (CLOSE_WAIT)
chrome    2377   narad   61u  IPv4  25862      0t0  TCP 192.168.0.2:33358->maa03s04-in-f3.1e100.net:http (ESTABLISHED)
chrome    2377   narad   80u  IPv4  25866      0t0  TCP 192.168.0.2:36405->bom03s01-in-f15.1e100.net:http (ESTABLISHED)

ചുവടെയുള്ള ഉദാഹരണം ആരുടെ PID 1 [ഒന്ന്] ആണെന്ന് കാണിക്കുന്നു.

# lsof -p 1

COMMAND PID USER   FD   TYPE     DEVICE SIZE/OFF   NODE NAME
init      1 root  cwd    DIR      253,0     4096      2 /
init      1 root  rtd    DIR      253,0     4096      2 /
init      1 root  txt    REG      253,0   145180 147164 /sbin/init
init      1 root  mem    REG      253,0  1889704 190149 /lib/libc-2.12.so
init      1 root  mem    REG      253,0   142472 189970 /lib/ld-2.12.so

ചില സമയങ്ങളിൽ നിങ്ങൾ ഒരു നിർദ്ദിഷ്uട ഉപയോക്താവിനായി എല്ലാ പ്രക്രിയകളും ഇല്ലാതാക്കേണ്ടി വന്നേക്കാം. താഴെയുള്ള കമാൻഡ് tecmint ഉപയോക്താവിന്റെ എല്ലാ പ്രക്രിയകളെയും നശിപ്പിക്കും.

# kill -9 `lsof -t -u tecmint`

ശ്രദ്ധിക്കുക: ഇവിടെ, ലഭ്യമായ എല്ലാ ഓപ്ഷനുകളുടെയും ഉദാഹരണങ്ങൾ നൽകുന്നത് സാധ്യമല്ല, ഈ ഗൈഡ് lsof കമാൻഡ് എങ്ങനെ ഉപയോഗിക്കാമെന്ന് കാണിക്കാൻ മാത്രമാണ്. ഇതിനെക്കുറിച്ച് കൂടുതലറിയാൻ നിങ്ങൾക്ക് lsof കമാൻഡിന്റെ മാൻ പേജ് റഫർ ചെയ്യാം. ചുവടെയുള്ള ഞങ്ങളുടെ കമന്റ് ബോക്സിലൂടെ ഈ ലേഖനം ഉപയോഗപ്രദമാണെന്ന് നിങ്ങൾ കണ്ടെത്തുകയാണെങ്കിൽ ദയവായി അത് പങ്കിടുക.