Linux 採用單一倒置樹狀結構,根目錄 / 為起點,所有分區、裝置、網路共享皆掛載於此樹下。這與 Windows 多磁碟機代號 (C:、D:) 平行結構截然不同。
| 目錄 | 用途 | 關鍵說明 |
|---|---|---|
/bin | 基本使用者指令 | 單人模式也需可用 (ls、cp、bash 等) |
/sbin | 系統管理指令 | 需 root 執行 (fdisk、reboot、iptables 等) |
/etc | 系統配置檔 | 所有服務設定、開機腳本 |
/dev | 裝置檔案 | 硬碟、終端機、USB 等 |
/proc | 虛擬檔案系統 | 核心資料結構映射 (記憶體、CPU、進程資訊) |
/sys | 裝置驅動模型 | 核心 2.6+ 引入,硬體屬性匯出 |
/home | 使用者家目錄 | /home/user 可簡寫 ~user |
/root | root 家目錄 | 與 /home/root 無關 |
/tmp | 暫存檔案 | 重開機清空,所有使用者可寫 |
/var | 可變資料 | 日誌、郵件、快取、資料庫檔案 |
/usr | 唯讀使用者程式 | 第二層級目錄,可獨立分區/唯讀掛載 |
/opt | 第三方套裝軟體 | /opt/google/chrome 等 |
/mnt | 臨時掛載點 | 手動掛載光碟、USB、網路磁碟 |
/media | 自動掛載媒體 | 現代桌面環境自動掛載 USB/光碟處 |
/srv | 服務資料 | /srv/www、/srv/ftp |
/lost+found | 檔案系統修復殘留 | fsck 修復後無法歸屬的檔案片段 |
/usr
├── bin/ # 非必要使用者指令
├── sbin/ # 非必要系統指令
├── lib/ # 函式庫
├── include/ # C 標頭檔
├── share/ # 架構無關資料 (man、locale、doc)
├── src/ # 原始碼 (核心源碼在 /usr/src/linux)
├── local/ # 本地自編譯軟體 (bin、lib、etc、src)
└── X11R6/ # X Window 系統 (舊版)
ls -i 可查看 inode 號。| 特性 | 硬連結 (ln) | 符號連結 (ln -s) |
|---|---|---|
| inode | 相同 | 不同 (連結檔本身有獨立 inode) |
| 跨檔案系統 | 不可 | 可 |
| 目標類型 | 僅檔案 | 檔案/目錄/裝置/管道皆可 |
| 刪除源檔 | 資料保留 (連結計數 -1) | 連結失效 (斷鏈) |
| 防誤刪 | 是 (需刪除所有硬連結才釋放空間) | 否 |
| 類比 | 同一檔案的別名 | Windows 捷徑 |
# 硬連結
ln /etc/passwd /tmp/passwd.hard
# 符號連結
ln -s /etc/passwd /tmp/passwd.soft
# 查看 inode
ls -i /etc/passwd /tmp/passwd.hard /tmp/passwd.soft
mount [-t 類型] [-o 選項] 裝置 掛載點
| 類型 | 適用場景 |
|---|---|
ext4 | Linux 原生標準 |
xfs | 高效能大檔案/平行 I/O |
vfat | FAT32 (USB 隨身碟、EFI 分區) |
ntfs-3g | NTFS 讀寫 (需安裝 ntfs-3g) |
iso9660 | 光碟 (ISO 映像) |
nfs | 網路檔案系統 |
cifs | Windows/Samba 共享 |
auto | 自動偵測 |
ro, rw # 唯讀/讀寫
noexec # 禁止執行二進制檔
nosuid # 忽略 SUID/SGID
nodev # 不解讀裝置檔
user, nouser # 允許/禁止一般使用者掛載
uid=1000,gid=1000 # 指定擁有者 (vfat/ntfs 適用)
iocharset=utf8 # 字元集
codepage=936 # 代碼頁 (中文 FAT/NTFS)
defaults # rw,suid,dev,exec,auto,nouser,async
# 掛載 Windows 分區 (中文檔名支援)
mkdir -p /mnt/win
mount -t ntfs-3g -o rw,uid=1000,gid=1000,iocharset=utf8 /dev/sda1 /mnt/win
# 掛載 ISO 映像
mkdir -p /mnt/iso
mount -o loop ubuntu-22.04.iso /mnt/iso
# 掛載 NFS 共享
mount -t nfs 192.168.1.100:/data /mnt/nfs
裝置/UUID 掛載點 類型 選項 dump fsck順序
UUID=xxxx-xxxx / ext4 defaults 0 1
UUID=yyyy-yyyy /home ext4 defaults 0 2
UUID=zzzz-zzzz swap swap defaults 0 0
/dev/sr0 /media/cdrom iso9660 ro,user,noauto 0 0
192.168.1.100:/share /mnt/nfs nfs defaults,_netdev 0 0
_netdev:網路裝置,延遲至網路就緒後掛載noauto:開機不自動掛載,需手動 mountdump:備份工具參考 (通常 0)fsck順序:根分區 1,其他 2,swap/虛擬系統 0mount -a # 掛載所有 fstab 定義項目
findmnt --verify # 檢查 fstab 語法
systemctl daemon-reload # systemd 掛載單元重載
理解 FHS 目錄結構、inode 機制、連結差異與掛載流程,是 Linux 系統管理、磁碟規劃、故障排除的基石。善用 UUID 掛載、fstab 選項微調、bind mount 目錄綁定,能大幅提升系統彈性與可維護性。
解決 locale: Cannot set LC_CTYPE to default locale 錯誤
Linux 20 週年:Jim Zemlin 闡述開源如何重塑科技產業與商業模式
Linux UDP 網路程式設計:recvfrom 與 sendto 實作範例
Linux 主機被入侵偵測實務:ps 偽裝、history 竄改、不明帳號、Rootkit 特徵識別
Linux 時間管理全攻略:系統時鐘、硬體時鐘與時區同步設定
Linux 系統時間與時區設定完整指南:date、hwclock、timedatectl