Better

Ethan的博客,欢迎访问交流

Linux目录规范

主要目的是希望让使用者可以了解到已安装软件通常放置于那个目录下, 所以他们希望独立的软件开发商、操作系统制作者、以及想要维护系统的用户,都能够遵循FHS的标准。 FHS的重点在于规范每个特定的目录下应该要放置什么样子的数据而已。FHS仅是定义出最上层(/)及次层(/usr, /var)的目录内容应该要放置的文件或目录数据。

Filesystem Hierarchy Standard (FHS)标准

/(root, 根目录):与开机系统有关

FHS标准建议:根目录(/)所在分割槽应该越小越好, 且应用程序所安装的软件最好不要与根目录放在同一个分割槽内,保持根目录越小越好。 如此不但效能较佳,根目录所在的文件系统也较不容易发生问题。

  • /bin:放置可执行文件的目录,在/bin底下的指令可以被root与一般账号所使用。
  • /boot:开机启动文件。
  • /dev:任何装置与接口设备都是以文件的型态存在于这个目录当中的。
  • /etc:系统级配置文件,这个目录下的各文件属性是可以让一般使用者查阅的, 但是只有root有权力修改。FHS建议不要放置可执行文件(binary)在这个目录中喔。
  • /home:系统默认的用户家目录。
  • /lib:系统的函式库。
  • /media:可移除的装置,包括软盘、光盘、DVD等等装置都暂时挂载于此。
  • /mnt:挂载某些额外的装置,在古早时候,这个目录的用途与/media相同,只是有了/media之后,这个目录就用来暂时挂载用了。
  • /opt:第三方协力软件放置的目录,以前的Linux系统中,我们还是习惯放置在/usr/local目录下。
  • /root:系统管理员(root)的家目录。
  • /sbin:Linux有非常多指令是用来设定系统环境的,这些指令只有root才能够利用来『设定』系统,其他用户最多只能用来『查询』而已。至于某些服务器软件程序,一般则放置到/usr/sbin/当中。至于本机自行安装的软件所产生的系统执行文件(system binary), 则放置到/usr/local/sbin/当中了。
  • /srv:srv可以视为『service』的缩写,是一些网络服务启动之后,这些服务所需要取用的数据目录。 常见的服务例如WWW, FTP等等。
  • /tmp:这是让一般使用者或者是正在执行的程序暂时放置文件的地方。这个目录是任何人都能够存取的,所以你需要定期的清理一下。
  • /lost+found:标准的ext2/ext3文件系统格式才会产生的一个目录,目的在于当文件系统发生错误时, 将一些遗失的片段放置到这个目录下。
  • /proc:虚拟文件系统(virtual filesystem),放置的数据都是在内存当中, 例如系统核心、行程信息(process)、周边装置的状态及网络状态等等。
  • /sys:这个目录其实跟/proc非常类似,也是一个虚拟的文件系统,主要也是记录与核心相关的信息。 包括目前已加载的核心模块与核心侦测到的硬件装置信息等等。

/usr (unix software resource):与软件安装/执行

放置的数据属于可分享的与不可变动的(shareable, static),usr是Unix Software Resource的缩写, 也就是『Unix操作系统软件资源』所放置的目录。

  • FHS建议所有软件开发者,应该将他们的数据合理的分别放置到这个目录下的次目录,而不要自行建立该软件自己独立的目录。
  • 所有系统默认的软件(distribution发布者提供的软件)都会放置到/usr底下,因此这个目录有点类似Windows 系统的『C:\Windows\ + C:\Program files\』这两个目录的综合体,系统刚安装完毕时,这个目录会占用最多的硬盘容量。
  • 基本目录:/bin,/include,/lib,/sbin,/share,/src。
  • 常用目录:/local:系统管理员在本机自行安装自己下载的软件(非distribution默认提供者),建议安装到此目录, 这样会比较便于管理。

/var (variable):与系统运作过程有关

如果/usr是安装时会占用较大硬盘容量的目录,那么/var就是在系统运作后才会渐渐占用硬盘容量的目录。 因为/var目录主要针对常态性变动的文件,包括缓存(cache)、登录档(log file)以及某些软件运作所产生的文件, 包括程序文件(lock file, run file),或者例如MySQL数据库的文件等等。

  • /cache:应用程序本身运作过程中会产生的一些暂存档;
  • /lib:程序本身执行的过程中,需要使用到的数据文件放置的目录。在此目录下各自的软件应该要有各自的目录。
  • /lock:某些装置或者是文件资源一次只能被一个应用程序所使用,如果同时有两个程序使用该装置时, 就可能产生一些错误的状况,因此就得要将该装置上锁(lock),以确保该装置只会给单一软件所使用。
  • /log:登录文件放置的目录。
  • /mail:放置个人电子邮件信箱的目录,不过这个目录也被放置到/var/spool/mail/目录中! 通常这两个目录是互为链接文件啦!
  • /run:某些程序或者是服务启动后,会将他们的PID放置在这个目录
  • /spool:队列数据

NOTE:~和/目录的区别

/表示目录结构的根。~是一个占位符,表明个人目录的地址,因为每个人都有自己的个人目录地址,所以统一使用~表示,如果使用root用户登录,此时是/root/。如果使用name登录,则是/home/name/

目录树图示

linux.jpg



留言

刘新琼
2017-06-21 08:56

哈哈