Linux文件系统
一条死谏
- 在Linux里面,一切皆是文件
目录结构

目录结构详解
根目录(/)是所有目录的起点,以下是核心目录的功能说明,需牢记各目录的用途:
| 目录路径 | 核心功能 | 关键说明 |
|---|---|---|
/ | 根目录 | 所有目录和文件的顶层,唯一的根节点 |
/bin | 基础命令二进制文件 | 存放系统启动和日常操作必需的命令(如ls、cd、cp),所有用户可执行 |
/sbin | 系统管理命令二进制文件 | 存放需root权限执行的系统管理命令(如mount、reboot、ifconfig) |
/etc | 系统配置文件目录 | 存放所有系统级配置文件(如passwd、fstab、nginx.conf) |
/home | 普通用户主目录 | 每个普通用户对应一个子目录(如/home/user1),存储用户个人数据和配置 |
/root | root用户主目录 | 超级管理员的专属目录,无需放在/home下 |
/var | 可变数据目录 | 存放经常变化的数据(如日志、邮件、缓存、数据库文件),核心子目录:/var/log(日志)、/var/www(网页文件) |
/tmp | 临时文件目录 | 所有用户可读写,系统重启后数据会清空,适合存放临时文件 |
/usr | 用户程序和资源目录 | 类似Windows的Program Files,核心子目录:/usr/bin(用户命令)、/usr/lib(库文件)、/usr/share(共享资源,如文档、图标) |
/dev | 设备文件目录 | 所有硬件设备以文件形式存在(如/dev/sda1(第一块硬盘第一个分区)、/dev/tty1(第一个虚拟终端)、/dev/null(黑洞设备)) |
/mnt | 临时挂载目录 | 默认用于临时挂载外部设备(如U盘、移动硬盘),可手动创建子目录挂载 |
/boot | 系统启动目录 | 存放系统启动必需的文件(如内核镜像vmlinuz、启动引导程序grub),需独立分区以保证启动安全 |
文件类型
提示
- 我们常用
ls -l来查看文件类型,第一个字符表示文件类型 ll等同于ls -l,一般系统会默认设置有别名 什么是别名?→

文件类型与权限
文件权限
权限字符串格式(共10位):类型位 + 所有者权限(3位) + 所属组权限(3位) + 其他用户权限(3位)
示例:-rwxr-xr-- 解析:
第1位(-):文件类型(普通文件)
第2-4位(rwx):所有者权限(读、写、执行)
第5-7位(r-x):所属组权限(读、执行,无写权限)
第8-10位(r--):其他用户权限(仅读权限)
权限字符含义:
r(读权限,4):可查看文件内容或列出目录内容(ls)w(写权限,2):可修改文件内容或创建/删除目录内的文件(需配合x权限)x(执行权限,1):可执行文件(如脚本、程序)或进入目录(cd)-(无权限,0):无对应权限
权限数值计算:每位权限由r、w、x的数值相加得到,如rwx=4+2+1=7,r-x=4+0+1=5,r--=4+0+0=4,因此上述示例的权限数值为754。
- 特殊权限
s(SUID和SGID):主要是用于在执行文件时,无论当前执行者是谁,获得的是文件拥有者或组的权限t(粘着位):主要针对目录,添加后该目录下,文件只有拥有者或root才能删除或重命名,也就是说对于删除操作,别人删除不了自己的文件
文件类型
-:普通文件(文本文件、二进制文件、脚本文件等),如.txt、.sh、可执行程序
d:目录文件(用于存放其他文件和目录),如/home、/etc
l:软链接文件(符号链接),文件名为浅蓝色,ls -l会显示“箭头”指向目标文件
b:块设备文件(按块读取数据的设备),如硬盘、U盘(/dev/sda)
c:字符设备文件(按字符读取数据的设备),如键盘、鼠标、终端(/dev/tty)
p:管道文件(用于进程间通信,临时存在)
s:套接字文件(用于网络通信或本地进程间通信,如/var/run/mysql.sock)
常用操作
目录篇
| 命令语法 | 功能描述 | 常用选项/场景 | 示例 |
|---|---|---|---|
pwd | 打印当前工作目录(绝对路径) | 忘记当前在哪个目录下 | 直接执行 pwd,输出如 /home/user1 |
cd 目录路径 | 切换工作目录,类似Windows的双击文件夹操作 | cd ~(切换到当前用户主目录)cd ..(切换到父目录)- cd -(切换到上一次工作目录) | cd /etc(切换到/etc目录)cd ~(切换到用户主目录) |
ls [选项] 目录/文件 | 列出目录内容或文件信息 | -l(长格式显示,含权限、所有者、大小等)-a(显示所有文件,包括隐藏文件(以.开头))-h(如KB、MB单位显示)-t(按修改时间排序,最新在前) | ls -lha home(显示/home目录下所有文件,长格式+可读大小) |
mkdir [选项] 目录名 | 创建目录 | -p(递归创建多级目录,如mkdir -p /a/b/c,无需手动创建/a和/a/b) | mkdir -p /tmp/test/dir(递归创建/tmp/test/dir目录) |
什么是别名?
- 别名(Alias)可以理解为快捷方式,通常是
命令+参数组合成短命令 - 在终端中输入
alias可以查看当前系统定义的别名 - 例如,
alias ll='ls -l'意思就是ll是ls -l的别名,以后输入ll就相当于输入ls -l
文件篇
| 命令 | 说明 | 示例 |
|---|---|---|
touch 文件名 | 创建空文件 | touch test.txt |
cp [选项] 源文件/目录 目标路径 | 复制文件或目录。常用选项:-r(递归复制目录)、-p(保留权限/时间戳)、-v(显示过程) | cp -rp /etc/profile /home/user1/ |
mv [选项] 源文件/目录 目标路径 | 移动文件/目录,或重命名(同一目录下为重命名) | 重命名:mv test.txt new_test.txt;移动:mv new_test.txt /home/user1/ |
cat 文件名 | 从开头查看文件全部内容(适合小文件) | cat /etc/hosts |
tac 文件名 | 从结尾反向查看文件内容 | tac /var/log/messages |
head -n 数字 文件名 | 查看文件前 N 行(默认 10 行) | head -5 /var/log/messages |
tail [选项] 文件名 | 查看文件后 N 行或实时监控。常用选项:-n(行数)、-f(实时跟踪) | tail -f /var/log/nginx/access.log |
vi/vim 文件名 (常用) | 文本编辑器。核心操作:i 进入编辑模式,Esc 退出,:wq 保存退出,:q! 强制退出不保存 | vim /etc/profile |
软链接与硬链接
提示
- 软链接(ln -s):类似Windows的快捷方式,指向目标文件或目录的路径。
- 硬链接(ln):多个文件名指向同一个文件数据块,增加文件引用计数,
ll可查看文件引用计数,在第二部分。 - inode:每个文件都有一个唯一的inode号,可以理解为文件的档案卡片,里面放着文件的位置,权限,大小,类型,创建/修改/访问时间等信息
- block:文件数据实际存储的地方,可以理解为文件的实际内容存储区域

