7·基础入门入门

Linux 文件系统结构

filesystemhierarchy

第7课 - Linux 文件系统结构

学习目标

通过本课学习,你将能够:

  1. 理解Linux系统“一切皆文件”的核心思想与目录层级结构
  2. 识别并说明根目录(/)下各重要子目录的标准用途
  3. 掌握绝对路径与相对路径的区别及使用方法
  4. 初步理解文件权限的概念及其重要性
  5. 能够使用基本命令在文件系统中导航和查看信息

核心概念

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:路径练习

要求

  1. 当前在/var目录,请使用相对路径切换到/var/log目录
  2. /var/log目录,使用绝对路径切换到您的家目录
  3. 列出当前家目录中的所有文件(包括隐藏文件)

预期输出

$ pwd
/var
$ cd log
$ pwd
/var/log
$ cd ~
$ ls -la
# 显示家目录内容,包括隐藏文件如 .bashrc, .profile 等

练习3:文件信息探查

要求:完成以下任务并记录结果:

  1. 找到bash命令的位置(提示:使用which bash
  2. 查看/etc/passwd文件的详细信息(权限、大小等)
  3. 说出/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文件系统设计的体现——所有存储设备最终都整合到同一个目录树中。

小结

关键要点回顾

  1. Linux文件系统是单一的树形结构,一切从根目录/开始,没有盘符概念
  2. 每个目录都有特定用途
    • /bin, /sbin:可执行文件
    • /home:用户个人数据
    • /etc:系统配置
    • /var:可变数据(日志、缓存)
    • /tmp:临时文件
  3. 路径分为绝对路径和相对路径
    • 绝对路径:从/开始,如/home/user/file
    • 相对路径:从当前位置开始,如./file../dir/
  4. 文件权限是安全的基础,通过ls -l可以查看详细信息
  5. 理解文件系统结构是有效使用Linux的基础,这有助于快速定位配置文件、日志和程序

下一步学习预告

下一课我们将学习lscdpwd等基本导航命令,这些命令将帮助你在刚学的文件系统结构中自由穿梭,查看目录内容、切换位置和确认当前位置。

提示:在开始下一课之前,建议您多使用ls命令探索不同目录,熟悉文件系统结构。这是成为Linux高手的第一步!

练习编辑器

rust
Loading...

继续学习

完成本课后,建议继续学习下一课「ls、cd、pwd 基本导航」 以巩固所学知识。