一、文件系统基础概念
1. 核心原则:Linux 中“一切皆文件”,硬件设备、目录、普通文件均以文件形式管理,所有文件挂载在根目录 / 下,形成树形结构。
2. FHS 标准:遵循文件系统层次结构标准(Filesystem Hierarchy Standard),规定各目录的功能和存放内容,保证不同 Linux 发行版(Ubuntu、CentOS、RedHat 等)目录结构一致。
3. 目录分隔符:使用 / 分隔目录(如 /home/user ),不同于 Windows 的 \ 。
4. 绝对路径 vs 相对路径:
- 绝对路径:从根目录 / 开始(如 /etc/passwd );
- 相对路径:从当前目录开始(如 ../bin/ls , .. 表示上级目录)。
二、根目录 / 下核心子目录详解
(一)系统启动与运行必备目录(不可缺少,删除会导致系统崩溃)
目录路径 核心功能 常用文件/示例 注意事项
/ 所有文件的顶级父目录,所有分区、设备最终挂载于此 无直接文件,仅包含子目录 根目录空间不足会导致系统无法启动/运行,建议单独分区(至少 20GB)
/bin 基础二进制命令目录,普通用户和 root 均可执行,系统单用户模式下也能访问(系统启动必需命令) ls (列出目录)、 cp (复制文件)、 mv (移动/重命名)、 cat (查看文件)、 bash (默认shell)、 rm (删除) 存放“最核心”命令,缺失会导致系统无法基本操作
/sbin 系统管理命令目录,仅 root 用户可执行(普通用户需用 sudo ) reboot (重启)、 shutdown (关机)、 ifconfig (网络配置)、 fdisk (磁盘分区)、 mkfs (格式化)、 init (系统初始化进程) 用于系统维护(分区、格式化、重启等),普通用户无执行权限
/boot 存放系统启动相关文件,建议单独分区(100-500MB 足够) vmlinuz (Linux 内核镜像)、 initrd.img (初始化内存磁盘)、 grub (启动引导程序配置目录)、 grub.cfg (引导菜单配置) 不可删除,删除会导致系统无法启动;更新内核时会新增文件,需预留空间
/dev 设备文件目录,硬件设备以文件形式存在(无实际数据,仅为内核与设备的交互接口) 块设备(硬盘/分区): /dev/sda (第一块硬盘)、 /dev/sda1 (第一块硬盘第一个分区); 字符设备(终端/键盘): /dev/tty1 (第一个虚拟终端)、 /dev/keyboard ; 特殊设备: /dev/null (黑洞,写入数据丢弃)、 /dev/zero (生成空字符流)、 /dev/random (生成随机数) 无需手动创建,系统自动识别硬件生成;可通过 ls /dev 查看已识别设备
/proc 虚拟文件系统(不占用磁盘空间,数据存于内存),实时反映内核和进程状态 cat /proc/cpuinfo (查看 CPU 信息)、 cat /proc/meminfo (查看内存信息)、 /proc/1 (PID=1 的 init 进程信息)、 /proc/net (网络连接信息) 数据动态更新,重启后重置;不可修改,仅用于查看系统状态
/sys 虚拟文件系统,暴露内核硬件设备信息和配置接口(比 /proc 更详细的硬件管理) /sys/class/net (网络设备信息)、 /sys/class/disk (磁盘设备信息) 主要供系统管理工具使用,普通用户无需直接操作
(二)配置文件目录(系统/软件的“设置中心”)
目录路径 核心功能 常用文件/示例 注意事项
/etc 系统和软件的核心配置文件目录,几乎所有配置都存于此 用户与权限: /etc/passwd (用户账号信息)、 /etc/shadow (用户密码密文,仅 root 可读)、 /etc/group (用户组信息); 网络配置: /etc/hosts (域名-IP 映射)、 /etc/resolv.conf (DNS 服务器配置)、 /etc/sysconfig/network-scripts (CentOS 网络接口配置); 服务配置: /etc/ssh/sshd_config (SSH 服务配置)、 /etc/crontab (定时任务配置)、 /etc/systemd/system (系统服务配置); 应用配置: /etc/my.cnf (MySQL 配置)、 /etc/nginx/nginx.conf (Nginx 配置)、 /etc/profile (系统环境变量配置) 修改前务必备份(如 cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak ),错误配置可能导致服务无法启动
(三)用户与家目录(存放个人文件和个性化配置)
目录路径 核心功能 常用文件/示例 注意事项
/home 普通用户的家目录,每个用户有独立子目录(命名为用户名) /home/zhangsan (用户 zhangsan 的家目录)、 ~ (终端中表示当前用户家目录); 存放内容:个人文档、下载文件、桌面配置、隐藏配置文件(如 .bashrc (用户命令别名)、 .ssh (SSH 密钥)、 .vimrc (Vim 编辑器配置)) 用户对自己的家目录拥有完全权限(读/写/执行),其他用户默认无权限访问
/root 系统管理员(root 用户)的家目录 存放 root 的个人文件、配置(如 .bash_profile 、 .ssh ) 普通用户无访问权限( ls /root 会提示权限不足);不要与根目录 / 混淆
(四)软件与资源目录(存放系统软件、第三方软件和共享资源)
目录路径 核心功能 常用文件/示例 注意事项
/usr 系统软件资源目录(相当于 Windows 的 Program Files ),存放非启动必需的软件和资源,占磁盘空间最大 /usr/bin :非核心用户命令(如 python 、 java 、 git 、 gcc (编译器)); /usr/sbin :非核心系统管理命令(如 httpd (Apache 服务)、 vsftpd (FTP 服务)); /usr/lib :32 位程序依赖的库文件( .so 动态链接库); /usr/lib64 :64 位程序依赖的库文件; /usr/share :共享数据( man 手册( /usr/share/man )、字体( /usr/share/fonts )、软件文档、示例代码); /usr/local :手动编译安装的软件( make && make install 默认路径),包含 bin 、 lib 、 etc 子目录 /usr 可单独分区,方便系统重装时保留软件; /usr/local 下的软件可手动卸载(删除对应目录即可)
/opt 第三方软件安装目录,用于存放独立于系统的大型软件(避免与系统软件混淆) /opt/hadoop-3.3.6 (Hadoop 大数据组件)、 /opt/tomcat-9.0 (Tomcat 服务器)、 /opt/mongodb (MongoDB 数据库) 软件通常直接解压到此处,目录结构清晰,卸载时直接删除整个软件目录即可
(五)动态数据与临时目录(存放变化的文件、临时文件)
目录路径 核心功能 常用文件/示例 注意事项
/var 动态可变数据目录,文件大小随系统运行增长(日志、数据库数据等) /var/log :系统日志( syslog (综合日志)、 dmesg (内核启动日志)、 secure (用户登录日志)、 nginx/access.log (Nginx 访问日志)); /var/lib :软件运行数据( mysql (MySQL 数据文件)、 rpm (RPM 包管理数据库)、 docker (Docker 镜像数据)); /var/spool :队列数据( mail (邮件队列)、 crontabs (定时任务队列)、 print (打印队列)); /var/www :Web 服务器默认根目录(Apache/Nginx 网站文件存放处) 建议单独分区,避免日志/数据库数据占满根目录;定期清理 /var/log 下的旧日志
/tmp 系统和程序的临时文件目录,所有用户均可读写 程序运行时生成的临时缓存、下载的临时文件 系统默认定期清理(重启后文件全部丢失),不要存放重要数据;可手动创建临时文件(如 /tmp/test.txt )
/run 临时运行时目录,存放系统启动后的进程 PID 文件、锁文件 /run/nginx.pid (Nginx 进程 ID)、 /run/lock (文件锁) 与 /tmp 类似,重启后清空,优先级高于 /tmp
(六)挂载点目录(用于挂载外部设备/分区)
目录路径 核心功能 常用操作示例 注意事项
/mnt 手动挂载外部存储设备的临时挂载点 mount /dev/sdb1 /mnt/usb (挂载 U 盘到 /mnt/usb )、 mount /dev/cdrom /mnt/cdrom (挂载光驱) 挂载后设备内容可在该目录访问,卸载后目录为空
/media 自动挂载点目录,系统自动识别可移动设备并挂载 插入 U 盘后自动挂载到 /media/usb0 ,插入移动硬盘自动挂载到 /media/hdd 适用于普通用户,无需手动执行 mount 命令
三、常用目录操作命令(配合目录学习,直接可用)
命令 功能 示例
ls 列出目录内容 ls /etc (列出 /etc 下的文件/目录)、 ls -l /home (详细列出 /home 内容)
cd 切换目录 cd /usr/bin (切换到 /usr/bin )、 cd ~ (切换到当前用户家目录)、 cd .. (切换到上级目录)
pwd 显示当前目录的绝对路径 pwd (输出如 /home/zhangsan )
mkdir 创建目录 mkdir /tmp/test (在 /tmp 下创建 test 目录)、 mkdir -p /a/b/c (递归创建多级目录)
rmdir 删除空目录 rmdir /tmp/test (删除空目录 test )
mount 挂载设备/分区 mount /dev/sda3 /data (将 /dev/sda3 分区挂载到 /data )
umount 卸载设备/分区 umount /mnt/usb (卸载 U 盘)
find 查找目录/文件 find /etc -name "ssh" (在 /etc 下查找名为 ssh 的文件/目录)
cat 查看文件内容 cat /proc/cpuinfo (查看 CPU 信息)、 cat /etc/passwd (查看用户信息)
四、新手常见误区与注意事项
1. 不要混淆 / 和 /root : / 是根目录(所有文件的起点), /root 是管理员的家目录,两者无关联。
2. 禁止随意删除系统目录:尤其是 /bin 、 /sbin 、 /boot 、 /etc ,删除后可能导致系统崩溃。
3. 根目录空间管理:避免在 / 下直接存放大量文件,建议将 /home 、 /var 、 /usr 单独分区。
4. 配置文件修改备份:修改 /etc 下的配置文件前,务必备份(如 cp 原文件 原文件.bak ),出错后可恢复。
5. 区分绝对路径和相对路径:执行命令时,若提示“命令未找到”,可能是路径错误,优先使用绝对路径测试。
五、总结
Linux 文件系统的核心是“树形结构+目录功能分工”,记住以下关键逻辑即可快速掌握:
1. 根目录 / 是所有文件的起点;
2. 系统启动相关文件在 /boot 、 /bin 、 /sbin ;
3. 配置文件在 /etc ;
4. 用户文件在 /home (普通用户)、 /root (管理员);
5. 软件在 /usr (系统软件)、 /opt (第三方软件);
6. 动态数据在 /var ,临时文件在 /tmp 、 /run ;
7. 外部设备挂载在 /mnt 、 /media 。
通过“目录功能+常用命令+实际操作”结合,能快速熟悉 Linux 文件系统,为后续系统管理、软件安装、故障排查打下基础。