对 FHS_文件系统层次结构_liunx(总结)

目的:

  • 软件可以预测已安装文件和文件夹的位置;
  • 用户可以预测已安装文件和文件夹的位置。

做法:

  • 指定文件系统各个区域的指导性原则
  • 指定最少应该包含的必需的文件文件夹;
  • 列举原则中的例外情况;以及
  • 列举有历史冲突特殊情况

具体内容:

概念讲解

首先 根据文件的特性,进行区别分为两中定义:可共享与不可共享文件、可变与静态文件。
然后将有区别的文件放入不通的文件夹里面去。
:::success
文件特性是什么?
可共享”文件是可以保存在一个主机上而在另外的主机上使用的文件
不可共享”文件是那些不能共享的文件。例如,用户主文件夹下的文件是可共享的,而设备锁文件是不可共享的。
静态”文件包括二进制文件、库文件、文档和其他在系统管理员不介入就不会变动的文件
可变” 文件是非静态的文件
:::
FHS 兼容系统(图标)


**可共享 **不可共享
**静态
**/usr
**/etc

**/opt
**/boot
**可变
**/var/mail
**/var/run

/var/spool/news**/var/lock

对一级【就是根(/)啦】放置文件目录要求

/文件夹下要求有如下文件夹或符号链接。

文件夹描述
1bin必需命令的二进制文件
2boot引导加载程序的静态文件
3dev设备文件
4**etc **主机特定的系统配置
5lib必需的共享库内核模块
6media可移动媒质的挂载点
7mnt临时挂载一个文件系统用的挂载点
8opt外部应用程序软件包
9sbin必需系统级二进制文件
10srv本系统提供服务数据文件
11tmp临时文件
12usr二级层次结构
13var变量数据

对一级目录的详细分析–/bin

这里面放些什么呢?
/bin 包含了系统管理员和用户都可能使用的命令(就是不用管你什么身份,在linux任何位置都可以这些命令呢【建议背下来,非常好用】,都提前放置放在这里面的文件夹了)

注意:/bin 文件夹下面不能建立任何子文件夹。(就是,只能创建文件,不能创建目录的意思啦)

命令描述
1cat将文件连接到标准输出的工具
2chgrp改变文件访问权限的工具
3chmod改变文件访问权限的工具
4chown改变文件所有者和组的工具
5cp复制文件和文件夹的工具
6date打印设置系统日期和时间的工具
7dd转换复制文件的工具
8df报告文件系统磁盘空间使用情况的工具
9dmesg打印控制内核消息缓存区的工具
10**echo **显示一行文本的工具
11false什么也不做只返回不成功的工具
12hostname显示设置系统主机名的工具
13kill** 向进程发送消息**的工具
14ln** 文件之间创建链接**的工具
15**login **系统上开启会话的工具
16**ls **列出文件夹内容的工具
17**mkdir **创建文件夹的工具
18**mknod **创建块或字符特殊文件的工具
19more** 按页翻看文本的工具**
20**mount **挂载文件系统的工具
21mv移动/重命名文件的工具
22ps报告进程状态的工具
23pwd打印当前工作文件夹名称的工具
24**rm **删除文件或文件夹的工具
25**rmdir **删除空文件夹的工具
26**sed **‘sed’流编辑器
27stty** 改变和打印终端行设置的工具**
28**su **改变用户 ID 的工具
29**sync **清洗文件系统缓存区的工具
30**true **什么也不做,只返回成功的工具
31**umount **卸载文件系统的工具
32**uname **打印系统信息的工具

一些特殊情况 :
为什么我们在哪里都可以ping 网络?
如果我安装了子系统(新软件),在哪里都可以使用这个软件的指令。那它就必须在/bin目录下有程序或者创建符号链接去指向软件的具体位置。
这个问题现在明白了么?

例如:

命令描述
cshC shell(可选)
eded** 编辑器**
tartar 档案工具(可选)
Cpiocpio 档案工具(可选)
gzipGNU 压缩工具(可选)
gunzipGNU 解压工具(可选)
zcatGNU 解压工具(可选)
netstat网络统计工具(可选)
pingICMP 网络测试工具(可选)

