R / Richie全部文章 ↑

Linux · 1 分钟阅读

Linux 文件系统

目录结构(FHS)

/
├── bin/         基本命令(→ usr/bin)
├── sbin/        系统命令(→ usr/sbin)
├── etc/         配置文件
├── home/        普通用户家目录
├── root/        root 家目录
├── opt/         可选软件
├── usr/         用户程序
│   ├── local/   本地编译
│   └── share/   共享数据
├── var/         可变数据(日志、缓存、运行时)
│   ├── log/
│   ├── lib/
│   └── tmp/
├── tmp/         临时文件(重启清空)
├── dev/         设备文件
├── proc/        进程 / 内核信息(虚拟)
├── sys/         内核对象(虚拟)
├── mnt/         临时挂载
└── run/         运行时数据(pid、socket)

文件类型

ls -l
# - 普通文件
# d 目录
# l 软链接
# b 块设备
# c 字符设备
# s 套接字
# p 命名管道

基本操作

# 文件 / 目录
touch file.txt
mkdir -p a/b/c

cp src dst
cp -r src/ dst/
mv old new
rm -rf path

权限

chmod 644 file
chmod u+x file
chown user:group file
chown -R user:group dir

# 数字权限
# r=4 w=2 x=1
# 644 = rw-r--r--
# 755 = rwxr-xr-x

特殊位:

chmod u+s file      # SUID:执行时获得属主权限
chmod g+s dir       # SGID:目录下新建文件继承属组
chmod +t dir        # sticky:只有 owner 能删自己文件(/tmp 经典用法)

链接

# 硬链接:同一 inode,多个别名,删一个不丢
ln file hard

# 软链接:自己的 inode,指向路径
ln -s file soft

# 跨文件系统、目录软链只能用软链

查找

find / -name "*.log"
find / -type f -size +100M
find / -mtime -1                  # 一天内改过
find / -user nginx
find / -perm 0644

磁盘与挂载

df -h                              # 整体
du -sh /path                       # 目录大小
lsblk                              # 块设备树
mount | column -t                  # 挂载点

mount /dev/sdb1 /mnt/data
umount /mnt/data

# 持久化:/etc/fstab
UUID=xxxx  /mnt/data  ext4  defaults,noatime  0 2

文件系统维护

mkfs.ext4 /dev/sdb1
fsck /dev/sda1
tune2fs -l /dev/sda1               # 看文件系统参数
xfs_info /dev/sdb1                 # xfs

2026 年事实标准:ext4 / xfs,新部署基本只剩这两个。btrfs 在桌面和容器场景增长明显,zfs 仍是 NAS 主场。

压缩与归档

tar -czf archive.tar.gz dir/
tar -xzf archive.tar.gz
tar -tzf archive.tar.gz | head

zstd -T0 dir/                      # 2026 年的高效压缩
unzstd archive.tar.zst

一些经验

  • 不要在 / 下乱建目录,遵守 FHS
  • 软链是相对路径时,移动软链别破
  • 挂载点要预先 mkdir,/etc/fstab 用 UUID 而不是设备名
  • 删大目录用 rsync -a --delete 比 rm -rf 慢但更安全
  • 备份前先 sync,数据真落盘

参考