国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Linux shell編程學習筆記47:lsof命令

這篇具有很好參考價值的文章主要介紹了Linux shell編程學習筆記47:lsof命令。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Linux shell編程學習筆記47:lsof命令,麒麟操作系統(tǒng),Linux世界,編程資料,linux,學習筆記,shell編程,腳本編程,lsof命令

0?前言

今天國產(chǎn)電腦提示磁盤空間已耗盡,使用用df命令檢查文件系統(tǒng)情況,發(fā)現(xiàn)/dev/sda2已使用100%。

Linux shell編程學習筆記39:df命令https://blog.csdn.net/Purpleendurer/article/details/135577571于是開始清理磁盤空間。

第一步是查看已刪除、但空間卻沒有釋放的進程。

這里要用到 lsof命令。

1?lsof命令的安裝

PurpleEndurer @ ?bash ~ $ lsof --help
bash: lsof: command not found
PurpleEndurer @ ?bash ~ $?

Linux shell編程學習筆記47:lsof命令,麒麟操作系統(tǒng),Linux世界,編程資料,linux,學習筆記,shell編程,腳本編程,lsof命令?

lsof 命令默認是沒有安裝的,如果你的系統(tǒng)中沒有安裝這個命令,那么可以?使用以下命令安裝:

yum install -y lsof

PurpleEndurer @ ?bash ~ $ yum install -y lsof
Loaded plugins: fastestmirror, ovl
ovl: Error while doing RPMdb copy-up:
[Errno 13] Permission denied: '/var/lib/rpm/Providename'
You need to be root to perform this command.
PurpleEndurer @ ?bash ~ $?
?

Linux shell編程學習筆記47:lsof命令,麒麟操作系統(tǒng),Linux世界,編程資料,linux,學習筆記,shell編程,腳本編程,lsof命令?

2? lsof命令的功能、格式和選項說明

我們像往常輸入lsof?--help命令,想查看 lsof命令的幫助信息。

purpleEndurer?@bash?~?$? lsof?--help
lsof:?illegal?option?character:?-
lsof:?-e?not?followed?by?a?file?system?path:?"lp"
lsof?4.89
?latest?revision:?ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/
?latest?FAQ:?ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/FAQ
?latest?man?page:?ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/lsof_man
?usage:?[-?abhKlnNoOPRtUvVX]?[+|-c?c]?[+|-d?s]?[+D?D]?[+|-E]?[+|-e?s]?[+|-f[gG]]
?[-F?[f]]?[-g?[s]]?[-i?[i]]?[+|-L?[l]]?[+m?[m]]?[+|-M]?[-o?[o]]?[-p?s]
?[+|-r?[t]]?[-s?[p:s]]?[-S?[t]]?[-T?[t]]?[-u?s]?[+|-w]?[-x?[fl]]?[--]?[names]
Defaults?in?parentheses;?comma-separated?set?(s)?items;?dash-separated?ranges.
??-?|-h?list?help??????????-a?AND?selections?(OR)?????-b?avoid?kernel?blocks
??-c?c??cmd?c?^c?/c/[bix]??+c?w??COMMAND?width?(9)????+d?s??dir?s?files
??-d?s??select?by?FD?set???+D?D??dir?D?tree?*SLOW?*???+|-e?s??exempt?s?*RISKY*
??-i?select?IPv[46]?files??-K?list?tasKs?(threads)????-l?list?UID?numbers
??-n?no?host?names?????????-N?select?NFS?files????????-o?list?file?offset
??-O?no?overhead?*RISKY*???-P?no?port?names???????????-R?list?paRent?PID
??-s?list?file?size????????-t?terse?listing???????????-T?disable?TCP/TPI?info
??-U?select?Unix?socket????-v?list?version?info???????-V?verbose?search
??+|-w??Warnings?(+)???????-X?skip?TCP&UDP*?files?????-Z?Z??context?[Z]
??--?end?option?scan?????
??-E?display?endpoint?info??????????????+E?display?endpoint?info?and?files
??+f|-f??+filesystem?or?-file?names?????+|-f[gG]?flaGs?
??-F?[f]?select?fields;?-F??for?help??
??+|-L?[l]?list?(+)?suppress?(-)?link?counts?<?l?(0?=?all;?default?=?0)
????????????????????????????????????????+m?[m]?use|create?mount?supplement
??+|-M???portMap?registration?(-)???????-o?o???o?0t?offset?digits?(8)
??-p?s???exclude(^)|select?PIDs?????????-S?[t]?t?second?stat?timeout?(15)
??-T?qs?TCP/TPI?Q,St?(s)?info
??-g?[s]?exclude(^)|select?and?print?process?group?IDs
??-i?i???select?by?IPv[46]?address:?[46][proto][@host|addr][:svc_list|port_list]
??+|-r?[t[m<fmt>]]?repeat?every?t?seconds?(15);??+?until?no?files,?-?forever.
???????An?optional?suffix?to?t?is?m<fmt>;?m?must?separate?t?from?<fmt>?and
??????<fmt>?is?an?strftime(3)?format?for?the?marker?line.
??-s?p:s??exclude(^)|select?protocol?(p?=?TCP|UDP)?states?by?name(s).
??-u?s???exclude(^)|select?login|UID?set?s
??-x?[fl]?cross?over?+d|+D?File?systems?or?symbolic?Links
??names??select?named?files?or?files?on?named?file?systems
Anyone?can?list?all?files;?/dev?warnings?disabled;?kernel?ID?check?disabled.
purpleEndurer?@bash?~?$?
?