如果 gunzip 和 zcat 程序存在,则它们必须是指向 gzip 的符号链接或硬链接/bin/csh 可以是指向/bin/tcsh 或/usr/bin/tcsh 的符号链接

对一级目录的详细分析–/boot:引导装载程序的静态文件

这个文件中做什么呢?
此文件夹包含了启动过程中所需的所有文件,除了启动时不需要的配置文件和映射安装程序。因此**/boot 中存储了内核开始执行用户模式程序之前所使用的数据**。这会包括保存的主启动扇区和扇区映射文件2。

对一级目录的详细分析–/dev:设备文件

这个文件中做什么呢?
就是放设备文件。

如果我要手动创建一个设备问价该怎么做呢?
额,我建议别这么做。方法还是有的!
/dev 必须包含一条叫做 MAKEDEV 的命令,它可能创建所需的设备。它也可以包含一个用于任何本地设备的叫MAKEDEV.local 的节点。
如果需要,MAKEDEV 必须提供创建系统中能发现的所有设备的功能,而不仅仅是那些一种特定实现所安装的设备文件

对一级目录的详细分析–/etc:主机特定的系统配置

  1. /etc这个文件不陌生吧,但它究竟是什么?
    /etc 层次结构包含了配置文件。“配置文件”是一个用于控制程序操作的本地文件;它必须是静态文件而且不能是可执行的二进制文件。(简单来说,就是我们主机去控制程序操作,所保存的文件的地方【这些文件也叫做本地文件】)

  2. 这些系统配置(就是本地文件啦),有什么要求呢?

  • /etc 下面不能放置二进制文件(这些文件时给我们看的。所以不能是我们看不懂的类型咯,这个能理解么)
  • /etc 下应该有以下文件夹或指向相应文件夹的符号链接
文件夹描述
opt/opt 的配置
X11X 窗口系统的配置(可选)
sgml**SGML **的配置(可选)
xml**XML **的配置(可选)
  1. 特殊情况:

如果安装了相应子系统,/etc 下必须有以下文件夹或指向文件夹的符号链接:

文件夹描述
opt/opt 的配置

4.如果安装了相应的子系统,/etc 下必须有以下文件或符号链接
例如:


文件夹描述
1csh.login系统范围的** C shell 登录初始化文件**(可选)
2exportsNFS 文件系统访问控制表(可选)
3fstab文件系统静态信息(可选)
4ftpusersFTP** 后台服务用户访问控制表**(可选)
5gateways路由用的网关列表文件(可选)
6gettydefsgetty 用的速率终端设置(可选)
7group用户组文件(可选)
8host.conf解析器配置文件(可选)
9hosts有关主机名静态信息(可选)
10hosts.allowTCP wrapper 的主机访问文件(可选)
11hosts.denyTCP wrapper 的主机访问文件(可选)
12hosts.equivrlogin、rsh、rcp信任主机表(可选)
13hosts.lpdlpd 的**信任主机表(**可选)
14inetd.confinetd 的配置文件(可选)
15inittabinit 的配置文件(可选)
16issue预登录消息认证文件(可选)
17ld.so.conf搜索共享库的附加文件夹列表(可选)
18motd当天的登录后消息文件(可选)
19mtab文件系统动态信息(可选)
20mtools.confmtools 的配置文件(可选)
21networks网络名称的静态信息(可选)
22passwd密码文件(可选)
23printcaplpd 打印机功能数据库(可选)
24profile系统范围的 sh shell 登录初始化文件(可选)
25protocolsIP 协议列表(可选)
26Resolv.conf解析器配置文件(可选)
27rpcRPC 协议列表(可选)
28securettyroot 登录的** TTY 访问控制**(可选)
29services网络服务端口名称(可选)
30shells有效的登录 shell 的路径名称(可选)
31Syslog.confsyslogd 的配置文件(可选)

对二级目录的详细分析–/etc/opt:/opt 的配置文件
  1. 这个文件干什么的呢?

