本章将带你深入理解 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 |
📝 课后练习
-
使用
ls -la /查看根目录下所有文件,找出哪些是隐藏的(以.开头)? -
创建以下结构:
bashmkdir -p ~/project/{src,docs,tests} touch ~/project/src/main.py -
将
main.py复制一份到docs/并重命名为main_backup.py。 -
使用
du找出/var/log中最大的 3 个日志文件。 -
(挑战)编写一个命令,列出
/usr/bin中以c开头的前 10 个命令:bashls /usr/bin/c* | head -10
🔜 下一章预告:第5章《Shell 基础与命令行操作》
我们将深入学习:
- 什么是 Shell?Bash 的基本工作原理
- 命令的语法结构(命令、选项、参数)
- 使用通配符(
*,?,[])进行批量操作 - 管道
|与重定向>,>>,< - 命令帮助系统:
--help,man,info
准备好进入 Linux 的"命令行世界"核心了吗?