Centos7的根目录中,有如图1所示的内容
1. /usr
/usr 是Unix Software Resource(Unix操作系统软件资源)的缩写,所以该目录放置的是系统软件相关的数据。
/usr 文件夹存放了如图2所示的内容
/usr/bin 这里边存放了全部用户能够使用的指令,例如,cd指令,ls指令和info指令等。值得注意的是,如图1所示,Centos7根目录下的/bin 其实是一个连接至/usr/bin 的链接文件(相当于Windows中的快捷方式)。另外,此目录下不应该有子目录!
/usr/sbin 在Centos7中,这个目录时/sbin 链接到的目录,里边存放了只有root用户才能使用的指令,例如:reboot, shutdown等。
/usr/lib 在Centos7中,这个目录是/lib 链接到的目录,里边存放了开机时会用到的函式库和/bin, /sbin 中的指令会呼叫的函式库。/usr/lib 中还有一个重要的文件夹 —— /usr/lib/modules,这个目录主要存放驱动程序。
/usr/lib64 在Centos7中,这个目录是/lib64 链接到的目录,用来存放与/lib 不同的格式的支持64位的二进制函式库。
/usr/local 通常用来安装root用户在本机自己下载的软件,所以此目录中也有bin, lib, etc等目录(如图3所示),举个例子,如果root用户想要自行安装一个Python3,通常都应该安装在此目录。
/usr/share 主要存放只读架构的数据文件,当然也包括共享文件,这些文件几乎都是文本文件。在此目录下常见的还有这些次目录:
/usr/share/man: 联机帮助文件
/usr/share/doc: 软件杂项的文件说明
/usr/share/zoneinfo: 与时区有关的时区文件
/usr/games 存放与游戏相关的数据。
/usr/include C/C++等程序语言的header, include的存放位置,当我们以tarball的方式安装数据时,会使用到这个文件夹中的数据。
/usr/libexec 某些不被一般使用者惯用的执行档或脚本等等,都会放置在此目录中。例如大部分的 X 窗口底下的操作指令。
/usr/src src有scourc的意思,一般的原始码建议放置到这里,至于核心原始码则建议放置在/usr/src/linux 目录下。
2. /var
/var 目录主要用来存放一些常态性变动的文件,包括缓存(cache),登录档(log file),以及某些软件运作所产生的文件,包括程序文件(lock file, run file),或者例如MySQL数据库文件等。
/var/cache 存放应用程序本身运作过程中产生的缓存。
/var/lib 存放程序本身执行的过程中,需要使用到的数据文件。在此目录下各自的软件应该要有各自的 目录。 举例来说,MySQL 的数据库放置到/var/lib/mysql/而 rpm 的数据库则放到/var/lib/rpm 去!
/var/lock 在Centos7中,这是一个链接到/run/lock 的链接档。某些装置或者是文件资源一次只能被一个应用程序所使用,如果同时有两个程序使用该装置时,就可能产生一些错误的状况,因此就得要将该装置上锁(lock),以确保该装置只会给单一软件所使用。 举例来说,刻录机正在刻录一块光盘,你想一下,会不会有两个人同时在使用一个刻录机烧片?如果两个人同时刻录,那片子写入的是谁的资料?所以当第一个人在刻录时该刻录机就会被上锁,第二个人就得要该装置被解除锁定(就是前一个人用完了)才能够继续使用。
/var/mail 在Centos7中,这是一个链接到/var/spool/mail 的链接档。放置个人电子邮件信箱的目录。
/var/run 在Centos7中,这是一个链接到/run 的链接档。用来存放程序或服务启动后的PID。
/var/spool 这个目录通常放置一些队列数据。值得注意的是,crontab的计划表存放在/var/spool/cron 中。
3. /boot
/boot 这个目录主要在放置开机会使用到的文件,包括 Linux 核心文件以及开机菜单与开机所需配置文件等。Linux kernel 常用的档名为:vmlinuz,如果使用的是grub2 这个开机管理程序,则还会存在 /boot/grub2/这个目录。
4. /dev
/dev 即device,在Linux系统中,每个装置都被当成一个文件来对待,各device对应的文件几乎都被存放在/dev里。
举个例子,SATA/USB接口的硬盘的文件名即为/dev/sd[a-d],其中括号内得字母为a-d当中得任意一个,亦即有/dev/sda, /dev/sdb, /dev/sdc, /dev/sdd这四个文件得意思。
特别的,正常的实体机器大概使用的都是/dev/sd[a-]的硬盘文件名,至于虚拟机环境底下,为了加速,可能就会使用/dev/vd[a-p]这种装置文件名~
装置的文件名是由Linux核心侦测到硬盘的顺序决定的,比如三个硬盘分别插在SATA1, SATA5, USB三个接口上,那么这三个硬盘的命名就是:
1. SATA1插槽上的硬盘:/dev/sda
2.SATA2插槽上的硬盘:/dev/sdb
3.USB插槽上的硬盘:/dev/sdc
更深入的,如果你对硬盘/dev/sda进行了分区,那么你的硬盘会根据分区命名为,/dev/sda1, /dev/sda2, /dev/sda5...(一般不会出现/dev/sda3, /dev/sda4~)
5. /etc
系统主要的配置文件几乎都放置在这个目录内,例如人员的账号密码文件、各种服务的启始档等。一般来说,这个目录下的各文件属性是可以让一般使用者查阅的,但是只有 root 有权力修改。建议不要放置可执行文件(binary)在这个目录中。
比较重要的文件有:/etc/modprobe.d/, /etc/passwd, /etc/fstab, /etc/issue 等等。另外还有几个重要的目录最好要存在/etc 目录下:
/etc/opt(必要):这个目录在放置第三方协力软件/opt 的相关配置文件。
/etc/X11(建议):与X Window 有关的各种配置文件都在这里,尤其是 xorg.conf 这个X Server 的配置文件。
/etc/sgml(建议):与 SGML 格式有关的各项配置文件。
/etc/xml(建议):与 XML 格式有关的各项配置文件。
6. /media
media 是“媒体”的英文,顾名思义,这个/media 底下放置的是可移除的装置。包括软盘、光盘、DVD 等装置都暂时挂载于此。常见的档名有:/media/floppy, /media/cdrom 等等。
7. /mnt
如果想要暂时挂载某些额外的装置,一般建议可以放置到这个目录中。
8. /opt
这个是给第三方协力软件放置的目录。
9. /srv
srv 可以视为 "service" 的缩写,是一些网络服务启动之后,这些服务所需要取用的数据目录。常见的服务例如WWW, FTP 等。举例来说,WWW 服务器需要的网页资料就可以放置在/srv/www 里面。
10. /tmp
这是让一般用户或者是正在执行的程序暂时放置文件的地方。这个目录是任何人都能够存取的,所以需要定期的清理一下。当然,重要数据不可放置在此目录!因为这个目录被建议在开机时被清空内容!
11. /home
这是系统默认的用户家目录(home directory)。在你新增一个一般使用者账号时,默认的用户家目录都会在这里被创建。
12. /root
系统管理员(root)的家目录。之所以放在这里,是因为如果进入单人维护模式而仅挂载根目录时,该目录就能够拥有root 的家目录,所以我们会希望root 的家目录与根目录放置在同一个分区槽中。
13. /proc
这个目录本身是一个“虚拟文件系统(virtual filesystem)”,他放置的数据都是在内存当中,例如系统核心、行程信息(process)、周边装置的状态及网络状态等等。因为这个目录下的数据都是在内存当中,所以本身不占任何硬盘空间。
比较重要的文件例如:/proc/cpuinfo, /proc/dma, /proc/interrupts, /proc/ioports, /proc/net/* 等。
14. /sys
这个目录其实跟/proc 非常类似,也是一个虚拟的文件系统,主要也是记录核心与系统硬件信息较相关的信息。包括目前已加载的核心模块与核心侦测到的硬件装置信息等等。这个目录同样不占硬盘容量。
15. /lost+found
这个目录是使用标准的 ext2/ext3/ext4 文件系统格式才会产生的一个目录,目的在于当文件系统发生错误时,将一些遗失的片段放置到这个目录下。不过如果使用的是 xfs 文件系统的话,就不会存在这个目录了。
16. 其它
在Centos7中
/bin 链接到 /usr/bin
/sbin 链接到 /usr/sbin
/lib 链接到 /usr/lib
/lib64 链接到 /usr/lib64
/run 参照 /var/run