文章目录
文档配套视频讲解链接地址
- 腾讯课堂视频链接地址 : 27_文件管理_文件系统介绍1
- 腾讯课堂视频链接地址 : 28_文件管理_文件系统介绍2
第08章 文件管理
8.1 linux文件系统介绍
ubuntu的根目录如下:

1. /bin和/sbin目录
bin 是 Binary 的缩写,存放着可执行文件或可执行文件的链接(类似快捷方式),你可以看到 ls, cat, mkdir 等常用命令都在这里,/bin 目录中的文件都是可执行的二进制文件,而不是文本文件。

与 /bin 类似的是 /sbin 目录,System Binary 的缩写,这里存放的命令可以对系统配置进行操作。普通用户可能可以使用这里的命令查看某些系统状态,但是如果想更改配置,就需要 sudo 授权或者切换成超级用户。
可以看到一些熟悉的命令,比如 ifconfig, iptables。普通用户可以使用 ifconfig 查看网卡状态,但是想配置网卡信息,就需要授权了。

2. /boot 目录
这里是系统启动需要的文件,你可以看到 grub 文件夹,它是常见的开机引导程序。我们不应该乱动这里的文件。

3. /dev 目录
dev 是 device 的缩写,这里存放这所有的设备文件。在 Linux 中,所有东西都是以文件的形式存在的,包括硬件设备。
比如说,sda, sdb 就是我电脑上的两块硬盘,后面的数字是硬盘分区 , 鼠标、键盘等等设备也都可以在这里找到。

4. /etc 目录
这个目录经常使用,存放很多程序的配置信息。

5. /lib 目录
lib 是 Library 的缩写,类似于 Windows 系统中存放 dll 文件的库,包含 bin 和 sbin 中可执行文件的依赖。也可能出现 lib32 或 lib64 这样的目录,和 lib 差不多,只是操作系统位数不同而已。

6. /media 目录
这里会有一个以你用户名命名的文件夹,里面是自动挂载的设备,比如 U 盘,移动硬盘,网络设备等。
比如说我在电脑上插入一个 U 盘,系统会把 U 盘自动给我挂载到 /media/linux 这个文件夹里(我的用户名是 linux),如果我要访问 U 盘的内容,就可以在那里找到。

7. /mnt 目录
这也是和设备挂载相关的一个文件夹,一般是空文件夹。media 文件夹是系统自动挂载设备的地方,这里是你手动挂载设备的地方。
比如说,刚才我们在 dev 中看到了一大堆设备,你想打开某些设备看看里面的内容,就可以通过命令把设备挂载到 mnt 目录进行操作。
不过一般来说,现在的操作系统已经很聪明了,像挂载设备的操作几乎都不用你手动做,都被自动挂载到 media 目录了。

8. /opt 目录
opt 是 Option 的缩写,这个文件夹的使用比较随意,一般来说我们自己在浏览器上下载的软件,安装在这里比较好。当然,包管理工具下载的软件也可能被存放在这里。
比如我在这里存放了 搜狗输入法等等软件的文件夹。

9. /proc 目录
proc 是 process 的缩写,这里存放的是全部正在运行程序的状态信息。

你会发现 /proc 里面有一大堆数字命名的文件夹,这个数字其实是 Process ID(PID),文件夹里又有很多文件。
前面说过,Linux 中一切都以文件形式储存,类似 /dev,这里的文件也不是真正的文件,而是程序和内核交流的一些信息。比如说我们可以查看当前操作系统的版本

或者查看 CPU 的状态:


如果你需要调试应用程序,proc 目录中的信息也许会帮上忙。
10. /root 目录
这是 root 用户的家目录,普通用户需要授权才能访问。

11. /run 和 /sys 目录
用来存储某些程序的运行时信息和系统需要的一些信息。

需要注意的是,这两个位置的数据都存储在内存中,所以一旦重启,/run 和 /sys 目录的信息就会丢失,所以不要试图在这里存放任何文件。
12. /srv 目录
srv 是 service 的缩写,主要用来存放服务数据。
对于桌面版 Linux 系统,这个文件夹一般是空的,但是对于 Linux 服务器,Web 服务或者 FTP 文件服务的资源可以存放在这里。