简单来说:就是放置外部软件(网上下载的软件)
对于外部应用程序软件包的主机特定配置文件必须安装在 /etc/opt/中,这里指/opt 中保存该软件包的子树名称

对二级目录的详细分析–/etc/xml:XML 的配置文件(可选)

定义了 XML 系统高级参数的通用配置文件安装在这里。名称为*.conf 的文件代表通用的配置文件。超级索引文件 catalog 引用了所有集中索引文件。

对二级目录的详细分析–/etc/xml:XML 的配置文件(可选)

定义了 XML 系统高级参数的通用配置文件安装在这里。名称为*.conf 的文件代表通用的配置文件。超级索引文件 catalog 引用了所有集中索引文件。

对二级目录的详细分析–/etc/X11:X 窗口系统的配置文件(可选)

/etc/X11 是放置所有 X11 主机特定配置的地方为了允许在/usr 以只读方式挂载的情况下进行本地控制,必需这个文件夹。
/etc/X11 的子文件夹可以包含 xdm 的及其他程序(如一些窗口管理器)需要的文件8。我们建议窗口管理器默认情况下只使用一个配置文件。*wmrc 文件必须命名为 system.*wmrc(除非另有一个被广泛接受的名称),并且不要使用子文件夹。任何窗口管理器的子文件夹必须根据实际的窗口管理器二进制文件清楚地命名

对一级目录的详细分析–/home:用户主文件夹(可选)

  1. 这是什么文件呢?

就是我们们登录账号的主文件夹,当我们,找不到主文件夹的时候们可以去配置文件看看(/etc)

  1. 要求:

应用程序的用户特定配置保存在用户的主文件夹下一个以‘.’字符(“点文件”)开头形式的文件中。如果一个应用程序需要创建多于一个的点文件,它们应该放在一个以‘.’字符开头的子文件夹(点文件夹)中。这种情况下配置文件不应以‘.’开头

对一级目录的详细分析–/lib:必需的共享库和内核模块

  1. 这里面有什么呢?

/lib 文件夹包含了启动系统和运行根文件系统中命令——如/bin 和/sbin 下的二进制文件——所需的共享库镜像

  1. 要求

下列文件名模式至少要有一个(它们可以是文件或符号链接)

文件描述
1libc.so.*动态链接的 C 语言库(可选)
2ld*执行时链接器/装载器(可选)

如果安装了 C 预处理器,/lib/cpp 可以作为它的一个引用,这是出于历史原因

  1. 特殊选项

如果安装了相应子系统,/lib 中应该有如下文件夹或符号链接:

文件夹描述
1modules可加载内核模块(可选)

对一级目录的详细分析-- /lib:替代格式的必需共享库(可选)

我们看到多个 /lib ,这是什么情况呢?
系统中可能有一个或多个/lib 文件夹的变体,以支持多种二进制格式文件对各自库的要求。
如果存在一个或多个这样的文件夹,对其内容的要求与正常的/lib 文件夹相同,只是不要求有
/lib/cpp。
明白了吗?

对一级目录的详细分析–对一级目录的详细分析–/media:可移动媒质的挂载点

  1. 这个文件装什么么?

包含了用作可移动媒质(如软盘、光盘和 zip 磁盘)挂载点的文件夹。

  1. 如果安装了相应子系统,/media 下必须有以下的文件夹或符号链接:
**文件夹 **描述
1floppy软盘驱动器(可选)
2cdromCD-ROM 驱动器(可选)
3cdrecorderCD 刻录机(可选)
4**zip **zip 驱动器(可选)

存在多个挂载某种类型媒质的设备的系统中,创建挂载文件夹可以在这些可用设备名称后面加一
个以‘0’开始的数字,但未计数的名称也应该保留。

对一级目录的详细分析–/mnt:临时挂载文件系统用的挂载点

这个文件做什么呢?
呵呵,就是临时给你用的。系统文件上的用的挂载点。 注意别再这里安装程序之类的。

对一级目录的详细分析–/opt:外部应用程序软件包

  1. 这个文件做什么的呢?

