CentOS 6(可能还有大多数 Linux 发行版)包含一个1p
关于 POSIX 规范的手册页部分。
man 1p sh
, man 1p sed
, 等 阿尔。都非常有用,可以参考便携式 shell 脚本。
但是,我刚刚注意到我系统上的这些手册页来自 2003 Open Group Base Specifications!此后又出现了2008年版、2013年版和2016年版。
如何在 Linux 系统上将最新的 POSIX 规范作为手册页离线使用?
我已经尝试过以下操作:
[vagrant@localhost ~]$ set -x
++ printf '\033]0;%s@%s:%s\007' vagrant localhost '~'
[vagrant@localhost ~]$ sudo yum upgrade $(rpm -qf $(man -w 1p sh))
+++ man -w 1p sh
++ rpm -qf /usr/share/man/man1p/sh.1p.gz
+ sudo yum upgrade man-pages-3.22-20.el6.noarch
Loaded plugins: fastestmirror, security
Setting up Upgrade Process
Loading mirror speeds from cached hostfile
* base: mirrors.evowise.com
* extras: centos.sonn.com
* updates: mirror.scalabledns.com
No Packages marked for Update
++ printf '\033]0;%s@%s:%s\007' vagrant localhost '~'
[vagrant@localhost ~]$
Run Code Online (Sandbox Code Playgroud)
(相关说明:有什么地方可以查到 2003 年版和 2016 年版之间究竟发生了什么变化?)
手册页描述了系统的实际运行方式,而不是操作系统问世 N 年后标准机构如何更改标准。如果 Red Hat 选择随他们的操作系统一起发布 POSIX 2003 手册页,我认为这意味着这是最接近他们发布的 POSIX 标准。
我会单独保留操作系统提供的 POSIX 手册页,但下载当前版本,将它们安装在其他地方/usr/local/linux-man-pages/share/man
,然后将该目录放入您的MANPATH
.
如果您将p
页面重命名为具有其他标记(例如pc
“POSIX current”),则可以将它们与操作系统提供的标记分开查询。例如,您可以使用以下工具mmv
:
$ mmv 'man1p/*.1p.gz' 'man1p/#1.1pc.gz'
$ mv man1p man1pc
... do the same for man 2p, etc ...
$ man ls # shows GNU ls page
$ man 1p ls # shows OS-provided POSIX ls page
$ man 1pc ls # shows current POSIX ls page
Run Code Online (Sandbox Code Playgroud)
删除与操作系统提供的手册页冲突的非 POSIX 手册页,或者如果您还希望能够参考当前特定于 Linux 的手册页,则对其进行类似标记。例如,您可以使用lc
“Linux current”。
POSIX.1-2008 标准的变更历史记录包含在基本原理卷中。
基本定义的基本原理包含系统接口、Shell 和实用程序的更改历史记录的链接。
每个条目(实用程序或接口)在各个条目的底部还有一个“更改历史记录”部分。
完整的标准可以在这里找到:http://pubs.opengroup.org/onlinepubs/9699919799/nframe.html
归档时间: |
|
查看次数: |
2403 次 |
最近记录: |