一、文件系统架构
1、Linux文件系统具有层级性
- 文件或者目录起始于根目录 "/” 成为树状结构
- 最顶层由 / 开始
2、文件和目录名区分大小写
3、路径通过"/"分隔开
4、..
表示上层目录
5、./
表示当前目录
6、隐藏目录或者文件名以 “." 开始
二、重要目录说明
1.根目录
- 根目录是整个系统中最重要的一个目录,因为不但所有的目录都是由根目录衍生出来的,同时根目录也与开机、还原、系统修复等操作有关。
- FHS标准建议:根目录(/)所在的分区应该越小越好,且应用程序所安装的软件最好不要与根目录放在同一个分区内,保持根目录越小越好。这样不但性能较好,根目录所在的文件系统也不容易发生问题。
- 因为根目录与开机有关,在开机的过程中仅有根目录所在分区会被挂载,其他分区则是在开机之后才会持续进行挂载的行为。所以根目录下与开机有关的目录就不能与根目录放置在不同的分区:/etc(配置文件)、/bin(重要的执行文件)、/dev(所需要的设备文件)、/lib(执行文件所需的函数库与内核所需的模块)、/sbin(重要的系统执行文件)。
目录 |
应放置的内容 |
/bin |
系统有很多放置执行文件的目录,但是/bin目录比较特殊。/bin放置的是在单用户维护模式下还能够被操作的命令。在/bin下面的命令可以被root与一般用户使用。 |
/boot |
这个目录主要放置开机会使用到的文件,包括Linux内核文件以及开机菜单与开机所需配置文件等。 |
/dev |
在Linux系统上,任何设备与结构设备都是以文件的形式存在于这个目录中的。只要通过访问这个目录下的某个文件,就等于访问某个设备。 |
/etc |
系统主要的配置文件几乎都放置在这个目录里,例如人员的账号密码文件、各种服务的起始文件等。一般来说,这个目录下的各个文件属性是可以让一般用户查阅的。但只有root用户有权限修改。FHS标准建议不要放置可执行文件(binary)在这个目录中。 |
/home |
这是系统默认的用户文件夹(home directory)。在创建一个一般用户时,默认的用户主文件夹都会放置到这里。主文件夹有两种代号:~:代表目前这个用户的主文件夹 ~ahao:代表用户ahao的主文件夹 |
/lib |
/lib放置的是在开机时会用到的函数库,以及在/bin或/sbin下面的命令会调用的函数库。 |
/media |
/media放置的是可删除的设备。包括软盘、光盘等设备都暂时挂载于此。 |
/mut |
如果你想要暂时挂载某些额外的设备,一般建议可以放置到这个目录中。在比较早的时候,该目录的用途于/media相同。 |
/opt |
这是给第三方软件放置的目录。 |
/proc |
这个目录本身是一个虚拟文件系统(virtual filesystem)。它放置的数据都是在内存当中,例如系统的内核、进程、外部设备状态及网络状态等。因为这个目录下的数据都是在内存当中,所以本身不占任何硬盘空间。 |
/root |
系统管理员(root)的主文件夹。之所以放在这里,是因为如果进入单用户维护模式而仅挂载根目录时,该目录就能拥有root的主文件夹,所以将root的主文件夹与根目录放置在同一块分区内。 |
/sbin |
放在/sbin下面的为开机过程中所需要的命令,里面包括开机、修复、还原系统所需要的命令。 |
/srv |
srv可视为“service”的缩写,是一些网络服务启动之后,这些服务所需要取用的目录数据。 |
/sys |
这个目录跟/proc非常相似,也是一个虚拟文件系统,主要记录与内核相关的信息。包括目前已加载的内核模块与内核检测到的硬件设备信息等。该目录同样不占用硬盘容量。 |
/tmp |
这是一般用户或者时正在执行的程序暂时放置文件的地方。这个目录任何人都能访问并且创建数据,但是只用root和数据的使用者才能删除所创建的数据。 |
2.usr及下级(即,unix system resource相当于win的目录:windows + programe files)
目录 |
应放置的内容 |
/usr/bin/ |
绝大部分的用户可使用的命令都放在这里。它与/bin的不同之处在于:是否与开机过程有关。 |
/usr/include/ |
C/C++等程序语言的头文件与包含文件放置处。 |
/usr/lib/ |
包含各种应用软件的函数库、目标文件,以及不被一般用户惯用的执行文件或脚本。 |
/usr/local/ |
系统管理员在本机自行安装自己下载的软件,建议安装到此目录,这样比较便于管理。 |
/usr/sbin/ |
非系统正常运行所需要的系统命令。 |
/usr/share/ |
放置共享文件的地方。 |
/usr/src/ |
一般源码建议放置到这里,src可以视为source的缩写。而至于内核源码则建议放置到/usr/src/linux/目录下。 |
3.var及下级
- /var目录主要针对常态性变动的文件,包括缓存、登陆文件以及某些软件运行所产生的文件
目录 |
应放置的内容 |
/var/cache/ |
放置应用程序本身运行过程中会产生的一些暂存文件。 |
/var/lib/ |
程序本身执行过程中,需要使用到的数据文件放置目录。 |
/var/lock/ |
某些设备或文件资源一次只能被一个应用程序所使用,如果同时有程序使用该设备或文件资源时,就可能产生一些错误的情况,因此就要将该设备或文件资源上锁(lock),以确保该设备或文件资源只会给单一软件所使用。 |
/var/log/ |
放置登录文件的目录。面比较重要的文件如/var/log/messages,/var/log/wtmp(记录登录者信息)等。 |
/var/mail/ |
放置个人电子邮件信箱的目录。不过这个目录也被放置到/var/spool/mail/目录中,通常这两个目录是互为连接文件 |
/var/run/ |
某些程序或服务启动后,会将他们的PID放置在这个目录下。 |
/var/spool/ |
这个目录通常放置一些队列数据,所谓的“队列”就是排队等待其他程序使用的数据。这些数据被使用后通常会被删除。 |
三、目录和文件的命名规则
1、不超过255个字符
2、区分大小写
1 ) file、File、fILE
表示不同的文件
3、除了/外,所有的字符都合法
1 )避免文件名首字符使用+-.
等
2 )避免使用空格、制表符和*@#$%[]()
等
4、最好使用有意义的名称来命名