Linux命令每日一学:文件系统基础

🎯 目标:理解Linux文件系统的层级结构,明确根目录和核心子目录的作用,掌握绝对/相对路径表示法,和基础文件类型。

⏱️ 时长建议:约 30 分钟

一、核心概念

1. 什么是文件系统

  • 文件系统是操作系统用于组织、存储和管理文件的规则和数据结构。
  • 类比:图书馆的书架系统(按分类、编号存放书籍)。

2. Linux 文件系统的特点

  • 树形结构:所有文件和目录从根目录 / 开始分层组织。
  • 一切皆文件:设备、进程、网络连接等都以文件形式存在(如 /dev/sda 是磁盘设备文件)。

二、核心目录结构

目录 用途 示例文件/子目录
/ 根目录,所有目录的起点 /bin, /etc, /home
/bin 基础命令(如 ls, cp ls, cat, mv
/etc 系统配置文件 passwd, nginx.conf
/home 普通用户的家目录 /home/user1, /home/user2
/var 动态数据(日志、缓存等) /var/log, /var/cache
/tmp 临时文件(重启后自动清理) 自动生成的临时文件
/dev 设备文件(磁盘、USB等) /dev/sda1, /dev/ttyUSB0
/proc 进程和内核信息(虚拟文件系统) /proc/cpuinfo, /proc/meminfo

练习

1
2
ls /      # 查看根目录下的核心子目录
ls /etc   # 浏览系统配置文件

三、文件路径

  • 绝对路径:从根目录 / 开始的完整路径(如 /home/user1/file.txt
  • 相对路径:相对于当前目录的路径(如 ../doc/report.pdf
    • . 表示当前目录
    • .. 表示上级目录

四、文件类型

标识符 文件类型 说明
- 普通文件 分文本和二进制文件,文本可编辑,二进制多为程序或库
d 目录文件 用于组织管理文件和目录,类似文件夹
l 链接文件(软链接) 类似快捷方式,指向原文件,原文件删则失效
h 链接文件(硬链接) 多文件名指向同一inode,删其一不影响数据
b 块设备文件 用于硬盘、光盘等,以块为单位随机读写
c 字符设备文件 用于串口、键盘等,按字符顺序读写
p 管道文件 用于进程间通信,数据先进先出
s 套接字文件 用于网络或本地进程间的数据交换

练习

1
2
ls -l /dev/null  # 查看字符设备文件类型(显示 'c')
ls -l /bin       # 查看目录类型(显示 'd')

五、文件权限基础

1. 权限三要素

  • 用户(Owner):文件所有者。
  • 组(Group):文件所属用户组。
  • 其他(Others):其他用户。

2. 权限类型

符号 权限 对文件的影响 对目录的影响
r 查看文件内容 列出目录中的文件
w 修改文件内容 在目录中创建/删除文件
x 执行 运行可执行文件(如脚本、程序) 进入目录(如 cd 操作)

3. 示例

1
-rw-r--r-- 1 user group 1024 Jan 1 12:00 file.txt
  • -rw-:所有者可读写;
  • r--:所属用户组只可读;
  • r--:其他用户只可读;

练习

1
2
ls -l /etc/passwd  # 查看文件权限
chmod +x script.sh # 为脚本添加执行权限

六、总结

通过这30分钟的学习,你已掌握Linux文件系统的核心基础!后续可深入学习 mountln 等进阶命令。

七、课后测验

1. 快速问答

🤔 如何表示用户对目录有“写”权限? 用户可以在目录中创建或删除文件。

  • Q2:/proc/cpuinfo 是普通文件吗? A:否,它是虚拟文件,动态反映CPU信息。

2. 动手任务

  • 任务1:进入 /tmp 目录,创建一个文件 test.txt
    1
    
    cd /tmp && touch test.txt
    
  • 任务2:查看 /home 目录的类型和权限。
    1
    
    ls -ld /home
    

【Linux每日一学】系列文章首发于公众号【小菜学编程】,敬请关注:

【Linux命令】系列文章首发于公众号【小菜学编程】,敬请关注: