天天看點

linux指令之 df file fsck fuser

有很多人說,網上很多知識點都有了,為什麼你還要在自己的部落格中重複這些東西呢?

我想說的是,别人寫的東西是别人了解的東西,同時也是别人學習過程的總結,對于自己來說,自己寫自己的部落格最主要的目的就是為了記錄下自己的學習曆程,同時對自己學的東西進行下總結,當過了一段時間後可以回頭看看,自己曾經經曆的,這也是一種學習,也是一種人生态度。

下面言歸正傳:繼續介紹下linux的幾個指令

df 磁盤管理指令

功能:檢查檔案系統的磁盤空間占用情況。擷取磁盤空間的剩餘空間和已使用空間。

文法:df [選項]

df指令可以顯示所有檔案系統對i節點和磁盤塊的使用情況。

參數:

-a 顯示所有檔案系統的磁盤使用情況,包括0塊(block)的檔案系統,如/proc檔案系統

-k 以k位元組為機關顯示

-i 顯示i節點的資訊,而不是磁盤塊的

-t 顯示各指定類型的檔案系統的磁盤空間使用情況

-x 列出不是某一指定類型檔案系統的磁盤空間使用情況(與t選項相反)

-T 顯示檔案系統類型

df指令的輸出清單:

Filesystem:代表檔案系統對應的裝置檔案路徑(即磁盤分區)

K -blocks:分區包含的資料塊(1024位元組)的數目

used:已使用資料塊

available:未使用資料塊

use%:普通使用者空間使用百分比

Mounted on :所挂載的目錄

說明:第三、四列的塊數之和不等于第二列的總塊數,這是因為預設的每個分區都留了少量空間供系統管理者使用,即使普通使用者空間已滿,管理者仍能登入和留有解決問題所需的工作空間。

eg:列出檔案系統i節點的使用情況

file 指令

功能: 辨識檔案類型

文法: file [-beLvz] [-f <檔案名稱>] [-m <魔法數字檔案>...] [檔案或目錄]

-b 列出辨識結果時,不顯示檔案名稱

-c 詳細顯示指令執行過程,便于排錯或者分析程式執行的情形

-f <名稱檔案> 指定名稱檔案,其内容有一個或多個檔案名稱,讓file依序辨識這些檔案,格式為每列一個檔案名稱

-L 直接顯示符号連接配接所執行的檔案的類型

-m <魔法數字檔案> 指定魔法數字檔案

-v 顯示版本資訊

-z 嘗試去解讀壓縮檔案的内容

fsck指令

功能:被用于檢查并且試圖修複檔案系統中的錯誤。當檔案系統發生錯誤四化,可用fsck指令嘗試加以修複。

文法:fsck [-aANPrRsTV][-t ][檔案系統...]

-a 自動修複檔案系統,不詢問任何問題

-A 依照/etc/fstab配置檔案的内容,檢查檔案内所列的全部檔案系統。

-N 不執行指令,僅列出實際執行會進行的動作。

-P 比對“-A”參數時使用,會同時檢查所有的檔案系統。

-r 采用互動模式,在執行修複時詢問問題,讓使用者得以确認并決定處理方式。

-R 當搭配"-A"參數使用時,會略過/目錄的檔案系統不予檢查

-s 依序執行檢查作業,而非同時執行。

-t 指定要檢查的檔案系統類型

-T 執行fsck指令時,不顯示标題資訊

-V 顯示指令執行過程

eg:檢查msdos檔案系統的/dev/hda5是否正常,如果有異常便自動修複

運作fsck指令後産生的檔案有什麼用?

當執行fsck指令時,fsck指令如果發現存在孤立的檔案或目錄,這些孤立的檔案或目錄對于系統管理者或使用者來說,無法通路到它,因為它與它的上級目錄失去了關聯,如果使用者允許fsck重新把它們找回來的話,fsck指令就會把這些孤立的檔案或目錄放在檔案系統的/lost+found目錄下,并用各自的i-node号來命名,以便使用者查找自己需要的檔案。Lost+found目錄通過它的英文含義我們都可以知道,它是一個失物認領處。是以當某個使用者發現自己丢失了某個檔案,可以在執行fsck之後到/lost+found目錄下去查找,這時通過檔案名已無法辨認出檔案的作用,隻能用file之類的指令來确定檔案的類型,如果是資料檔案,可以用more或vi指令來檢視,如果是二進制檔案,可以用dbx指令來調試或者試着執行它(注意它可能是一個具有破壞性的程式),知道檔案或目錄的作用之後,可以對其進行改名。

fuser指令

功能:識别出正在對某個檔案或端口通路的程序。同時lsof也能夠找出正在對指定檔案通路的程序。差別在于fuser可以一次殺死那些正在通路指定檔案的程序。

fuser指令列出了本地程序的程序号,哪些本地程序使用了file參數指定的檔案或遠端檔案。對于阻塞特别裝置,此指令列出了使用該裝置上任何檔案的程序。

列出的每個程序号後面都跟随一個字母,該字母訓示程序如何使用檔案

eg:

>c 訓示程序的工作目錄

>e 訓示該檔案為程序的可執行檔案(即程序由該檔案拉起)

>f 訓示該檔案被程序打開,預設情況下f字元不顯示

>F 訓示該檔案被程序打開進行寫入,預設情況下F字元不顯示

>r 訓示該檔案為程序的根目錄

>m 訓示程序使用該檔案進行記憶體映射,抑或該檔案為共享庫檔案,被程序映射進記憶體

文法:fuser[-c|-d|-f][-k][-u][-x][-V]檔案

參數:

-l 列出所有已知信号名

-a 顯示指令行中指定的所有檔案

-k 殺死通路指定檔案的所有程序

-i 殺死程序前需要使用者進行确認

-m 指定一個被加載的檔案系統或一個被加載的塊裝置

-n 選擇不同的名稱空間

-u 在每個程序後顯示所屬的使用者名

-V運作時顯示詳細處理資訊

-c 顯示包含file的檔案系統中關于任何打開的檔案

-d 暗示使用了-c和-x标志,顯示任何與檔案系統(自父目錄删除的)無連結的打開的檔案,當與-v一起使用時,也會報告被删除檔案的節點号和大小。

-x 與-c和-f連用,顯示除标準fuser輸出以外的可執行的和可載入的對象

-f 僅顯示對檔案的打開執行個體

eg:

挂載usb裝置并顯示所屬的使用者

列出所有已知信号

殺死所有和root目錄相關的程序

繼續閱讀