安装外部软件包的位置。(现在明白,/etc 为什么会单独创建个/opt文件夹了吧)

要 安 装 在 /opt 中 的 软 件 包 必 须 将 其 静 态 文 件 放 置 在 单 独 的 一 个 /opt/ 或/opt/文件夹树下,其中是描述软件包的名称是软件提供者的 Linux 分配名称和数字授权(LANANA)的注册名称。

  1. 要求
文件夹描述
1** **静态包对象
2** LANADA 注册的提供者名称**

/opt/bin、/opt/doc、/opt/include、/opt/info、/opt/lib 和/opt/man 保留给本地系统管理员使用。软件包可以由本地系统管理员在这些保留文件夹中提供“前台”文件(通过使用链接或复制)不过必须在脱离这些保留文件夹的情况下可以正常工作。
用户调用程序必须位于/opt//bin 文件夹或/opt/层次下。如果包中包含 UNIX 手册页面,它们必须位于/opt//share/man 中或**/opt/层次下,并且必须使用同/usr/share/man 相同的子层次结构
可变的包文件(在正常操作中会变化的文件)必须安装
/var/opt **中。参见/var/opt 了解更多信息。
主机特定的配置文件必须安装在/etc/opt 中。参见/etc 一节了解更多信息。

除了那些必须驻留在文件系统树中特定位置才能正常工作的包文件外其他包文件不能出现在/opt、/var/opt 和/etc/opt 层次结构之外的地方例外的情况比如,设备锁文件必须分组在/var/lock 下,设备必须位于/dev** 中。**
发行版可以将软件安装在/opt 中,但未经本地系统管理员同意不能修改或删除本地系统管理员安装
在该位置的软件

对一级目录的详细分析–/root:root 用户的主文件夹(可选)

这个文件夹,做什么呢?
这个就是超级管理员的文件夹啦,比如设置我们的喜好。而且,我们还能为所欲为。

对一级目录的详细分析–/sbin:系统二进制文件

  1. 这个文件做什么呢?

系统 管理 员 使用 的 工具和其 他 只有 root 使用 的命 令 保 存 在 /sbin 、 /usr/sbin 和 /usr/local/sbin 中。/sbin 包含除了/bin 中之外其他的启动、还原、恢复和/或修复系统所必需的二进制文件。在已知/usr 已经挂载(并且没有问题)的情况下执行的程序通常位于/usr/sbin 下本地安装的系统管理程序应该位于/usr/local/sbin
:::success
那你知道什么是本地管理员?系统管理员?超级管理员么?
系统管理,有的也叫本地管理员,一个意思啦。就是我们常登录的账号。如linux与win平常登录账号。
超级管理员:就是root权限(最高权限),就是能为所欲为的那个。你在屏幕上输入 su - 指令看看。
:::

  1. 要求

/sbin 下应该有以下命令或符号链接。

文件夹描述
shutdown关闭系统命令
  1. 特殊选项

如果安装了相应子系统,/sbin 下必须有以下文件或符号链接


文件夹描述
1fastboot不检查磁盘重启系统(可选)
2fasthalt不检查磁盘停止系统(可选)
3fdisk操作分区表(可选)
4fsck文件系统检查修复工具(可选)
5fsck.*针对某一特定文件系统检查和修复工具(可选)
6gettygetty 程序(可选)
7halt停止系统的命令(可选)
8ifconfig配置网络接口的命令(可选)
9init初始化进程(可选)
10mkfs创建文件系统的命令(可选)
11mkfs.*创建特定文件系统的命令(可选)
12mkswap设置交换区的命令(可选)
13reboot重启系统的命令(可选)
14routeIP 路由表工具(可选)
15swapon启用分页和交换(可选)
16swapoff关闭分页和交换(可选)
17update周期性的清洗文件系统缓存区的后台服务(可选)

对一级目录的详细分析–/srv:本系统所提供服务的数据文件

这个文件夹做什么的呢?
这里面存放我们登录文件系统过后,需要的一些数据。
/srv 下数据进行归类的一个办法是按协议。

