第4章 Linux 的文件系统——为什么 Linux 没有 C 盘?
从这一章开始,我们正式进入Linux 本身。
前面三章,我们一直在搭建世界观。很多新手会觉得那些内容"没什么用",但实际上,它们会在后面不断发挥作用。
比如,当你学习 Docker、SSH、Nginx 时,你会一直想到:"它最终还是通过 Shell 调用程序,再通过 Kernel 操作硬件。"
现在,我们开始学习 Linux 最重要的一部分。
第1节 Windows 和 Linux 最大的区别
如果你用了十几年 Windows,那么你脑子里的文件系统大概是这样的:
C:\ ├── Windows ├── Program Files ├── Users └── ... D:\ ├── Movies ├── Games └── ... E:\ └── Backup你会认为:
一个磁盘 = 一个盘符(C、D、E)
这是 Windows 的设计。
但是 Linux 完全不是这样。
Linux 里面没有:
C: D: E:只有一个:
/为什么?
第2节 什么是根目录(Root Directory)
Linux 的整个世界,都是从一个地方开始。那就是:
/这个符号读作:
Root(根)
或者:
根目录。
请注意:
这里的 Root,不是 root 用户。
以后你会看到两个 Root:
/这是:
根目录。
而:
root这是:
管理员用户。
这是两个完全不同的概念,新手最容易混淆。
你可以把 Linux 想象成一棵树。
Windows 更像这样:
C: D: E:三棵树。
而 Linux只有一棵树。
例如:
/ ├── home ├── etc ├── var ├── usr ├── bin ├── tmp ├── dev └── boot所有东西全部从:
/开始。
第3节 为什么 Linux 要这样设计?
这里体现了 Linux 的设计哲学。
举个例子。
假设你的电脑有:
- 一个 SSD
- 一个机械硬盘
- 一个 U 盘
- 一个 NAS 网络存储
Windows:
可能会变成:
C: D: E: Z:越来越多盘符,Linux不会。
Linux 会把这些设备:
挂载(Mount)到目录上。
例如:
/ ├── home ├── data ├── backup └── media可能:
/data其实就是第二块 SSD。
而:
/media/usb其实就是U盘。
对于程序来说,它根本不关心:
这是:
SSD?
U盘?
NAS?
程序只知道:
它就是一个目录。
这就是 Linux 非常优雅的地方。
第4节 什么叫"挂载(Mount)"?
这是 Linux 非常重要的概念。
假设:
你买了一块新硬盘。
Windows会给它
E:Linux不会。
Linux 会说:你想把它放在哪里?
例如:
你回答:
/data于是整个硬盘就出现在:
/data以后访问:
/data/movie.mp4其实就是在访问第二块硬盘。
所以Linux 没有新增盘符,只有新增目录。
第5节 绝对路径和相对路径
这是以后每天都会用到的概念。
先举一个 Windows 例子。
假设:你的文件在:
C:\Users\x\Desktop\a.txtLinux 写法:
/home/x/Desktop/a.txt注意它都是从:
/开始。
这就叫:
绝对路径(Absolute Path)
因为它描述了完整的位置。
例如:
/home/x/Documents/report.docx无论你现在在哪,它永远表示:同一个文件。
而相对路径就不一样。
假设你现在已经在:
/home/x那么进入Documents可以写:
cd Documents也可以写:
cd /home/x/Documents区别是什么?
第一种:
相对路径。
第二种:
绝对路径。
以后两种都会大量使用。
第6节.和..到底是什么?
很多教程都会告诉你:
cd ..返回上一层。
但是为什么?
其实Linux 每一个目录里面天生就有:
. ..例如:
/home/x里面实际上是:
. .. Desktop Downloads Music其中:
.表示当前目录。
而:
..表示父目录。
例如现在:
/home/x那么:
..就是:
/home所以:
cd ..其实就是:
进入父目录。
如果继续:
cd ..就到了:
/再:
cd ..还是:
/因为根目录已经没有父目录了。
第7节 家目录(Home Directory)
以后你会经常看到:
/home这是所有普通用户的家。
例如:
用户名叫:
alice那么她的家就是:
/home/alice用户名叫:
tom那么:
/home/tom就是Tom 的家。
Windows其实也有:
C:\Users\Tom所以以后你自己的文件一般都会放:
/home/你的用户名里面。
第8节 root 用户的家为什么不是/home/root?
这是一个非常经典的问题。
很多新人都会猜:
/home/root其实不是。
管理员root住在:
/root为什么?
因为Linux 希望即使:
/home所在的磁盘坏了,管理员仍然可以登录,仍然可以修复系统。
所以root 的家放在:
/root而不是:
/home/root这个设计已经沿用了几十年。
第9节 Linux 最经典的一句话
现在终于可以讲 Linux 最有名的一句话了。
Everything is a file.(万物皆文件)
第一次听,很多人都会觉得:
这怎么可能?
鼠标也是文件?
网卡也是文件?
硬盘也是文件?
答案是:
从 Linux 的设计角度来说,是的。
不过这里需要准确理解。
它不是说:
"所有东西都是普通文本文件。"
而是说:
Linux 尽量用统一的"文件接口"来表示和操作各种资源。
例如:
- 配置文件,本来就是文本文件。
- 日志,本来也是文件。
- 一个程序,也是一个可执行文件。
- 某些硬件设备,在 Linux 中也会以特殊文件的形式出现。
这样做的好处是什么?
答案是:
统一。
你学会了一套操作文件的方法,很多不同类型的资源都能用类似的方法访问。
这也是 Linux 简洁而强大的原因。
第10节 为什么这一章如此重要?
因为后面所有内容几乎都建立在这一章上。
例如:
安装软件:
/usr修改配置:
/etc查看日志:
/var/log进入自己目录:
/home/x都会不停出现。
如果不知道Linux 目录为什么这样设计,以后很多教程都会看得一头雾水。
本章总结
今天请记住八件事情:
- Linux 没有 C 盘、D 盘,只有一个根目录
/。 - 整个 Linux 文件系统是一棵树,所有路径都从
/开始。 - 新硬盘不是分配盘符,而是挂载(Mount)到某个目录。
- 绝对路径从
/开始,相对路径相对于当前目录。 .表示当前目录,..表示父目录。- 普通用户的家在
/home/用户名。 - 管理员 root 的家在
/root,不要和根目录/混淆。 - "Everything is a file" 表示 Linux 尽量用统一的文件接口管理资源,而不是说所有东西都是普通文本。
📖 到这里,你已经完成了 Linux 世界观的四大支柱
- ✅ 第1章:操作系统是什么
- ✅ 第2章:Kernel(内核)
- ✅ 第3章:Shell 与 Terminal
- ✅ 第4章:Linux 文件系统
从下一章开始,我们终于要开始输入真正的 Linux 命令,而且不会像网上教程一样上来就让你背几十个命令。
我们会从一个问题开始:
"我现在到底在哪里?"
然后自然引出 Linux 最基础、也是最重要的第一个命令:pwd。
你会发现,每一个命令都是为了解决一个实际问题,而不是为了背命令而存在。