Linux shell編程學習筆記47:lsof命令,麒麟操作系統(tǒng),Linux世界,編程資料,linux,學習筆記,shell編程,腳本編程,lsof命令

盡管 lsof命令不支持--help選項,但給出了幫助信息。

查看?lsof命令?幫助信息正確選項是 -??或 -h。

2.1?命令功能

lsof 是 List Open File 的縮寫, 主要功能是獲取和顯示被進程打開文件的信息。

2.2?命令格式

lsof [-?abhKlnNoOPRtUvVX]?[+|-c?c]?[+|-d?s]?[+D?D]?[+|-E]?[+|-e?s]?[+|-f[gG]]
?[-F?[f]]?[-g?[s]]?[-i?[i]]?[+|-L?[l]]?[+m?[m]]?[+|-M]?[-o?[o]]?[-p?s]
?[+|-r?[t]]?[-s?[p:s]]?[-S?[t]]?[-T?[t]]?[-u?s]?[+|-w]?[-x?[fl]]?[--]?[names]

2.3?選項說明

選項 描述
-h 顯示幫助信息
-a AND選擇(默認是或)
-b 避免內(nèi)核塊
-c c cmd c ^c /c/[bix]
+c w 命令寬度(默認為9)
+d s 顯示目錄集合s下被打開的文件
-d s 通過文件描述符(FD)集合s來選擇
+D D 遞歸處理所有子文件 *慢?*
+|-e s 豁免 s *風險*
-E 顯示端點信息
+E 顯示端點信息和文件
+f|-f +文件系統(tǒng)或 -文件名
+|-f[gG] flaGs
-F [f] 選擇字段;-F?尋求幫助
-g [s] 排除(^)或選擇并打印進程組ID
-i ?按 IPv[46] 地址選擇:[46][proto][@host|addr][:svc_list|port_list]
-K 列出tasKs(線程)
-l 列出UID號
+|-L [l] 列表 (+) 抑制 (-) 鏈路計數(shù) < l (0 = all; default = 0)
+m [m] 使用或創(chuàng)建安裝補充
+|-M 端口映射注冊 (-)?
-n 沒有主機名
-N 選擇NFS文件列表
-o 列出文件偏移量 -o o o 0t 偏移位數(shù)(8)
-O 無開銷?*風險*
-p s 排除(^)或選擇PIDs -S [t]? t秒統(tǒng)計超時(15)
-P 無端口名稱
-R 列出paRent PID
+ -r [t[m<fmt>]]
-s 列表文件大小
-s p:s 排除(^)或選擇protocol(p = TCP|UDP) 按名稱表示。
S [t] t 秒統(tǒng)計超時 (默認為15秒)
-t 簡潔列表
-T 禁用TCP/TPI信息
-Tqs TCP/TPI Q,St(s)信息
-u s 排除(^)或 選擇登錄 或 UID集s
-U 選擇Unix套接字
-v 顯示版本信息
-V 詳細搜索
+|-w?? ? 警告
-x [fl] 跨越 +d|+D 文件系統(tǒng)或符號鏈接
-X 跳過TCP&UDP*文件
-Z Z 上下文[Z]
-- 結束選項掃描
name 選擇命名文件或命名文件系統(tǒng)上的文件
  • 括號中的是默認值
  • 集合項使用逗號分隔
  • 范圍使用破折號分隔

3?使用實例

3.1 lsof :?顯示當前所有活躍進程打開的所有文件

顯示的內(nèi)容很多,不好截圖。

3.2 lsof | more:分頁顯示顯示當前所有活躍進程打開的所有文件

我們可以使用管道操作符和more命令來分實現(xiàn)分頁顯示

purpleEndurer?@bash?/?$?lsof?|?more
COMMAND?????PID???TID?????????????USER???FD??????TYPE?????????????DEVICE??SIZE/OFF???????NODE?NAME
systemd???????1???????????????????root??cwd???unknown?????????????????????????????????????????/proc/1/cwd?(
readlink:?Permission?denied)
systemd???????1???????????????????root??rtd???unknown?????????????????????????????????????????/proc/1/root?
(readlink:?Permission?denied)
systemd???????1???????????????????root??txt???unknown?????????????????????????????????????????/proc/1/exe?(
readlink:?Permission?denied)
systemd???????1???????????????????root?NOFD???????????????????????????????????????????????????/proc/1/fd?(o
pendir:?Permission?denied)
kthreadd??????2???????????????????root??cwd???unknown?????????????????????????????????????????/proc/2/cwd?(
readlink:?Permission?denied)
kthreadd??????2???????????????????root??rtd???unknown?????????????????????????????????????????/proc/2/root?
(readlink:?Permission?denied)
kthreadd??????2???????????????????root??txt???unknown?????????????????????????????????????????/proc/2/exe?(
readlink:?Permission?denied)
kthreadd??????2???????????????????root?NOFD???????????????????????????????????????????????????/proc/2/fd?(o
pendir:?Permission?denied)
ksoftirqd?????3???????????????????root??cwd???unknown?????????????????????????????????????????/proc/3/cwd?(
readlink:?Permission?denied)
ksoftirqd?????3???????????????????root??rtd???unknown?????????????????????????????????????????/proc/3/root?
(readlink:?Permission?denied)
ksoftirqd?????3???????????????????root??txt???unknown?????????????????????????????????????????/proc/3/exe?(
readlink:?Permission?denied)
ksoftirqd?????3???????????????????root?NOFD???????????????????????????????????????????????????/proc/3/fd?(o
pendir:?Permission?denied)
kworker/0?????5???????????????????root??cwd???unknown?????????????????????????????????????????/proc/5/cwd?(
readlink:?Permission?denied)
kworker/0?????5???????????????????root??rtd???unknown?????????????????????????????????????????/proc/5/root?
(readlink:?Permission?denied)
?

Linux shell編程學習筆記47:lsof命令,麒麟操作系統(tǒng),Linux世界,編程資料,linux,學習筆記,shell編程,腳本編程,lsof命令

命令執(zhí)行后返回的信息默認有10列,說明如下:

1.?COMMAND:進程名稱

2.PID:進程ID

3.TID:線程ID

4.USER:所屬用戶

5.FD:文件描述符

可能的類型以及說明如下:

FD 說明
cwd 當前目錄
txt txt文件
rtd root目錄
mem 內(nèi)存映射文件

6.?TYPE:文件類型

可能的值以及說明如下:

TYPE 說明
DIR 目錄
REG 普通文件
CHR 字符
a_inode Inode文件
FIFO 管道或者socket文件
netlink 網(wǎng)絡
unknown 未知

7.DEVICE:設備ID

8.?SIZE/OFF:進程大小

9.NODE:文件的Inode號

10.NAME:路徑或者鏈接

后面?zhèn)渥?readlink:?Permission?denied),是因為當前用戶相應的訪問權限。

所以使用lsof命令最好有root權限或者賦予普通用于sudo權限。

3.3 lsof +d proc:顯示當前目錄下的proc目錄中被打開的文件信息

