第4章:Linux 文件系统结构与路径管理

本章将带你深入理解 Linux 的"文件宇宙"------从根目录 / 开始,认识每一个关键目录的作用,掌握路径操作的核心技能,为后续的系统管理、软件配置和脚本编写打下坚实基础。

🌟 本章目标

  • 理解 Linux 文件系统的树状结构与 FHS 标准
  • 掌握根目录下主要子目录的功能(/bin, /etc, /var, /home 等)
  • 区分绝对路径与相对路径
  • 熟练使用文件和目录操作命令:ls, cd, pwd, mkdir, touch, cp, mv, rm
  • 学会查看磁盘空间使用情况(df, du

4.1 Linux 文件系统概述

与 Windows 的 C:\, D:\ 不同,Linux 使用 单根树结构 ,所有文件和设备都挂载在 /(根目录)之下。

复制代码
/
├── bin
├── etc
├── home
├── usr
├── var
├── tmp
├── dev
├── proc
├── sys
└── ...

📌 FHS(Filesystem Hierarchy Standard)是 Linux 文件系统层级结构的标准,openEuler 遵循此规范。


4.2 根目录下的核心目录详解

目录 用途说明
/ 根目录,整个文件系统的起点
/bin 基本用户命令(如 ls, cp, bash),所有用户可用
/sbin 系统管理命令(如 fdisk, ifconfig, reboot),通常需 root 权限
/etc 配置文件目录(如网络、用户、服务配置)⚠️ 重点!
/home 普通用户的主目录(如 /home/zhangsan
/root root 用户的家目录(不是 /home/root
/tmp 临时文件目录,重启后内容可能被清除
/usr 用户程序目录,包含: - /usr/bin:用户命令 - /usr/sbin:系统命令 - /usr/lib:库文件 - /usr/share:共享数据(文档、图标等)
/var 可变数据目录,如: - /var/log:日志文件 - /var/www:网站文件(可选) - /var/spool:任务队列(打印、邮件)
/dev 设备文件目录(如 /dev/sda 硬盘,/dev/ttyS0 串口)
/proc 虚拟文件系统,反映内核和进程状态(如 /proc/cpuinfo
/sys 虚拟文件系统,用于设备和驱动管理(与 udev 配合)
/boot 启动相关文件(内核 vmlinuz、引导配置 grub2
/lib/lib64 共享库文件,支持 /bin/sbin 中的程序运行

💡 小技巧:

记住几个关键路径:

  • 配置 → /etc
  • 日志 → /var/log
  • 用户文件 → /home/用户名
  • 网站 → /var/www/html(常见)

4.3 路径的基本概念

✅ 绝对路径(Absolute Path)

/ 开头,表示从根目录开始的完整路径。

bash 复制代码
/home/zhangsan
/etc/ssh/sshd_config
/usr/bin/python3

✅ 相对路径(Relative Path)

相对于当前工作目录的路径,不以 / 开头。

假设当前在 /home/zhangsan

相对路径 含义
Documents /home/zhangsan/Documents
../root /home/root.. 表示上级目录)
./script.sh 当前目录下的 script.sh. 表示当前目录)

4.4 常用文件与目录操作命令

📂 1. ls ------ 列出目录内容

bash 复制代码
ls              # 列出当前目录文件
ls /home        # 列出 /home 下的内容
ls -l           # 详细列表(权限、大小、时间)
ls -a           # 显示隐藏文件(以 . 开头)
ls -la          # 详细 + 隐藏文件
ls -lh          # 人类可读大小(KB/MB/GB)

📌 示例输出解释:

复制代码
-rw-r--r-- 1 zhangsan zhangsan 1.2K Apr 5 10:00 myfile.txt
 ^^^^^^^^^^
 权限 | 所有者 | 所属组 | 大小 | 时间 | 文件名

📍 2. cd ------ 切换目录

bash 复制代码
cd /etc             # 切换到 /etc
cd ~                # 回到当前用户主目录
cd                 # 同上(默认参数)
cd /                # 切换到根目录
cd ..               # 进入上级目录
cd -                # 返回上一次所在的目录

💡 快捷方式:

  • ~:表示 /home/用户名
  • ..:上级目录
  • .:当前目录

📍 3. pwd ------ 显示当前路径

bash 复制代码
pwd
# 输出示例:/home/zhangsan/Documents

📁 4. mkdir ------ 创建目录

bash 复制代码
mkdir myfolder                  # 创建单个目录
mkdir -p project/{src,docs}     # 创建多级目录(使用花括号展开)
mkdir -p /tmp/test/dir1         # 创建嵌套目录(需 -p)

⚠️ 普通用户不能在 / 下直接创建目录,需 root 权限。


📄 5. touch ------ 创建空文件或更新时间戳

bash 复制代码
touch hello.txt           # 创建空文件
touch /tmp/log.txt        # 创建日志占位文件
touch existing.txt        # 更新已有文件的时间戳

📁 6. cp ------ 复制文件或目录

bash 复制代码
cp file1.txt file2.txt            # 复制文件
cp /etc/hosts /tmp/               # 复制到 /tmp
cp -r myfolder/ backup/           # 递归复制整个目录(必须加 -r)
cp -i file.txt /backup/           # 交互式复制(覆盖前提示)

🔄 7. mv ------ 移动或重命名

bash 复制代码
mv oldname.txt newname.txt        # 重命名
mv file.txt /tmp/                 # 移动文件
mv folder/ /backup/               # 移动目录

💡 mv 在同一分区是"剪切",跨分区是"复制+删除"


🗑️ 8. rm ------ 删除文件或目录

bash 复制代码
rm file.txt               # 删除文件
rm -i *.log               # 交互式删除(每次确认)
rm -r myfolder/           # 递归删除目录及其内容
rm -rf dangerous/         # 强制递归删除(⚠️ 危险!慎用)

⚠️ 警告:rm -rf / 会尝试删除整个系统!永远不要运行!


4.5 查看磁盘与目录空间使用

💾 df ------ 查看磁盘分区使用情况

bash 复制代码
df -h

输出示例:

复制代码
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        20G  3.2G   16G  17% /
devtmpfs        1.9G     0  1.9G   0% /dev
tmpfs           1.9G     0  1.9G   0% /dev/shm
  • -h:人类可读格式(GB/MB)
  • Use%:使用率,超过 80% 应警惕

📦 du ------ 查看目录或文件占用空间

bash 复制代码
du -sh /home        # 查看 /home 总大小
du -h --max-depth=1 /var   # 查看 /var 下各子目录大小
du -a /tmp | sort -hr | head -5   # 找出 /tmp 中最大的 5 个文件
  • -s:汇总
  • -h:易读格式
  • --max-depth=N:显示 N 层目录

✅ 本章小结

命令 功能 常用选项
ls 列目录 -l, -a, -h
cd 切目录 .., ~, -
pwd 显示路径
mkdir 创建目录 -p(递归)
touch 创建文件
cp 复制 -r(目录), -i(确认)
mv 移动/重命名
rm 删除 -r, -f, -i
df 磁盘使用 -h
du 目录大小 -sh, --max-depth

📝 课后练习

  1. 使用 ls -la / 查看根目录下所有文件,找出哪些是隐藏的(以 . 开头)?

  2. 创建以下结构:

    bash 复制代码
    mkdir -p ~/project/{src,docs,tests}
    touch ~/project/src/main.py
  3. main.py 复制一份到 docs/ 并重命名为 main_backup.py

  4. 使用 du 找出 /var/log 中最大的 3 个日志文件。

  5. (挑战)编写一个命令,列出 /usr/bin 中以 c 开头的前 10 个命令:

    bash 复制代码
    ls /usr/bin/c* | head -10

🔜 下一章预告:第5章《Shell 基础与命令行操作》

我们将深入学习:

  • 什么是 Shell?Bash 的基本工作原理
  • 命令的语法结构(命令、选项、参数)
  • 使用通配符(*, ?, [])进行批量操作
  • 管道 | 与重定向 >, >>, <
  • 命令帮助系统:--help, man, info

准备好进入 Linux 的"命令行世界"核心了吗?

相关推荐
Coder个人博客2 小时前
Linux6.19-ARM64 mm ioremap子模块深入分析
linux·安全·车载系统·系统架构·系统安全·鸿蒙系统·安全架构
百炼成神 LV@菜哥2 小时前
Kylin Linux V10 aarch64安装DBeaver
java·linux·服务器·kylin
郝学胜-神的一滴2 小时前
Linux网络编程之listen函数:深入解析与应用实践
linux·服务器·开发语言·网络·c++·程序人生
lcreek2 小时前
Linux信号掩码与sigsuspend原子操作:临界区信号安全处理实例详解
linux·系统编程
百***78752 小时前
Clawdbot 技术实战:基于一步 API 快速接入,打造本地化 AI 自动化助手
运维·人工智能·自动化
EnglishJun2 小时前
数据结构的学习(二)---Makefile的使用
linux·运维·学习
物联网软硬件开发-轨物科技2 小时前
【轨物方案】告别“盲维”时代:如何不动一根电线,帮老旧电站找回消失的 5% 收益?
服务器·网络·数据库
jl48638212 小时前
打造医疗设备的“可靠视窗”:医用控温仪专用屏从抗菌设计到EMC兼容的全链路解析
大数据·运维·人工智能·物联网·人机交互
曾几何时`2 小时前
Docker容器化部署编译运行模块
运维·docker·容器