文件系統是作業系統組織、存儲、檢索數據的邏輯結構。Linux 採用單一根目錄樹、一切皆文件、權限分離、Inode 索引等核心設計。本文系統講解路徑體系、目錄結構、文件元數據、硬/軟鏈接、掛載點、umask 等核心知識點。
/ 開頭,如 /home/user/docs/file.txt。pwd 查看),如 docs/file.txt。. (當前目錄)、.. (父目錄)、~ (家目錄)、- (上一目錄 cd -)。FHS (Filesystem Hierarchy Standard) 規範核心目錄用途:
| 目錄 | 用途 |
|---|---|
| /bin, /sbin | 核心用戶/系統二進制 (現多合併至 /usr/bin) |
| /etc | 系統級配置文件 |
| /home | 用戶家目錄 |
| /var | 可變數據:日誌、郵件、緩存、數據庫文件 |
| /tmp | 臨時文件,重啟清理 |
| /dev | 設備文件 |
| /proc, /sys | 虛擬文件系統,內核/進程/硬件信息接口 |
| /mnt, /media | 臨時/可移動設備掛載點 |
| /opt | 第三方軟件包 |
| /usr | 用戶級只讀數據:程序、庫、文檔、源碼 |
| /root | 超級用戶家目錄 |
| /run | 運行時變數據 (PID, Socket, 鎖) |
目錄文件存儲「文件名 → Inode 編號」的映射表。每個目錄至少包含:
. → 當前目錄 Inode.. → 父目錄 Inode路徑解析過程:/home/user/file → 根目錄 Inode 找 home Inode → home 目錄表找 user Inode → user 目錄表找 file Inode → 讀取 Inode 獲取數據塊指針 → 讀取數據。
ls -l 輸出解析:
-rw-r--r-- 1 user group 4096 Jan 1 12:00 file.txt
│││││││ │ │ │ │ │
│││││││ │ │ │ │ └─ 修改時間 (mtime)
│││││││ │ │ │ └─ 文件大小 (bytes)
│││││││ │ │ └─ 所屬組
│││││││ │ └─ 所屬用戶
│││││││ └─ 硬鏈接計數 (link count)
││││││└─ 其他權限 (rwx)
││││└─ 組權限
│││└─ 擁有者權限
│└─ 文件類型 (-文件, d目錄, l軟鏈接, b塊設備, c字符設備, p管道, s套接字)
Inode 核心字段 ( stat file / ls -i ):
| 權限 | 文件含義 | 目錄含義 |
|---|---|---|
| r (4) | 讀取內容 | 列出文件名 (ls) |
| w (2) | 修改內容 | 創建/刪除/重命名文件 (touch/rm/mv) |
| x (1) | 執行程序 | 進入目錄 (cd), 訪問元數據 |
特殊權限位:
passwd, su)/tmp)數字表示法:chmod 4755 file (Setuid + rwxr-xr-x)。
| 特性 | 硬鏈接 (ln) | 軟鏈接 (ln -s) |
|---|---|---|
| 本質 | 目錄項指向同一 Inode | 獨立文件,存儲目標路徑字符串 |
| Inode 號 | 相同 | 不同 |
| 跨文件系統 | 不可 | 可 |
| 鏈接目錄 | 不可 (root 特權除外) | 可 |
| 目標刪除影響 | 數據保留,link count-- | 成為斷鏈 (dangling link) |
| 權限顯示 | 同目標 | lrwxrwxrwx (權限無效,由目標決定) |
硬鏈接是「同一身份的別名」,軟鏈接是「指向路徑的快捷方式」。
666 (rw-rw-rw-),目錄默認 777 (rwxrwxrwx)。umask 022 → 文件 644 (rw-r--r--),目錄 755 (rwxr-xr-x)。umask 077 → 文件 600,目錄 700 (高安全)。~/.bashrc 或 /etc/profile。mount -t ext4 /dev/sdb1 /data # 掛載磁盤分區
mount -o loop iso_file.iso /mnt/iso # 掛載鏡像
mount --bind /src /dst # 綁定掛載 (目錄別名)
mount -t tmpfs tmpfs /run # 內存文件系統
/etc/fstab 定義開機自動掛載:設備 掛載點 類型 選項 dump fsck順序。
Linux 文件系統以 Inode 為核心索引,目錄樹提供命名空間,權限模型實現多用戶隔離,鏈接機制支持多路訪問,VFS 屏蔽底層差異。掌握 ls -l/stat/chmod/chown/ln/mount/umask 核心工具鏈,是系統管理、開發調試、安全加固的基石。
