實用的系統工具之 lsof

2021-09-23 16:41:51 字數 4035 閱讀 1234

只需輸入 lsof 就可以生成大量的資訊,因為 lsof 需要訪問核心記憶體和各種 檔案,所以必須以 root 使用者的身份執行它才能夠充分地發揮其功能。

lsof 的示例輸出:

root@ylinux:~/lab 0# lsof

command pid tid user fd type device size/off node name

systemd 1 root cwd dir 8,6 4096 2 /

systemd 1 root rtd dir 8,6 4096 2 /

systemd 1 root txt reg 8,6 2273340 1834909 /usr/lib/systemd/systemd

systemd 1 root mem reg 8,6 210473 1700647 /lib/libnss_files-2.15.s

...

檢視檔案被哪些程序占用

# lsof /dev/tty1

command pid user fd type device size/off node name

bash 1770 jian 0u chr 4,1 0t0 1045 /dev/tty1

bash 1770 jian 1u chr 4,1 0t0 1045 /dev/tty1

bash 1770 jian 2u chr 4,1 0t0 1045 /dev/tty1

bash 1770 jian 255u chr 4,1 0t0 1045 /dev/tty1

startx 1845 jian 0u chr 4,1 0t0 1045 /dev/tty1

startx 1845 jian 1u chr 4,1 0t0 1045 /dev/tty1

...

指定目錄,可以看到有哪些程序開啟了其下的檔案:

# lsof /data/

command pid user fd type device size/off node name

bash 15983 jian cwd dir 8,5 4096 8252 /data/backup

...

這在 umount 某個檔案系統失敗時非常有用。

指定程序號,可以檢視該程序開啟的檔案:

# lsof -p 2064

command pid user fd type device size/off node name

firefox 2064 jian cwd dir 8,6 4096 1571780 /home/jian

firefox 2064 jian rtd dir 8,6 4096 2 /

firefox 2064 jian txt reg 8,6 44224 1985670 /usr/lib/firefox-12.0/firefox

firefox 2064 jian mem reg 8,6 14707012 925361 /usr/share/fonts/chinese/msyhbd.ttf

firefox 2064 jian mem reg 8,6 15067744 925362 /usr/share/fonts/chinese/msyh.ttf

firefox 2064 jian mem reg 8,6 16791251 1701681 /usr/share/fonts/wenquanyi/wqy-zenhei.ttc

firefox 2064 jian mem reg 0,16 67108904 10203 /dev/shm/pulse-shm-3021850167

...

檢視指定埠有哪些程序在使用:

# lsof -i:22

command pid user fd type device size/off node name

sshd 1569 root 3u ipv4 10303 0t0 tcp *:ssh (listen)

sshd 1569 root 4u ipv6 10305 0t0 tcp *:ssh (listen)

...

檢視指定網口有哪些程序在使用:

...檢視指定使用者開啟的檔案:

# lsof -u messagebus

command pid user fd type device size/off node name

dbus-daem 1805 messagebus cwd dir 8,6 4096 2 /

dbus-daem 1805 messagebus rtd dir 8,6 4096 2 /

dbus-daem 1805 messagebus txt reg 8,6 1235361 1834948 /usr/bin/dbus-daemon

dbus-daem 1805 messagebus mem reg 8,6 210473 1700647 /lib/libnss_files-2.15.so

dbus-daem 1805 messagebus mem reg 8,6 190145 1700642 /lib/libnss_nis-2.15.so

dbus-daem 1805 messagebus mem reg 8,6 490366 1700636 /lib/libnsl-2.15.so

...

檢視指定程式開啟的檔案:

# lsof -c firefox

command pid user fd type device size/off node name

firefox 2064 jian cwd dir 8,6 4096 1571780 /home/jian

firefox 2064 jian rtd dir 8,6 4096 2 /

firefox 2064 jian txt reg 8,6 44224 1985670 /usr/lib/firefox-12.0/firefox

firefox 2064 jian mem reg 8,6 14707012 925361 /usr/share/fonts/chinese/msyhbd.ttf

firefox 2064 jian mem reg 8,6 15067744 925362 /usr/share/fonts/chinese/msyh.ttf

firefox 2064 jian mem reg 8,6 16791251 1701681 /usr/share/fonts/wenquanyi/wqy-zenhei.ttc

...

只有多個查詢條件都滿足, 用 "-a" 引數。

# lsof -a -c bash -u root

command pid user fd type device size/off node name

bash 1986 root cwd dir 8,6 4096 1701593 /root/lab

bash 1986 root rtd dir 8,6 4096 2 /

bash 1986 root txt reg 8,6 1994157 1700632 /bin/bash

bash 1986 root mem reg 8,6 9690800 405214 /usr/lib/locale/locale-archive

bash 1986 root mem reg 8,6 210473 1700647 /lib/libnss_files-2.15.so

原文發布時間為:2013-08-19

Linux之lsof的用法

lsof list open files 是乙個列出當前系統開啟檔案的工具。在linux環境下,任何事物都以檔案的形式存在,通過檔案不僅僅可以訪問常規資料,還可以訪問網路連線和硬體。所以如傳輸控制協議 tcp 和使用者資料報協議 udp 套接字等,系統在後台都為該應用程式分配了乙個檔案描述符,無論這...

實用的工具

並開啟 snipaste,按下 f1 來開始截圖,再按 f3,截圖就在桌面置頂顯示 了。就這麼簡單!你還可以將剪貼簿裡的文字或者顏色資訊轉化為視窗,並且將它們進行縮 放 旋轉 翻轉 設為半透明,甚至讓滑鼠能穿透它們!如果你是程式設計師 設計 師,或者是大部分工作時間都在電腦前,貼圖功能將改變你的工作...

Windows系統實用工具集

監視類 cpumon v2.0 cpu效能監視工具。可以獲取cpu計數器資訊。該版本整合了perfmon。debugview v4.31 擷取win32裝置驅動程式發出的訊息,允許通過本機或網路檢視和錄製除錯資訊而不開啟乙個活動的偵錯程式。diskmon v2.01 顯示硬碟的活動資訊。filemo...