一、简介
“万物皆文件”是Linux哲学的主要思想,即你可以通过操作文件来访问Linux下的任何东西。不管是真实的文件,还是虚拟的。为了更好的使用Linux系统,你需要对Linux文件系统架构有很好的认识。在弄清楚文件系统的一些概念后,你可以得到系统的更多信息,操作更多的软硬件资源,对磁盘进行合理的分区,监控进程的资源占用情况等。
二、文件系统架构
位于系统根路径下的目录:
/boot # 系统引导程序(grub),文件系统img和内核(vmlinuz-x.xx-x86_64)的目录。
/dev # 设备文件路径,硬盘,串口等各种设备资源的虚拟文件都在该路径下。
/etc # 系统中安装的各种软件的配置文件汇集在此,一般是yum,apt,pacman等命令安装的软件。
/usr # 系统安装的软件,软件启动程序位于/usr/bin,依赖位于/usr/lib(python-pip安装的模块也在此目录),文档位于/usr/share,软件的快捷启动在/usr/share/application,关于/usr/share还存放各种主题配置等文件。以上是全局环境,若不想污染该环境,软件还可安装于/usr/local路径下,安装时需指定。软件启动时,按需设置PATH环境变量。
/proc # 进程管理子系统的虚拟文件系统VFS,保存了当前系统运行的进程的内存资源映射。除了进程文件,该路径下还有cpu,网卡,内存等各种硬件资源的信息,还可用于监控内存,网络I/O等指标,动态修改内核参数也在此目录。
/var # 存放系统和各种软件的log(日志文件长久累计会占用很大空间,必要时需清理),yum/apt/pacman安装下载的软件包在cache中,长久会占用很大空间,必要时需进行清理,另外也会存放一些软件的缓存文件。
/tmp # 存放一些软件的临时文件,该路径下的文件相对比较凌乱。
/opt # 自由使用的路径,部分软件会安装在此,该路径你可以当Windows的D/E盘使用,能使用该目录就尽量不要污染其他设定目录,除非你很清楚。
/mnt # 用于设备挂载的目录,U盘等你可以mount挂载在这里,当然一般系统会自动帮你挂载。
/sys # 这是Linux内核后来加的sysfs子系统,该路径下的文件基本都是虚拟文件,都是软链接,在其他路径都可以找到文件本体,将其他各路径下的虚拟文件进行统一管理,并标准化。
/srv # 作为服务器使用时,配置网络服务的路径,如果你开发了网页,那网页资源可以放在/srv/http下面。
/root # root用户目录,下面有Desktop,Documents,Downloads等用户功能的目录。如果你大多数时候用root登陆,那下载的东西都会占用该目录的空间,各种软件下载的资源都会在/root下面的各种隐藏目录里面。
/home # 除了root用户之外普通用户的目录。
三、分区原则
1. /boot 占用很少,建议分配1G以下;
2. / 根目录,如果你不挂载内部其他路径,那么内部所有目录都占用该路径的空间。建议多分配些空间,大约40%的磁盘空间即可,如100~200G;
3. /opt 剩余所有空间。
建议对上述三个目录进行顺序分配,当然方案不限于此,根据你实际情况进行合理分配。这里,我是为了避免后期遇到各种空间不足的问题,所以挂载的目录较少。
文件系统的理解对于深入研究Linux系统极其重要,建议在使用中不断地认识每个路径的作用。