13. /tmp 目录
tmp 是 temporary 的缩写,存储一些程序的临时文件。

临时文件可能起到很重要的作用。比如经常听说某同学的 Word 文档崩溃了,好不容易写的东西全没了,Linux 的很多文本编辑器都会在 /tmp 放一份当前文本的 copy 作为临时文件,如果你的编辑器意外崩溃,还有机会在 /tmp 找一找临时文件抢救一下。
当然,tmp 文件夹在系统重启之后会自动被清空,如果没有被清空,说明系统删除某些文件失败,也许需要你手动删除一下
14. /usr 目录
usr 是 Universal System Resource 的缩写,这里存放的是一些非系统必须的资源,比如用户安装的应用程序。)

/usr 和 /usr/local 目录中又含有 bin 和 sbin 目录,也是存放可执行文件(命令),但和根目录的 bin 和 sbin 不同的是,这里大都是用户使用的工具,而非系统必须使用的。
值得一提的是,如果使用 Linux 桌面版,有时候在桌面找不到应用程序的快捷方式,就需要在 /usr/share/applications 中手动配置桌面图标文件:

15. /var 目录
var 是 variable 的缩写,这个名字是历史遗留的,现在该目录最主要的作用是存储日志(log)信息,比如说程序崩溃,防火墙检测到异常等等信息都会记录在这里。
日志文件不会自动删除,也就是说随着系统使用时间的增长,你的 var 目录占用的磁盘空间会越来越大,也许需要适时清理一下。

16. /home 目录
home 目录,这是普通用户的家目录。在桌面版的 Linux 系统中,用户的家目录会有下载、视频、音乐、桌面等文件夹,这些没啥可说的,我们说一些隐藏的比较重要的文件夹(Linux 中名称以 . 开头就是隐藏文件)。
这是我的家目录的部分文件:


其中 .cache 文件夹存储应用缓存数据,.config 文件夹存储了一部分应用程序的配置,比如说我的 Chrome 浏览器配置就是那里面。但是还有一部分应用程序并不把配置储存在 .config 文件夹,而是自己创建一个隐藏文件夹,存放自己的配置文件等等信息,比如你可以看到 .sougouinput的配置文件就不在 .config 中。
最后说 .local 文件夹,有点像 /usr/local,里面也有 bin 文件夹,也是存放可执行文件的。比如说我的 python pip 以及 pip 安装的一些工具,都存放在 ~/.local/bin 目录中。但是,存在这里的文件,只有该用户才能使用。
这就是为什么,有时候普通用户可以使用的命令,用 sudo 或者超级用户却被告知找不到该命令。因为有的命令是特定用户家目录里的,被添加到了该用户的 PATH 环境变量里,他可以直接用。你超级用户想用当然可以,但是得写全绝对路径才行。
17. cdrom 目录
光盘驱动器的目录 , 一般为空

18. snap 目录
Snaps是跨发行版、无依赖关系且易于安装的应用程序,这些应用程序与所有依赖项打包在一起,可以在所有主要的 Linux 发行版上运行。从单个构建开始,一个 snap(应用程序)将在桌面、云和 IoT 上的所有受支持的 Linux 发行版上运行。支持的发行版包括Ubuntu、Debian、Fedora、Arch Linux、Manjaro 和 CentOS/RHEL。
存放snap软件的目录

19. swapfile 文件
交换文件允许 Linux 将磁盘空间模拟为内存。当你的系统开始耗尽内存时,它会使用交换空间将内存的一些内容交换到磁盘空间上。这样释放了内存,为更重要的进程服务。当内存再次空闲时,它会从磁盘交换回数据。
传统上,交换空间是磁盘上的一个独立分区。安装 Linux 时,只需创建一个单独的分区进行交换。但是这种趋势在最近几年发生了变化。
使用交换文件,你不再需要单独的分区。你会根目录下创建一个文件,并告诉你的系统将其用作交换空间就行了。
使用专用的交换分区,在许多情况下,调整交换空间的大小是一个可怕而不可能的任务。但是有了交换文件,你可以随意调整它们的大小。
最新版本的 Ubuntu 和其他一些 Linux 发行版已经开始 默认使用交换文件。甚至如果你没有创建交换分区,Ubuntu 也会自己创建一个 1GB 左右的交换文件。
