這篇文章給大家介紹如何入門Linux的命令神器lsof ,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
lsof是系統管理/安全的尤伯工具。我大多數時候用它來從系統獲得與網絡連接相關的信息,但那只是這個強大而又鮮為人知的應用的第一步。將這個工具稱之為lsof真實名副其實,因為它是指“列出打開文件(lists openfiles)”。而有一點要切記,在Unix中一切(包括網絡套接口)都是文件。
有趣的是,lsof也是有著最多開關的Linux/Unix命令之一。它有那么多的開關,它有許多選項支持使用-和+前綴。
正如你所見,lsof有著實在是令人驚訝的選項數量。你可以使用它來獲得你系統上設備的信息,你能通過它了解到指定的用戶在指定的地點正在碰什么東西,或者甚至是一個進程正在使用什么文件或網絡連接。
對于我,lsof替代了netstat和ps的全部工作。它可以帶來那些工具所能帶來的一切,而且要比那些工具多得多。那么,讓我們來看看它的一些基本能力吧:
理解一些關于lsof如何工作的關鍵性東西是很重要的。最重要的是,當你給它傳遞選項時,默認行為是對結果進行“或”運算。因此,如果你正是用-i來拉出一個端口列表,同時又用-p來拉出一個進程列表,那么默認情況下你會獲得兩者的結果。
下面的一些其它東西需要牢記:
默認 : 沒有選項,lsof列出活躍進程的所有打開文件
組合 : 可以將選項組合到一起,如-abc,但要當心哪些選項需要參數
-a : 結果進行“與”運算(而不是“或”)
-l : 在輸出顯示用戶ID而不是用戶名
-h : 獲得幫助
-t : 僅獲取進程ID
-U : 獲取UNIX套接口地址
-F : 格式化輸出結果,用于其它命令??梢酝ㄟ^多種方式格式化,如-F pcfn(用于進程id、命令名、文件描述符、文件名,并以空終止)
正如我所說的,我主要將lsof用于獲取關于系統怎么和網絡交互的信息。這里提供了關于此信息的一些主題:
有些人喜歡用netstat來獲取網絡連接,但是我更喜歡使用lsof來進行此項工作。結果以對我來說很直觀的方式呈現,我僅僅只需改變我的語法,就可以通過同樣的命令來獲取更多信息。
你也可以通過在-i后提供對應的協議來僅僅顯示TCP或者UDP連接信息。
或者,你也可以通過端口搜索,這對于要找出什么阻止了另外一個應用綁定到指定端口實在是太棒了。
這對于你在檢查是否開放連接到網絡中或互聯網上某個指定主機的連接時十分有用。
你也可以組合主機與端口的顯示信息。
找出正等候連接的端口。
你也可以grep “LISTEN”來完成該任務。
你也可以顯示任何已經連接的連接。
你也可以通過grep搜索“ESTABLISHED”來完成該任務。
關于如何入門Linux的命令神器lsof 就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。