purpleEndurer?@bash?/?$?lsof?+d?proc?|?more
COMMAND?????PID?USER???FD???TYPE?DEVICE?SIZE/OFF???????NODE?NAME
systemd????2641?gxxc???12r???REG????0,4????????0?4026531994?proc/swaps
lsof??????12178?gxxc????3r???DIR????0,4????????0??????????1?proc
qaxbrowse?14744?gxxc???12r???DIR????0,4????????0??????????1?proc
qaxbrowse?14770?gxxc???19r???DIR????0,4????????0??????????1?proc
purpleEndurer?@bash?/?$?

?Linux shell編程學習筆記47:lsof命令,麒麟操作系統(tǒng),Linux世界,編程資料,linux,學習筆記,shell編程,腳本編程,lsof命令

3.4 lsof +d proc +l:顯示當前目錄下的proc目錄中被打開的文件信息,其中USER列不顯示用戶名而顯示UID

purpleEndurer?@bash?/?$?lsof?+d?proc?-l?|?more
COMMAND?????PID?????USER???FD???TYPE?DEVICE?SIZE/OFF???????NODE?NAME
systemd????2641?????1000???12r???REG????0,4????????0?4026531994?proc/swaps
qaxbrowse?14744?????1000???12r???DIR????0,4????????0??????????1?proc
qaxbrowse?14770?????1000???19r???DIR????0,4????????0??????????1?proc
lsof??????14916?????1000????3r???DIR????0,4????????0??????????1?proc
purpleEndurer?@bash?/?$?

Linux shell編程學習筆記47:lsof命令,麒麟操作系統(tǒng),Linux世界,編程資料,linux,學習筆記,shell編程,腳本編程,lsof命令

由于我們使用了 -l選項,所以執(zhí)行結果中USER列顯示的1000是UID文章來源地址http://www.zghlxwxcb.cn/news/detail-860058.html