对一级目录的详细分析–/tmp:临时文件

这个文件做什么的呢?
/tmp 文件夹必须能够为要求临时文件的程序使用
程序必须假设/tmp 中的任何文件或文件夹仅用于在程序中引用

对一级目录的详细分析–/usr 层次结构【这个文件主要在二级目录】

  1. 它做什么?

/usr 是文件系统中的第二个重要的部分**。/usr 是可共享的只读数据**。就是说/usr 应该可以在各种 FHS 兼容的主机之间共享并且禁止写入。任何主机特有的信息或随时间变化的量都保存在其他地方。
大型的软件包禁止在/usr 层次结构中使用直接的子文件夹。

  1. 要求:

/usr 中应该有以下文件夹或符号链接

文件夹描述
1bin绝大多数用户命令
2includeC 程序包含的头文件
3lib
4local本地层次结构(整个系统安装后为空)
5sbin非紧要的系统二进制文件
6share独立与系统架构的数据
  1. 特殊选项

文件夹描述
1X11R6X 窗口系统,版本 11 发行号 (可选)
2hames游戏教育二进制文件(可选)
3lib替换格式的库(可选)
4src源代码(可选)

为 X 窗口系统留出一个例外是因为有众多的先例并且在实践中被广泛认可。
可以有到以下到文件夹的符号链接。留下这种可能性是为了满足保持与旧系统兼容性的需要,直到可以假定所有实现都使用/var 文件夹为止(再禁止使用)。
:::success
/usr/spool->/var/spool
/usr/tmp->/var/tmp
/usr/spool/locks->/var/lock
:::
一旦系统不再需要以上任何一个链接,可以在需要时删除它。

对二级目录的详细分析–/usr/bin:绝大多数用户命令

  1. 特殊选项

如果安装了相应子系统,/usr/bin 下应该有如下文件夹或符号链接:

文件夹描述
mhMH 邮件处理系统的命令(可选)

如果/usr/X11R6/bin 存在,/usr/bin/X11 必须是指向它的链接。

如果安装了相应子系统,/usr/bin 中必须存在以下文件或符号链接:


**命令 **描述
1**perl **实用提取报告语言(Perl,可选)
2pythonPython 解释型语言(可选)
3tclsh包含 Tcl 解释器的简单 shell(可选)
4wish简单的** Tcl/Tk 窗口 shell**(可选)
5**命令 **描述
6expect交互式对话框程序(可选)

