ຕົວຢ່າງ ຄຳ ສັ່ງ 10 lsof ໃນ Linux
ນີ້ແມ່ນຊຸດຂອງ ຄຳ ສັ່ງ Linux ທີ່ ກຳ ລັງ ດຳ ເນີນຢູ່ຂອງພວກເຮົາແລະໃນບົດຄວາມນີ້ພວກເຮົາຈະທົບທວນ ຄຳ ສັ່ງ lsof ດ້ວຍຕົວຢ່າງທີ່ໃຊ້ໄດ້. ຄວາມ ໝາຍ ທີ່ວ່າ 'LiSt Open Files' ຖືກໃຊ້ເພື່ອຄົ້ນຫາວ່າມີເອກະສານໃດແດ່ທີ່ເປີດໃຊ້ໂດຍຂະບວນການໃດ. ດັ່ງທີ່ພວກເຮົາທຸກຄົນຮູ້ວ່າ Linux/Unix ຖືວ່າທຸກສິ່ງທຸກຢ່າງແມ່ນແຟ້ມເອກະສານ (ທໍ່, ເຕົ້າ, ປ່ອງ, ໄດເລກະທໍລີ, ອຸປະກອນແລະອື່ນໆ). ຫນຶ່ງໃນເຫດຜົນທີ່ຈະໃຊ້ ຄຳ ສັ່ງ lsof ແມ່ນເມື່ອແຜ່ນບໍ່ສາມາດຖອດໄດ້ຍ້ອນວ່າມັນບອກວ່າໄຟລ໌ ກຳ ລັງຖືກໃຊ້ຢູ່. ດ້ວຍຄວາມຊ່ອຍເຫລືອຂອງ ຄຳ ສັ່ງນີ້ພວກເຮົາສາມາດລະບຸໄຟລ໌ທີ່ ກຳ ລັງໃຊ້ງານໄດ້ງ່າຍ.
ໃນຕົວຢ່າງຂ້າງລຸ່ມນີ້, ມັນຈະສະແດງລາຍຊື່ເອກະສານເປີດຍາວໆບາງສ່ວນຂອງພວກມັນຖືກສະກັດເອົາເພື່ອຄວາມເຂົ້າໃຈດີຂື້ນເຊິ່ງສະແດງຄໍ ລຳ ເຊັ່ນ Command, PID, USER, FD, TYPE ແລະອື່ນໆ.
# 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 - ຫຍໍ້ມາຈາກ File descriptor ແລະອາດຈະເຫັນຄຸນຄ່າບາງຢ່າງຄື:
<
ໃນຕົວເລກຖັນ FD ເຊັ່ນ 1u ແມ່ນເຄື່ອງບັນທຶກເອກະສານຕົວຈິງແລະຕິດຕາມດ້ວຍ u, r, w ຂອງຮູບແບບຂອງມັນຄື:
<
ປະເພດ - ຂອງແຟ້ມແລະມັນແມ່ນການ ກຳ ນົດ.
<
ຄໍາສັ່ງຂ້າງລຸ່ມນີ້ຈະສະແດງບັນຊີລາຍຊື່ຂອງແຟ້ມທີ່ເປີດທັງ ໝົດ ຂອງ 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
ເພື່ອຊອກຫາທຸກຂັ້ນຕອນການເຮັດວຽກຂອງພອດສະເພາະ, ພຽງແຕ່ໃຊ້ ຄຳ ສັ່ງຕໍ່ໄປນີ້ກັບຕົວເລືອກ -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 ເທົ່ານັ້ນທີ່ເປີດດ້ວຍ ຄຳ ສັ່ງແຍກຕ່າງຫາກ.
# 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)
ເພື່ອລາຍຊື່ທຸກຂັ້ນຕອນທີ່ ກຳ ລັງແລ່ນຂອງແຟ້ມທີ່ເປີດຂອງພອດ TCP ຕັ້ງແຕ່ 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 directory.
# 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' ສະແດງລາຍຊື່ຂອງການເຊື່ອມຕໍ່ເຄືອຂ່າຍທັງ ໝົດ 'ການຟັງ & ການສ້າງຕັ້ງ'.
# 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
ບາງຄັ້ງທ່ານອາດຈະຕ້ອງຂ້າທຸກຂັ້ນຕອນ ສຳ ລັບຜູ້ໃຊ້ສະເພາະ. ຄໍາສັ່ງຂ້າງລຸ່ມນີ້ຈະຂ້າທຸກຂະບວນການຂອງຜູ້ໃຊ້ tecmint.
# kill -9 `lsof -t -u tecmint`
ໝາຍ ເຫດ: ນີ້ມັນບໍ່ສາມາດຍົກຕົວຢ່າງຂອງຕົວເລືອກທີ່ມີຢູ່ທັງ ໝົດ, ຄຳ ແນະ ນຳ ນີ້ແມ່ນພຽງແຕ່ສະແດງວິທີການໃຊ້ ຄຳ ສັ່ງ lsof. ທ່ານອາດຈະອ້າງເຖິງ ໜ້າ man ຂອງ ຄຳ ສັ່ງ lsof ເພື່ອຈະຮູ້ກ່ຽວກັບມັນ. ກະລຸນາແບ່ງປັນມັນຖ້າທ່ານເຫັນວ່າບົດຂຽນນີ້ມີປະໂຫຍດຜ່ານກ່ອງ ຄຳ ເຫັນຂອງພວກເຮົາຂ້າງລຸ່ມນີ້.