到了這里,關于Linux shell編程學習筆記47:lsof命令的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Linux shell編程學習筆記41:lsblk命令

    Linux shell編程學習筆記41:lsblk命令

    邊緣計算面臨著數(shù)據(jù)安全與隱私保護、網(wǎng)絡穩(wěn)定性等挑戰(zhàn),但同時也帶來了更強的實時性和本地處理能力,為企業(yè)降低了成本和壓力,提高了數(shù)據(jù)處理效率。因此,邊緣計算既帶來了挑戰(zhàn)也帶來了機遇,需要我們不斷地研究 前幾節(jié)學習我們均涉及到磁盤和文件存儲,今天我們

    2024年01月24日
    瀏覽(27)
  • Linux shell編程學習筆記37:readarray命令和mapfile命令

    Linux shell編程學習筆記37:readarray命令和mapfile命令

    ? 目錄 ? 0 前言 1? readarray命令的格式和功能 1.1 命令格式 1.2?命令功能 1.3?注意事項 2?命令應用實例 2.1 從標準輸入讀取數(shù)據(jù)時不指定數(shù)組名,則數(shù)據(jù)會保存到MAPFILE數(shù)組中 2.2 從標準輸入讀取數(shù)據(jù)并存儲到指定的數(shù)組 2.3?使用 -O?選項指定起始下標 2.4?用-n指定有效行數(shù) 2.5?

    2024年02月03日
    瀏覽(24)
  • Linux shell編程學習筆記45:uname命令-獲取Linux系統(tǒng)信息

    Linux shell編程學習筆記45:uname命令-獲取Linux系統(tǒng)信息

    linux 有多個發(fā)行版本,不同的版本都有自己的版本號。 如何知道自己使用的Linux的系統(tǒng)信息呢? 使用uname命令、hostnamectl命令,或者通過查看/proc/version文件來了解這些信息。 我們先看看uname命令。 我們可以使用命令 uname --help命令 查看它的用法: purpleEndurer @ ?bash ~ $ uname --

    2024年04月10日
    瀏覽(27)
  • Linux shell編程學習筆記6:查看和設置變量的常用命令

    Linux shell編程學習筆記6:查看和設置變量的常用命令

    上節(jié)我們介紹了變量的變量命名規(guī)則、變量類型、使用變量時要注意的事項,今天我們學習一下查看和設置變量的一些常用命令,包括變量的提升,有些命令在之前的實例中已經(jīng)使用過了。 語法格式:echo [參數(shù)] [輸出內(nèi)容] 常用參數(shù): -e:支持反斜線控制的字符轉(zhuǎn)換(具體參

    2024年02月07日
    瀏覽(22)
  • Linux shell編程學習筆記31:alias 和 unalias 操作 命令別名

    Linux shell編程學習筆記31:alias 和 unalias 操作 命令別名

    目錄 0?前言 1 定義別名 2?查看別名 2.1?查看所有別名 2.2?查看某個別名 2.2.1? alias?別名 2.2.2 alias | grep?別名字符串 2.2.3?使用 Ctrl+Alt+E 組合鍵 3 unalias:刪除別名 4 如何執(zhí)行命令本身而非別名 4.1 方法1:使用 Ctrl+Alt+E 組合鍵? unalias 4.2 方法2:在命令前加上命令文件的絕對路徑

    2024年02月05日
    瀏覽(28)
  • Linux shell編程學習筆記46:awk命令的由來、功能、格式、選項說明、版權、版本

    Linux shell編程學習筆記46:awk命令的由來、功能、格式、選項說明、版權、版本

    在編寫Linux Shell腳本的過程中,我們經(jīng)常要對Linux命令執(zhí)行的結果進行分析和提取,Linux也在文本分析和提取這方面提供了不少的命令。比如我們之前研究過的cut命令。 Linux shell編程學習筆記43:cut命令 https://blog.csdn.net/Purpleendurer/article/details/135730679?spm=1001.2014.3001.5501 除了cut命

    2024年04月24日
    瀏覽(17)
  • Linux shell編程學習筆記44:編寫一個腳本,將md5sum命令執(zhí)行結果保存到變量中,進而比較兩個文件內(nèi)容是否相同

    Linux shell編程學習筆記44:編寫一個腳本,將md5sum命令執(zhí)行結果保存到變量中,進而比較兩個文件內(nèi)容是否相同

    在? Linux shell編程學習筆記42:md5sum https://blog.csdn.net/Purpleendurer/article/details/137125672?spm=1001.2014.3001.5501 中,我們提到編寫一個在Linux系統(tǒng)下比較兩個文件內(nèi)容是否相同的腳本。 基本思路是: 其中有兩個難點: 1.文件的md5值的獲取 2.md5值的比較 對于第1個難點,我們的解決辦法是

    2024年04月10日
    瀏覽(28)
  • Linux、銀河麒麟操作系統(tǒng)——終端命令解析

    Linux、銀河麒麟操作系統(tǒng)——終端命令解析

    目錄 ?Ⅰ? Linux系統(tǒng)管理命令 Ⅱ? Linux內(nèi)核基本配置 Ⅲ? 銀河麒麟操作系統(tǒng)管理命令 Ⅳ? 查看Linux/centos系統(tǒng)cpu架構 ? 命令說明 命令行 參數(shù) 新增用戶賬號 adduser / useradd 改變finger指令顯示的信息 chfn (change finger information) 語法示例:chfn -f -f:設置真實姓名 -h:設置家中的電

    2024年01月16日
    瀏覽(22)
  • 麒麟操作系統(tǒng)(Linux)使用和維護:進程相關的操作命令

    麒麟操作系統(tǒng)(Linux)使用和維護:進程相關的操作命令

    ? 目錄 1. 查看進程 2. top命令實時監(jiān)控進程 3. 殺死進程 4. 圖形界面查看和殺死進程 ????????作為國產(chǎn)操作系統(tǒng),無論是銀河麒麟,還是中標麒麟,它們的服務器操作系統(tǒng)或者桌面操作系統(tǒng),已經(jīng)廣泛應用于工業(yè)生產(chǎn)和科學研究領域。因為麒麟操作系統(tǒng)的內(nèi)核是Linux系統(tǒng)內(nèi)

    2024年02月04日
    瀏覽(28)
  • Linux shell編程學習筆記35:seq

    Linux shell編程學習筆記35:seq

    在使用 for 循環(huán)語句時,我們經(jīng)常使用到序列。比如: for i in 1 2 3 4 5 6 7 8 9 10; do echo \\\"$i * 2 = $(expr $i * 2)\\\"; ?done 其中的 1 2 3 4 5 6 7 8 9 10; 就是一個整數(shù)序列 。 為了方便我們使用數(shù)字序列,Linux提供了seq命令,這個命令是取自單詞 sequence 的前3個字母。比如: for i in $(seq 1 10) ;

    2024年02月04日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包