:::success
基础知识
因为 shell 脚本解释器(以 shell 脚本第一行的#! 触发)不能依赖于路径,对它们的位置进行标准化是有好处的。 Bourne shell 和 C-shell 解释器已经固定于/bin 中,但 Perl、Python 和 Tcl 常常在许多不同的地方出现。以上这些可以是指向 shell 解释器的实际位置的符号链接。
:::

对二级目录的详细分析–/usr/include:标准头文件文件夹。

  1. 这个文件做什么?

这是应放置所有系统通用的 C 程序设计语言头文件的地方

  1. 特殊选项

如果安装了相应子系统,/usr/include 下必须有如下文件夹或符号链接:

文件夹描述
bsdBSD 兼容头文件(可选)

如果/usr/X11R6/include/X11 存在,则符号链接/usr/include/X11 必须指向它。

对二级目录的详细分析–/usr/lib:编程和软件包的库?

  1. 这个文件做什么?

/usr/lib 包含用于用户或 shell 脚本直接调用的目标文件、库文件和内部二进制文件应用程序可以在/usr/lib 下有一个单独的子文件夹如果一个应用程序使用了一个子文件夹,所有该应用程序专用的依赖于架构的数据必须也位于此子文件夹中

对二级目录的详细分析–/usr/lib:替换格式的库(可选)

这个文件做什么?
还记得在一级目录上/bin解释的么。这就是个函数库,允许一个或者多个库存在。
/usr/lib用于替换的二进制格式,与 /usr/lib 扮演相同的角色,只是不要求有/usr/lib/sendmal 和/usr/lib/X11 两个符号链接6。

对二级目录的详细分析–/usr/local:本地层次结构

  1. 这个文件做什么呢?

/usr/local 层次结构用于系统管理员安装本地软件。在系统软件升级时它要保证安全,不被覆盖。它可以用作放置可以在一组主机之间共享而在/usr 中找不到的程序和数据。本地安装的软件必须位于/usr/local 中,而不是/usr,除非想安装它来替换或升级/usr 中的软件。

  1. 要求:

/usr/local 下必须有以下文件夹或符号链接:


文件夹描述
1bin本地二进制文件
2**btc **本地二进制文件的主机特定系统配置
3**bames **本地游戏二进制文件
4**include **本地 C 头文件
5**lib **本地库
6**man **本地在线手册
7sbin本地系统二进制文件
8share本地的与架构独立的层次结构
9**src **本地源代码

除了下面列出的文件夹外在安装 FHS 兼容的系统之后,/usr/local 下不应该有其他文件夹。
3.特殊选项
如果/lib或/usr/lib存在,/usr/local 下必须有对等的文件夹。
/usr/local/etc 可以是指向/etc/local 的符号链接。
:::success
基础知识
保持/usr/local/etc 的一致性对安装者有利,并且已经在其他系统中使用。在需要备份所有/usr/local 下的所有东西来再创建一个系统的情况下,这样做不会引入其他的维护开销。但如果系统想把所有它们的配置放到同一层次结构中,建一个指向/etc/local 的符号链接比较合适。
注意/usr/etc 仍然不允许使用:/usr 中的程序应该将配置文件放在/etc 下。
:::

对三级目录的详细分析–/usr/local/share

对此文件夹下内容的要求同 /usr/share。唯一追加的限定是 /usr/local/share/man 和/usr/local/man 文件夹必须同步(通常意味着其中之一为符号链接)。

对二级目录的详细分析–/usr/sbin:非关键的标准系统二进制文件

这个文件做什么?
此文件夹包含了任何系统管理员单独使用的任何非关键二进制文件。系统修复、还原、挂载/usr 或
其他关键功能的系统管理程序必须转而放在/sbin

对二级目录的详细分析–/usr/share:与架构独立的数据

  1. 这个文件做什么?

/usr/share 层次结构用于所有只读的与架构独立的数据文件
这一层次结构应该可以在给定操作系统的所有架构平台之间共享;因而,例如对 i386、Alpha 和PPC 平台的站点可以维护一个集中挂载的/usr/share 文件夹。不过注意,一般不应该在不同的操作系统间或相同操作系统的不同版本间共享/usr/share。
任何包含或要求不需要修改数据的程序或软件包应该将这些数据保存在/usr/share或/usr/local/share,本地安装时)下。建议使用/usr/share 下的一个子文件夹来放置它们。
在/usr/share/games 下的游戏数据应该是纯静态的数据。任何可修改的文件如分数文件、游戏日志之类,应该放置在/var/games 中。

  1. 要求/usr/share 下必须有如下文件夹或符号链接:
文件夹描述
**man **在线手册
**misc **各种与架构独立的数据
  1. 特殊选项

如果安装了相应子系统,则/usr/share 中必须有以下文件夹或符号链接:


文件夹描述
1dict单词列表(可选)
2doc各种文档(可选)
3**games **/usr/games 的静态数据文件(可选)
4info** GNU Info 系统的主文件夹**(可选)
5locale区域信息(可选)
6nls本地语言支持的消息索引(可选)
7sgmlSGML 数据(可选)
8terminfoTerminfo 数据库的文件夹(可选)
9tmac未使用 groff** 发布的** troff 宏(可选)
10xmlXMl 数据(可选)
11zoneinfo时区信息和配置(可选)

建 议 程 序 特 定 的 、 与 架 构 独 立 的 文 件 夹 放 在 这 里 。 这 些 文 件 夹 包 括 groff 、 perl 、ghostscript 、 texmf 和 kbd ( Linux ) 或 syscons ( BSD ) 。 然 而 也 可 以 将 它 们 放 在/usr/lib 中以保持向后兼容,这由发行者确定。类似的,如果发行者想要放置游戏数据,也可以在/usr/share/games 层次结构之外使用/usr/lib/games 层次结构。

