在Linux系統中,磁盤空間管理是日常運維的重要環節。無論是排查系統故障、清理冗餘文件,還是規劃存儲空間,都需要先了解磁盤的使用情況。Ubuntu系統提供了兩個常用工具:df 和 du,它們能幫助我們分別從整體分區和具體目錄/文件的角度查看磁盤空間佔用。
df命令:查看磁盤分區整體使用情況¶
df(Disk Free的縮寫)用於顯示整個磁盤分區的空間使用情況,包括總容量、已用空間、可用空間及使用率。
基本用法與參數¶
直接輸入 df 會顯示所有掛載分區的信息,但默認單位是字節(不直觀),建議結合 -h 參數(人類可讀格式,自動轉換爲KB/MB/GB):
df -h
常用參數:
- -h:以人類可讀單位顯示(如 1K → 1K,1.2G → 1.2G)
- -T:顯示文件系統類型(如 ext4、xfs 等)
- -i:顯示inode使用情況(inode是文件系統中記錄文件元數據的“索引節點”,inode滿了也會導致無法創建新文件)
輸出結果解釋¶
執行 df -h 後,輸出示例如下:
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 20G 15G 4.8G 76% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
/dev/sdb1 50G 10G 40G 20% /home
- Filesystem:掛載的磁盤設備或文件系統(如
/dev/sda2是第一個磁盤的第二個分區)。 - Size:分區總容量。
- Used:已用空間。
- Avail:可用空間。
- Use%:磁盤使用率(超過85%建議清理)。
- Mounted on:掛載點(即該分區掛載到系統的哪個目錄下,如
/是根目錄,/home是用戶目錄)。
關鍵說明¶
- 掛載點:Linux系統通過“掛載”將磁盤分區與目錄樹關聯。例如,
/home目錄掛載在/dev/sdb1分區,所有用戶文件默認存放在/home/用戶名下。 - 特殊分區:
tmpfs是內存虛擬文件系統,無實際磁盤空間,可忽略其使用率。
du命令:查看具體目錄/文件的空間佔用¶
du(Disk Usage的縮寫)用於顯示指定目錄或文件的詳細磁盤佔用情況,與 df 的區別是:df 關注分區整體,du 關注具體內容。
基本用法與參數¶
du 的基礎語法爲 du [選項] [目錄/文件],常用參數:
- -h:人類可讀單位(同 df -h)。
- -s:僅顯示總和(不展開子目錄)。
- -a:顯示所有文件和目錄(包括隱藏文件,默認不顯示)。
- -c:在最後一行顯示所有統計的總和。
- -sh:組合 -s(僅總和)和 -h(人類可讀),適合快速查看目錄總大小。
常用示例¶
- 查看單個目錄總大小:
如查看/home目錄的總佔用:
du -sh /home
輸出類似:2.5G /home(表示 /home 目錄共佔用2.5GB空間)。
- 查看目錄下所有子目錄大小:
如當前目錄下各子目錄的大小(不顯示文件細節):
du -h --max-depth=1
--max-depth=1 僅顯示一級子目錄(不加則遞歸所有層級)。
- 顯示目錄下所有文件大小:
如查看/tmp目錄下所有文件(含隱藏文件)的大小,並按降序排序:
du -ah /tmp | sort -hr | head -n 10
-a:顯示所有文件(包括隱藏文件)。sort -hr:按大小降序排序(-h是人類可讀排序)。head -n 10:取前10個最大文件。
- 查看文件具體大小:
如查看bigfile.txt的大小:
du -h bigfile.txt
df vs du:區別與使用場景¶
| 工具 | 作用範圍 | 特點 | 典型場景 |
|---|---|---|---|
df |
磁盤分區整體 | 顯示分區總容量、已用/可用空間,單位統一爲分區容量 | 檢查系統磁盤是否整體不足(如根分區 / 使用率超過85%) |
du |
目錄/文件細節 | 顯示指定目錄或文件的具體佔用,可深入子目錄 | 定位大文件/目錄(如清理緩存、日誌文件) |
總結:磁盤空間管理步驟¶
- 檢查整體分區:先用
df -h查看所有分區使用率,定位空間不足的分區(如/或/home)。 - 定位大目錄:用
du -sh /path/to/dir查看目標分區下的大目錄,再用du -h --max-depth=1 /path/to/dir逐層排查子目錄。 - 清理冗餘文件:對大目錄(如
Downloads、apt緩存),可刪除無用文件或歸檔備份。
通過 df 和 du 的組合使用,能高效管理磁盤空間,避免因空間不足導致系統異常。