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...