对三级目录的详细分析–/usr/share/dict(存放单词)
  1. 这个文件做什么?

此文件夹是放系统单词表的地方。传统上这一文件夹只包含英语 words 文件,它用于 look(1)和各种拼写程序。Words 可以使用美式或英式拼写。
:::success
基础知识
只有单词表放在此处的原因是它们是所有拼写检查程序之间惟一通用的文件
:::

  1. 特殊选项

如果安装了相应子系统,/usr/share/dict 下必须有以下文件或符号链接:

文件描述
**words **英语单词表(可选)

同时需要英式和美式拼写的站点可以将 words 链接到
/usr/share/dict/american-english 或/usr/share/dict/british-english。
其他语言的单词表可以使用该语言的英文名称添加,例如,
/usr/share/dict/french、/usr/share/dict/danish,等等。对有问题的语言,可能的话应该使用合适的 ISO 8859 字符集;如果可能,应该使用 Latin1(ISO 8859-1)字符集(通常不适用)。
如果存在,这里可以包含其他单词表。

对三级目录的详细分析–/usr/share/man:手册页
  1. 这个文件能做什么?

本节细述整个系统中手册页的组织,包括/usr/share/man。也提到了/var/cache/man 那一节。
系统中的初始位置是/usr/share/man。/usr/share/man 包含了/和/usr 文件系统下命令和数据的手册信息11。
手册页保存在**//man

/**中。对、、
和的解释在下面给出。
下面是手册各节的描述:

  • Man1:用户程序手册。本节中包含了描述公共访问的命令的手册页面用户需要使用的绝大多

数程序文档位于这里

  • Man2:系统调用。这一节描述了所有的系统调用(对内核执行操作的请求)。
  • Man3:库函数和子例程。第 3 节描述了没有直接调用系统服务的程序库例程。这一节与第 2 节实际上只针对编辑者。
  • Man4:特殊文件。第 4 节描述了系统中的特殊文件、有关的驱动功能和网络支持。典型的,这包括/dev 下能找到的设备文件和内核对网络协议的支持接口。
  • Man5:文件格式。很多数据文件格式的文档都在第 5 节。这包括各种头文件、程序输出文件和系统文件。
  • Man6:游戏。这一节是游戏、演示和通常很琐碎的程序的文档。对这些内容的必要性,不同的人有不同的见解。
  • Man7:各种难以归类的手册页划归第 7 节。**Troff 和其他文本处理宏包(的手册)**放在这里。
  • Man8:系统管理员用来进行系统操作维护的系统管理程序的文档放在这里。有些程序有时也对普通用户有用。

  1. 特殊选项

/usr/share//下必须有以下文件夹或符号链接,除非它们是空的:

文件夹描述
1man1用户程序(可选)
2man2系统调用(可选)
3man3库调用(可选)
4man4特殊文件(可选)
5man5文件格式(可选)
6man6游戏(可选)
7man7杂项
8man8系统管理(可选)

部分描述了手册的节次。
必须在/usr/share/man 下预设(子文件夹)来 支持各种不同(或多种)语言的手册文件。这些预设必须考虑存储和手册间的相互引用。有关因素包括语言(包括地域差异)和字符编码。
/usr/share/man 下语言子文件夹的命名基于附录 E 中的 POSIX 1003.1 标准,它描述了区域识别字符串——描述文化环境最被广泛接受的方法。 字符串是:
[_][.][,]
字段必须取自 ISO 639(代表语言名的一套代码)。它必须是两个字符宽且必须只能为小写。
字段必须是 ISO 3166(代表国家的一种规定)中的双字符代码,如果里面有。(绝大多数人应该对电子邮件中使用的双字符国家代码比较熟悉。)它必须是两个字符宽,且只能为大写13。
可以在**字段后放一个指定(版本)的参数**,用逗号分开。这可以用来区别各种不同的文化需要;例如,词典顺序对比一个更面向系统的整理顺序。本标准不推荐使用字段,除非需要。
手册页使用单一语言和代码集的系统可以忽略子字符串并把所有手册页保存在下。例如,只有以 ASCII 编码的英文手册页的系统可以将手册页(man
文件夹)直接保存在/usr/share/man 下。(传统的环境中实际上就是这么安排的。)
对于有一套广泛接受字符编码集的国家,可以忽略字段,但是强烈建议保存它,尤其是对于有数套相互冲突标准的国家。

各种例子:
image.png
类似的,为手册页所做的预设必须是独立于架构的如设备驱动或系统管理命令的文档这些必须安 置 在 相 应 man

文 件 夹 下 的 某 个 文 件 夹 中 ; 例 如 , i386 架 构 的ctrlaltdel(8) 命 令 的 man 页 面 可 以 放 在/usr/share/man//man8/i386/ctrlaltdel.8。

/usr/local 下命令和数据的手册页保存在 /usr/local/man 下。 X11R6 的手册页保存在/usr/X11R6/man 下。同理,系统中所有的手册页必须与/usr/share/man 保持相同的结构。

包 含 格 式 化 的 手 册 页 记 录 的 cat 页 面 的 各 节 ( cat

) 也 应 位 于<mandir/下,但不要求并且也不允许以 nroff source 手册页的 lieu 形式发布。

各节从“1”到“8”加序号的做法是按传统定义的。通常,位于特定节中的手册页文件名
以.

结尾。
另外**,一些应用程序特定 大型手册页文件名带有附加的后缀**。MH 邮件处理系统手册页必须在所有
MH 手册后加 mh 后缀。所有 X 窗口系统的手册页文件名后必须附加一个 x。

/usr/share/man 下存放各种语言的手册页到合适的子文件夹的做法也适用于其他的手册页层次结
构 , 如 /usr/local/man 和 /usr/X11R6/man 。 ( 这 部 分 的 标 准 也 适 用 于 后 面 可 选 的
/var/cache/man 结构那节。)

对三级目录的详细分析–/usr/share/misc:各种独立于架构的数据
  1. 这个文件能做什么?

此文件夹包含了各种独立于架构的、不需要在/usr/share 下单独开辟子文件夹的文件

  1. 特殊选项

如果安装了相应子系统,则**/usr/share/misc 下必须有以下文件或符号链接**:


