Đây là loạt lệnh Linux đang diễn ra của chúng tôi và trong bài viết này, chúng tôi sẽ xem xét lsof lệnh với các ví dụ thực tế. lsof Ý nghĩa ‘Tập tin Mở LiSt’ được sử dụng để tìm ra tệp nào được mở bởi quá trình nào.

Như chúng ta biết Linux / Unix coi mọi thứ như một tệp (đường ống, ổ cắm, thư mục, thiết bị, Vân vân). Một trong những lý do để sử dụng lsof lệnh là khi không thể tháo ổ đĩa vì nó cho biết các tệp đang được sử dụng. Với sự trợ giúp của lệnh này, chúng tôi có thể dễ dàng xác định các tệp đang được sử dụng.

ví dụ lệnh lsof
10 Ví dụ về lệnh lsof Linux

1. Liệt kê tất cả các tệp đang mở bằng lệnh lsof

Trong ví dụ dưới đây, nó sẽ hiển thị một danh sách dài các tệp đang mở, một số tệp được trích xuất để hiểu rõ hơn, hiển thị các cột như Yêu cầu, PID, NGƯỜI DÙNG, FD, LOẠI, Vân vân.

# 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

Các phần và giá trị của chúng tự giải thích. Tuy nhiên, chúng tôi sẽ xem xét FD & LOẠI chính xác hơn.

FD – là viết tắt của bộ mô tả Tệp và có thể thấy một số giá trị như:

  • cwd thư mục làm việc hiện tại
  • rtd thư mục gốc
  • txt văn bản chương trình (mã và dữ liệu)
  • mem tệp ánh xạ bộ nhớ

Cũng trong FD cột số như 1u là bộ mô tả tệp thực tế và theo sau là u,r,w chế độ của nó như:

  • r để đọc quyền truy cập.
  • w cho quyền ghi.
  • u cho quyền truy cập đọc và ghi.
See also  10 lệnh “IP” hữu ích để định cấu hình giao diện mạng

LOẠI – trong số các tệp và nhận dạng của nó.

  • DIR – Danh mục
  • ĐĂNG KÝ – Tệp thông thường
  • CHR – Kí tự đặc biệt tệp.
  • FIFO – Đến trước về trước

2. Liệt kê các tệp đã mở cụ thể của người dùng

Lệnh dưới đây sẽ hiển thị danh sách tất cả các tệp đã mở của người dùng 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

3. Tìm các quy trình đang chạy trên một cổng cụ thể

Để tìm hiểu tất cả các quy trình Linux đang chạy của một cổng cụ thể, chỉ cần sử dụng lệnh sau với tùy chọn -tôi. Ví dụ dưới đây sẽ liệt kê tất cả các quy trình đang chạy của cổng 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)

4. Chỉ liệt kê các tệp mở IPv4 & IPv6

Trong ví dụ dưới đây chỉ hiển thị IPv4IPv6 các tệp mạng mở bằng các lệnh riêng biệt.

# 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)

5. Liệt kê các tệp đang mở của phạm vi cổng TCP 1-1024

Để liệt kê tất cả quá trình đang chạy của các tệp đang mở của TCP Phạm vi cổng từ 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)

6. Loại trừ người dùng có ký tự ‘^’

Ở đây, chúng tôi đã loại trừ nguồn gốc người dùng. Bạn có thể loại trừ một người dùng cụ thể bằng cách sử dụng ‘^’ bằng lệnh như hình trên.

# 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)

7. Tìm hiểu xem ai đang xem tệp và lệnh nào?

Ví dụ dưới đây cho thấy người dùng tecmint đang sử dụng các lệnh như ping/Vân vân danh mục.

# 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

8. Liệt kê tất cả các kết nối mạng

Lệnh sau với tùy chọn ‘-tôi’ hiển thị danh sách tất cả các kết nối mạng ‘NGHE & THIẾT LẬP ‘.

# 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)

9. Tìm kiếm bằng PID

Ví dụ dưới đây chỉ hiển thị PID1 [One].

# 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

10. Giết tất cả hoạt động của người dùng cụ thể

Đôi khi bạn có thể phải tắt tất cả các quy trình cho một người dùng cụ thể. Lệnh dưới đây sẽ giết tất cả các quy trình của tecmint người dùng.

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

Ghi chú: Ở đây, không thể đưa ra các ví dụ về tất cả các tùy chọn có sẵn, hướng dẫn này chỉ để chỉ ra cách lsof lệnh có thể được sử dụng. Bạn có thể tham khảo trang người đàn ông của lsof lệnh để biết thêm về nó. Hãy chia sẻ nếu bạn thấy bài viết này hữu ích qua khung bình luận bên dưới của chúng tôi.

See also  10 Lệnh SCP để truyền tệp / thư mục trong Linux

By admin

Leave a Reply