lsof命令常見引數說明

2021-06-19 02:26:51 字數 3330 閱讀 9092

lsof全名list opened files,也就是列舉系統中已經被開啟的檔案。我們都知道,linux環境中,任何事物都是檔案,裝置是檔案,目錄是檔案,甚至sockets也是文 件。所以,用好lsof命令,對日常的linux管理非常有幫助。以下的說明,大部分內容來自lsof的manual文件。我所做的只是在中文翻譯的基礎 上,進行簡單的分類說明,並列舉最常用的引數。

一、輸出說明

lsof是linux最常用的命令之一,通常的輸出格式為:

引 用command     pid   user   fd      type     device     size       node name

常見包括如下幾個字段:更多的可見manual。

1、command

預設以9個字元長度顯示的命令名 稱。可使用+c引數指定顯示的寬度,若+c後跟的引數為零,則顯示命令的全名

2、pid:程序的id號

3、ppid

父程序的ip 號,預設不顯示,當使用-r引數可開啟。

4、pgid

程序組的id編號,預設也不會顯示,當使用-g引數時可開啟。

5、user

命 令的執行uid或系統中登陸的使用者名稱。預設顯示為使用者名稱,當使用-l引數時,可顯示uid。

6、fd

是檔案的file descriptor number,或者如下的內容:

(這裡很難翻譯對應的意思,保留英文)

引用cwd  current working directory;

lnn  library references (aix);

jld  jail directory (freebsd);

ltx  shared library text (code and data);

pd   parent directory;

rtd  root directory;

tr   kernel trace file (openbsd);

txt  program text (code and data);

檔案的file descriptor number顯示模式有:

引用r for read access;

w for write access;

u for read and write access;

n for a solaris nfs lock of unknown type;

r for read lock on part of the file;

r for a read lock on the entire file;

w for a write lock on part of the file;

w for a write lock on the entire file;

u for a read and write lock of any length;

u for a lock of unknown type;

x for an sco openserver xenix lock on part  of the file;

x  for an sco openserver xenix lock on the entire file;

space if there is no lock.

7、type

引用ipv4 ipv4的包;

ipv6 使用ipv6格式的包,即使位址是ipv4的,也會顯示為ipv6,而對映到ipv6的位址;

dir 目錄

link 鏈結檔案

詳情請看manual中更多的注釋。

8、device

使用character special、block special表示的裝置號

9、size

檔案的大小,如果不能用大小表示的,會留空。使用-s引數控制。

10、node

本 地檔案的node碼,或者協議,如tcp等

11、name

二、引數

1、不帶額外引數執行

lsof path/filename

顯示已開啟該目錄或檔案的所 有程序資訊

顯示指定命令的資訊

2、參見引數

-c w 顯示以w開頭命令的已開啟檔案的資訊

lsof -c sshd

-p pid 顯示指定pid已開啟檔案的資訊

lsof -p 4401

+d dir 依照資料夾dir來搜尋,但不會開啟子目錄

lsof +d /root

+d dir 開啟dir資料夾以及其子目錄搜尋

lsof +d /root/

-d s 以fd列的資訊進行匹配,可使用3-10,表示範圍,3,10表示某些值

lsof -d 3-10

-u 顯示某使用者的已經開啟的檔案(或該使用者執行程式已經開啟的檔案)

lsof -u root

lsof -u 0

◎可配合正 規表示式使用

表示不包括root使用者的資訊:

lsof -u ^root

-i 監聽指定的協議、埠、主機等的網路資訊,格式為:

引用[46][proto][@host|addr][:svc_list|port_list]

例 如:

lsof -i [email protected]

lsof -i:22

還可以使用一些引數控制顯示結果:

引 用-l 禁止將userid轉換為登陸名稱,即顯示uid

-n 禁止將ip位址轉換為hostname主機檔案

-p 不顯示埠名稱

-g s 從pgid列進行匹配

lsof -g 3-10

3、其他引數

+f 所有路徑引數都必須是檔案系統,否則不能執行

-f 所有路徑引數都將作為普通的檔案,例如:"-f -- /"中的/,只會匹配單個/路徑,而不會是根目錄中的所有檔案

+f和-f後都應加上「--」表終結符:

lsof -f -- /

+l/-l 開啟或關閉檔案的鏈結數計算,當+l沒有指定時,所有的鏈結數都會顯示(預設);若+l後指定數字,則只要鏈結數小於該數字的資訊會顯示;鏈結數會顯示在 nlink列。

例如:+l1將顯示沒有unlinked的檔案資訊;+al1,則顯示指定檔案系統所有unlinked的檔案資訊

-l 預設引數,其後不能跟數字,將不顯示鏈結數資訊

lsof +l1

-t 僅列印程序,方便shell指令碼呼叫

lsof -t -c sshd

-f 指定輸出那個列,可通過lsof -f?檢視

-r 不斷執行lsof命令,預設每15秒間隔執行一次

+r 也是不斷執行lsof命令,但直到沒有接受到檔案資訊,則停止

gcc常見引數說明

1.gcc包含的c c 編譯器 gcc,cc,c g gcc和cc是一樣的,c 和g 是一樣的。一般c程式就用gcc編譯,c 程式就用g 編譯。2.gcc的基本用法 gcc test.c這樣將編譯出乙個名為a.out的程式 gcc test.c o test這樣將編譯出乙個名為test的程式,o引數...

shell if 命令引數說明

b 當file存在並且是塊檔案時返回真 c 當file存在並且是字元檔案時返回真 d 當pathname存在並且是乙個目錄時返回真 e 當pathname指定的檔案或目錄存在時返回真 f 當file存在並且是正規檔案時返回真 g 當由pathname指定的檔案或目錄存在並且設定了sgid位時返回為真...

crunch命令引數說明

命令引數說明 b 按大小分割字典檔案,比如後跟20mib c 密碼個數 行數 比如8000 d 限制出現相同元素的個數 至少出現元素個數 d 3就不會出現zzfffffgggg之類的 e 定義停止生成密碼 比如 e 222222 到222222停止生成密碼 f 呼叫密碼庫檔案,比如 usr shar...