第7课 - Linux 文件系统结构
学习目标
通过本课学习,你将能够:
- 理解Linux系统“一切皆文件”的核心思想与目录层级结构
- 识别并说明根目录(/)下各重要子目录的标准用途
- 掌握绝对路径与相对路径的区别及使用方法
- 初步理解文件权限的概念及其重要性
- 能够使用基本命令在文件系统中导航和查看信息
核心概念
1. 文件系统树:一切从根开始
想象一下,Linux的文件系统就像一棵倒置的大树,所有内容都从根目录(/) 开始生长。这与Windows的C盘、D盘等分区概念完全不同。在Linux中,即使有多个硬盘或分区,它们也会被“挂载”到这棵大树的某个位置(如/home、/data)。
# 查看根目录下的内容
ls /
2. 重要目录速查表
| 目录 | 用途说明 | 类比 |
|---|---|---|
/bin | 存放基本用户命令(如ls, cp, mv) | 工具箱里的基础工具 |
/sbin | 存放系统管理命令(如fdisk, reboot) | 管理员的专用工具 |
/home | 普通用户的家目录所在位置 | 每个人的个人房间 |
/root | 超级用户(root)的家目录 | 系统总管的办公室 |
/etc | 系统配置文件集中存放处 | 系统的设置中心 |
/var | 可变数据,如日志、缓存 | 系统的记事本和暂存区 |
/tmp | 临时文件,重启可能清空 | 临时的草稿纸 |
/usr | 用户程序和数据,第二大层级 | 大型软件库 |
/dev | 设备文件(硬盘、终端等) | 设备的接口窗口 |
/proc | 虚拟文件系统,反映进程和内核信息 | 系统的实时监控室 |
3. 路径:文件的“门牌号”
- 绝对路径:从根目录
/开始的完整路径,如/home/user/documents/file.txt - 相对路径:相对于当前位置的路径,如
./file.txt(当前目录)、../parent/(上级目录)
# 查看当前所在位置
pwd
# 使用相对路径进入上级目录
cd ..
4. 文件权限初印象
每个文件都有访问权限,控制谁能读取(r)、写入(w)或执行(x)。使用ls -l可以看到详细信息:
ls -l /etc/passwd
# 输出示例:-rw-r--r-- 1 root root 2810 Jan 1 00:00 /etc/passwd
# 解释:第一个字符-表示普通文件
# rw-r--r-- 表示所有者可读写,同组用户可读,其他人可读
代码示例
示例1:探索文件系统结构
#!/bin/bash
# 文件系统探索脚本
echo "=== Linux文件系统结构探索 ==="
echo ""
# 显示当前工作目录
echo "1. 当前目录位置:"
pwd
echo ""
# 显示根目录下的顶级目录
echo "2. 根目录(/)下的内容:"
ls -la /
echo ""
# 查看用户家目录结构
echo "3. 您的家目录结构:"
ls -la ~
echo ""
# 查看/etc目录内容(配置文件目录)
echo "4. /etc目录下的部分内容(系统配置):"
ls /etc | head -10
echo "... (显示前10项)"
echo ""
# 查看文件权限示例
echo "5. 文件权限示例:"
ls -l /bin/ls
示例2:路径操作练习
#!/bin/bash
# 路径操作实践
# 创建一个测试环境
mkdir -p ~/linux_lab/dir1/subdir
touch ~/linux_lab/file1.txt
touch ~/linux_lab/dir1/file2.txt
echo "=== 路径操作演示 ==="
cd ~/linux_lab
# 绝对路径访问
echo "使用绝对路径访问文件:"
cat ~/linux_lab/dir1/file2.txt 2>/dev/null && echo "文件存在" || echo "文件为空"
ls -l ~/linux_lab/dir1/
# 相对路径访问
echo ""
echo "使用相对路径访问:"
ls ./dir1/ # 相对路径访问dir1目录
ls dir1/ # 省略./也可以
# 特殊目录符号
echo ""
echo "特殊目录符号:"
echo "当前目录: ."
echo "上级目录: .."
echo "上上级目录: ../.."
实践练习
练习1:目录识别
要求:运行以下命令,观察并记录每个目录的作用:
ls /etc/hostname # 这个文件包含什么?
ls /var/log/syslog # 系统日志在哪里?
ls /usr/bin/python* # Python解释器在哪里?
预期输出示例:
/etc/hostname显示主机名配置文件/var/log/syslog显示系统日志文件/usr/bin/python3显示Python解释器路径
练习2:路径练习
要求:
- 当前在
/var目录,请使用相对路径切换到/var/log目录 - 从
/var/log目录,使用绝对路径切换到您的家目录 - 列出当前家目录中的所有文件(包括隐藏文件)
预期输出:
$ pwd
/var
$ cd log
$ pwd
/var/log
$ cd ~
$ ls -la
# 显示家目录内容,包括隐藏文件如 .bashrc, .profile 等
练习3:文件信息探查
要求:完成以下任务并记录结果:
- 找到
bash命令的位置(提示:使用which bash) - 查看
/etc/passwd文件的详细信息(权限、大小等) - 说出
/dev/null是什么类型的文件
预期答案思路:
bash通常位于/bin/bash或/usr/bin/bash/etc/passwd的权限通常是-rw-r--r--,所有者是root/dev/null是特殊设备文件,用于丢弃输出
常见错误
1. 混淆绝对路径和相对路径
# ❌ 错误:在/home/user目录下尝试用相对路径访问/etc
cd ../etc # 这可能会去到错误的位置
# ✅ 正确:使用绝对路径
cd /etc
2. 在根目录进行危险操作
# ❌ 危险:在根目录执行删除等操作
cd /
rm -rf * # 这会删除整个系统!
# ✅ 安全:始终确认当前目录
pwd # 确认当前位置
ls # 确认要操作的内容
3. 忽略文件权限的重要性
# ❌ 忽略权限导致的问题
echo "test" > /etc/test.conf # 普通用户无法写入/etc
# ✅ 正确:了解并尊重权限设置
# 需要sudo权限或写入有权限的位置
sudo sh -c 'echo "test" > /etc/test.conf'
# 或写入用户自己的目录
echo "test" > ~/test.conf
4. 不理解挂载点的概念
新手可能会困惑为什么插入U盘后内容不在根目录,而可能在/media或/mnt下。这是Linux文件系统设计的体现——所有存储设备最终都整合到同一个目录树中。
小结
关键要点回顾
- Linux文件系统是单一的树形结构,一切从根目录
/开始,没有盘符概念 - 每个目录都有特定用途:
/bin,/sbin:可执行文件/home:用户个人数据/etc:系统配置/var:可变数据(日志、缓存)/tmp:临时文件
- 路径分为绝对路径和相对路径:
- 绝对路径:从
/开始,如/home/user/file - 相对路径:从当前位置开始,如
./file或../dir/
- 绝对路径:从
- 文件权限是安全的基础,通过
ls -l可以查看详细信息 - 理解文件系统结构是有效使用Linux的基础,这有助于快速定位配置文件、日志和程序
下一步学习预告
下一课我们将学习ls、cd、pwd等基本导航命令,这些命令将帮助你在刚学的文件系统结构中自由穿梭,查看目录内容、切换位置和确认当前位置。
提示:在开始下一课之前,建议您多使用
ls命令探索不同目录,熟悉文件系统结构。这是成为Linux高手的第一步!
练习编辑器
rust
Loading...