关于删除 rm -rf
- 删除软链接:直接删除即可,不会影响目标文件
- 删除硬链接:删除其中一个链接文件,其他链接文件仍可访问目标文件,直到引用计数为0时,才会真正删除目标文件
挂载
| 术语 | 说明 |
|---|---|
| 挂载(mount) | 将存储设备(硬盘、U盘、镜像文件)关联到Linux目录树的过程,访问该目录即访问设备内容 |
| 挂载点 | 用于挂载设备的空目录(如 /mnt/data),挂载后原目录内容会被临时覆盖 |
| 卸载(umount) | 解除设备与挂载点的关联,恢复挂载点原有内容 |
| /etc/fstab | 开机自动挂载配置文件,记录设备与挂载点的对应关系 |
| UUID | 设备唯一标识(替代设备名 /dev/sda1),避免设备名变动导致挂载失败 |
1. 基础挂载/卸载
| 场景 | 命令 | 说明 |
|---|---|---|
| 临时挂载磁盘 | mount /dev/sda1 /mnt/data | 挂载 /dev/sda1 到 /mnt/data,重启失效 |
| 临时挂载ISO镜像 | mount -o loop /opt/CentOS-10.iso /mnt/iso | -o loop:挂载镜像文件(必加参数) |
| 卸载设备 | umount /mnt/data | 优先用挂载点卸载,避免设备忙报错 |
| 强制卸载(慎用) | umount -f /mnt/data | 设备忙时强制卸载,可能导致数据损坏 |
2. 查看挂载信息
| 命令 | 作用 |
|---|---|
mount | 查看所有已挂载的设备 |
df -h | 查看挂载点磁盘使用情况(人性化显示) |
blkid | 查看设备UUID和文件系统类型(如ext4、xfs) |
cat /etc/fstab | 查看开机自动挂载配置 |
文件系统类型
| 文件系统 | 核心特性 | 适用场景 |
|---|---|---|
| ext4 | Linux默认文件系统,ext系列最新版本(前身为ext2、ext3),支持大文件(最大16TB)、大分区(最大1EB),具备日志功能(防止数据丢失),稳定性和兼容性强 | 大多数场景(如系统分区、数据分区) |
| xfs | 高性能日志文件系统,支持更大的文件和分区(最大文件8EB,最大分区16EB),读写速度快 | 大文件存储和高并发场景(如数据库、大数据存储),CentOS 7/8默认系统文件系统 |
| btrfs | 新一代文件系统,支持快照、动态扩容、数据校验等高级特性,稳定性略逊于ext4和xfs | 需要灵活管理和数据安全的场景,尚未成为主流默认文件系统 |
| vfat | 兼容Windows和Linux,支持FAT32格式;缺点:不支持权限管理、单文件最大4GB | U盘、移动硬盘等移动存储设备 |
| ntfs | Windows默认文件系统,Linux需安装ntfs-3g驱动才能支持读写 | 访问Windows分区或NTFS格式的移动存储设备 |