**文件 **描述
1**ascii **ASCII 字符集表(可选)
2**magic **文件命令用的魔数的默认列表(可选)
3**termcap **终端功能数据库(可选)
4**termcap.db **终端功能数据库(可选)

其他(应用程序特定的)文件也可以放在这里,但发行者可以酌情将它们放在/usr/lib 中

/usr/share/sgml:SGML 数据(可选)
  1. 这个文件做什么

/usr/share/sgml 包含了 SGML 应用程序使用的独立于架构的文件,如普通索引(不是集中索引,参见/etc/sgml),DTD、实体或样式表。

  1. 特殊选项

如果安装了相应子系统,则/usr/share/sgml 中必须有以下文件夹或符号链接:

**文件夹 **描述
**docbook **Docbook DTD(可选)
**tei Tei **DTD(可选)
**html **Html DTD(可选)
**mathml **Mathml DTD(可选)

没有专门对应于给定 DTD 的其他文件可以放在它们自己的子文件夹中。

对三级目录的详细分析–/usr/share/xml:XML 数据(可选)
  1. 这个文件能做什么?

/usr/share/xml 包含 XML 应用程序使用的独立于架构的文件,如普通索引(不是集中索引,参见/etc/sgml),DTD、实体或样式表。

  1. 特殊选项

如果安装了相应子系统,/usr/share/xml 下必须有以下文件夹或符号链接:

**文件夹 **描述
**docbook **Docbook XML DTD(可选)
xhtml** XHTML DTD(可选)**
**mathml **MathML DTD(可选)

/usr/src:源代码(可选)

** 这个目录做什么?**

放置源代码。源代码可以放在这个子文件夹中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值