/ (a.k.a ROOT)
Linux提供的系统文件
/boot
存放引导系统的文件,内核存在于该目录总中。通常命名为/boot/vmlinuz或类似的目录。
/proc
当前运行的进程,供高级用户使用
ioports,计算机的输入输出硬件列表
cpuinfo,计算机处理器方面的信息
version,操作系统版本,除此之外uname命令也能输出这些信息
uptime,系统正常运行时间,可以使用uptime命令来获取更加人性化的输出。
xxx,进程ID为xxx的进程的信息。
self,正在运行的当前进程的信息。
/sys
sysfs,是由Linux Kernel提供的伪文件系统,它通过虚拟文件将关于各种内核子系统、硬件设备、相关设备驱动程序的信息从内核的设备模型导出到用户空间。除了提供有关各种设备和内核子系统的信息之外,导出的虚拟文件也用于其配置。
sysfs,提供的功能类似于BSD操作系统中的sysctl机制,不同之处在于sysfs被实现为虚拟文件系统,而不是特制的内核机制,而在Linux中,sysctl配置参数是在作为procfs一部分的/proc/sys/中,而不是挂载在/sys/的sysfs。
sysfs挂载在/sys下。如果在初始化期间未挂载,则可以使用以下命令挂载:mount -t sysfs sysfs /sys
如udev或HAL等程序,通过sysfs访问有关硬件及其驱动程序(内核模块)的信息。脚本已被写入先前通过procfs获取的访问信息,一些脚本通过其属性来配置设备驱动和设备。
https://en.wikipedia.org/wiki/Sysfs
https://www.kernel.org/doc/Documentation/filesystems/sysfs.txt
https://lkml.org/lkml/2002/10/19/8
https://lkml.org/lkml/2002/11/4/213
https://lkml.org/lkml/2001/10/17/147
https://lkml.org/lkml/2001/11/1/38
https://www.kernel.org/pub/linux/kernel/people/mochel/doc/papers/ols-2005/mochel.pdf
https://www.kernel.org/doc/Documentation/filesystems/sysfs.txt
https://wiki.debian.org/ramfs
https://lwn.net/Articles/54651/
https://lwn.net/Articles/31185/
/usr
Linux提供的更多系统文件
/usr/local
FHS 2.3//usr/local : Local hierarchy
/usr/local,本地开发的系统文件,供组织的计算机或个人使用
用途:
1)该层次结构供系统管理员在本地安装软件时使用。系统软件更新时,需要保护它不被覆盖。
2)它可用于可在一组主机之间共享但在/usr中找不到的程序和数据。
3)本地安装的软件必须放在/usr/local中,而不是/usr中,除非安装它以替换或升级/usr中的软件。
要求:以下目录或目录的符号链接必须位于 /usr/local 中:
Directory Description bin Local binaries etc Host-specific system configuration for local binaries games Local game binaries # 游戏 include Local C header files lib Local libraries man Local online manuals sbin Local system binaries share Local architecture-independent hierarchy src Local source code
/usr/local/share/emacs/
1)/usr/local:范围;
2)share:类别;
3)emacs:应用程序;
The `/var` Hierarchy
FHS-3.0/Chapter 5. The /var Hierarchy
/var/lib/<editor> : Editor backup files and state (optional)
/var/lib/color : Color management information (optional)
/var/lib/hwclock : State directory for hwclock (optional)
/var/lib/misc : Miscellaneous variable data 各种杂项变量数据
类别
程序类别
bin 程序
sbin 程序,由超级用户运行
lib 程序使用的代码库
文件类别
doc 文档
info 内置的帮助系统的文档资料
man 手册页
share 与特定程序由关的文件,比如示例、安装说明
配置类别
etc 系统或杂项的配置文件
init.d 用于启动Linux的配置文件
rc.d 用于启动Linux的配置文件
编程类别
incldue 编程时使用的头文件
src 程序的源码文件
Web文件类别
cgi-bin 在Web页面上运行的脚本和程序;
html 静态的Web页面;
public_html 公共的Web页面,通常位于用户的主目录
www Web页面
显示类别
Fonts 字体
X11 X Window System
硬件类别
dev 用来连接磁盘和其他硬件设备的设备文件
media 挂载点:提供磁盘访问的目录
mnt 挂载点:提供磁盘访问的目录
运行时类别
var 与本地计算机密切相关的文件,它们是在运行时创建和更新的
lock 由应用程序创建的锁文件
log 日志文件,用于跟踪重要的系统事件、错误、警告
mail 邮件邮箱
run PID文件,其中存放正在运行的进程的进程ID
spool 出于排队或者传输状态的文件
tmp 一个目录,临时存储程序或人们使用的文件
proc 操作系统状态
应用程序
通常存放了应用程序相关的信息。
FAQ:备份(backup)目录的合理位置
what is the default location for backup files of another server
有一个合适的位置。
有一个适当的文件系统结构的标准。目前的版本已经存在了十多年,这可能是一些Linux发行版的新闻。
Filesystem Hierarchy Standard的最新版本是2.3:http://www.pathname.com/fhs/pub/fhs-2.3.html
在那里,在var的「Purpose」部分下,它解释了为什么使用/var/backup是一个坏主意。
适当的地方应该取决于应用程序和它的用法,类似的:
1)/var/lib/<app>/backups
2)/var/local/<app>/backups
3)/var/opt/<app>/backups
(我说“类似的”是因为你使用/var/lib,/var/local还是/var/opt取决于应用程序,它在系统中的角色以及它的安装方式,基于应用程序维护者,var/lib/<app>是任意的。)
顺便说一句,既然你提到了它,/var/www并不适合用于服务的网页(对于一些发行版和包维护者来说,这是新闻,但是FHS比较老,许多人显然从未阅读过它)。用于服务提供的内容和存储的应用程序数据或者资产应该放在/srv目录中。自2005年以来,我一直在使用协议方法,并发现它工作得很好(/srv/http,/srv/ftp,/srv/git,/srv/svn等)。
假设您使用的是rsync,并且该机器正在为网络提供备份服务,那么您可以使用:/srv/rsync/backups
参考文献
文件系统层次结构标准(这个应该是官网的地址了,这个地址来自于红帽的RHCE培训手册)
Linux Foundation / FHS: https://wiki.linuxfoundation.org/lsb/fhs
FHS 3.0 HTML: http://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html
Wikipedia / FHS: https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard