类Unix/Linux系统根目录初级解析
Unix系统目录功能解析相关的文章已经不少,对每一个目录的功能用途已经相关规范,但是很多,或者说我所读过的资料都没有将最基本的目录名来源说清楚,有时候一些读者(像我这样笨笨的)会自己努力去联想目录名字从字面上代表什么意思,费了很大劲,但是有些很偏的目录名(如opt)直到今天才完整了解其意思。所以这篇短文不准备详细去介绍目录的用途,而是从其名称入手,“初级”地介绍一下其名称跟其功能的对应关系。
目录名称追根溯源
/bin: binary
/boot: boot
/dev: device
/etc: etecera
/home: home
/lib: library
/media:media
/mnt: mount
/opt: optional
/root: root
/sbin: system binary
/tmp: temporary files
/usr:unix system resource
/var:various
/bin和/sbin
两个都是存放管理系统的常用二进制程序的文件夹,不过sbin目录下存放的是root用户或者说具有超级用户权限的用户才能够使用的程序。连个目录都是系统原生就有的程序,如果用户自己新安装了类似的程序,经常会存放在/usr/bin目录下。
/mnt和/media
这两个目录的用途有一定的争论,相近但是有有所不同。每挂载一个设备则产生一个相应的子目录,虽然设备挂载的地方并没有任何限制,管理员将其可以挂载在任何目录下,但是传统上是放置于mnt和media目录中。两者都是可移动存储介质的挂在目录,今年来两者界限逐渐模糊,但是按照最初设计文件系统的想法,/media目录是用来挂在长期使用的外置存储设备,而/mnt目录则是用来挂载临时使用的存储设备,应用程序可以安装在/media目录中(虽然并不推荐),但是一定不要安装在/mnt目录下。
/opt
opt目录全程是Optional,“可选择的”目录,通常用户自己安装程序会在这个目录下(也可以安装在/usr/local中,不同的传统),各linux系统分支会单独安装一些自己的程序和服务到自己的系统中,大多也放在这个目录下。Optional在这里的意思就是放置用户或者系统提供上可以选择的程序,通常这些程序对系统的运行没有任何影响,不是必需的程序。
/usr
估计很多使用者都会像我一样把usr理解为User的缩写,其实不是,usr是Unix system resource的首字母缩写,这样就会明白为什么usr目录下包含有各种include,lib等文件夹了。usr目录下有一个local目录,这个目录存放的也是程序文件,local在这里的是“本地”的意思。早期电脑配置很低的时候,不同电脑之间会有各种共享的文件夹,程序文件也可以共享,通常放在各种share目录下,而local目录则存放的不进行共享的文件,现在硬盘容量增大,将文件直接放在local目录下也有足够的空间,就不用再共享了。
/var
这是系统中唯一不能设置为Read-Only的目录,因为这里面存放的是各种经常被读写改变的文件,如系统和程序日志。
详细内容参见FHS, File Hierarchy System的官方文档。
? ? ? ?http://www.pathname.com/fhs/pub/fhs-2.3.html#MNTMOUNTPOINTFORATEMPORARILYMOUNT