答案1
有一个手册页read
(在手册的第 1 节中),其中包含除“没有read
命令,但您的 shell 可能有read
内置命令,有关详细信息,请参阅您的 shell 手册”具有误导性,因为它read
是 shell 内置的,并且行为和支持的选项因 shell 而异。
然而,某些系统(通常不是 Linux 系统)确实有POSIX 要求的read
命令(在/bin
或/usr/bin
其他地方)(但 Linux Standard Base (LSB) 规范取消了该要求),并且在这些系统上,手册页将描述那 read
命令,并且会产生误导,因为它通常不是那 read
read
当您在 shell 提示符下或在 shell 脚本中或在system()
, ... 中调用时调用它,popen()
但 shell 内置的。
那http://ss64.comsite 描述了bash
内置read
命令(尽管它没有说明是哪个版本bash
,例如,它与本机上read
的版本中的内置命令不同,它本身也与我可以访问的另一台(旧)计算机的内置命令bash
不同到)在一个部分。在这方面,它并没有误导性,但它非常具有误导性的地方在于它把各种read
bash
bash
其他与 bash 无关的命令同一段并且有点暗示bash
(Linux 和其他 Unices 上可用的许多 shell 之一,shell 是运行命令的多种方式之一)是运行这些命令所必需的,或者这些命令与之有任何关系。
现在,当您这样做时,如果手册的第 1 部分(用户命令)中man read
没有命令,它将在其他部分中搜索。read
例如,如果您已经安装了该manpages-dev
软件包(在 Debian 上),您将获得系统调用的手册页read
(在第 2 节中)。如果没有,但您已经安装了 TCL 文档包,您将read
在 部分中获得 TCL 功能的手册页3tcl
。
您可以使用(在某些系统上)明确请求read
用户命令。如果您的手册有一个章节,它会将其显示在 节 中的章节之前,因此您需要编写它才能获取变体。您可以使用 获取所有手册页,您可以使用以下命令了解它们来自 Debian 上的哪些软件包:。例如,在这个系统上,我有:man 1 read
man -s 1 read
1bash
1zsh
man 1zsh read
zsh
man -a read
dpkg -S $(man -wa read)
$ dpkg -S $(man -wa read)
9base: /usr/share/man/man1/plan9-read.1.gz
tcl8.5-doc: /usr/share/man/man3/read.3tcl.gz
manpages-dev: /usr/share/man/man2/read.2.gz
使用 时zsh
,Alt-H在提示符下按会显示man
您当前正在键入的命令的手册(通过命令)。 Debian 上的默认zsh
安装对其进行了改进,以利用该run-help
功能(请参阅 参考资料info -f zsh --index-search=run-help
),因此您也可以获得内置程序的帮助。
对于fish
shell,有一个help
内置函数尝试为给定的命令或fish
概念(来自man
文档fish
)提供最明智的文档。
如果由于某种原因,您被迫使用bash
(咧嘴笑)或者懒得更改默认值,bash
还有一个help
内置命令可以为内置命令带来帮助bash
(但请注意,help read
就像help '*read*'
,它带来了手册例如,如果您只需要手册read
,则使用名称包含的所有内置函数)。help '[r]ead'
read
bash
的帮助仅适用于bash
内置函数。如果您想将其扩展为在手册第 1 节(用户命令)、第 6 节(游戏)和第 8 节(管理命令)中包含搜索,您可以将其重新定义为:
help() {
builtin help "$@" 2> /dev/null ||
MANSECT=1:8:6 man "$@"
}
答案2
“你好,SS64 的作者,5 年后我偶然发现了这个问题。上面的其他答案中有一些很好的观点,我重新措辞了索引页和许多单独的页面,以便更清楚哪些是内置 bash 命令,哪些是通用实用程序。
另外,我同意其他人的观点,即没有任何在线参考可以替代内置手册页。能够在线搜索并找到您需要使用的命令很有用,但检查它们是否与您自己的机器的语法匹配总是明智的。
要回答这个问题,改进本地手册页的最佳且最持久的方法可能是为Linux 文档项目
我长期以来一直认为 Linux 可以使用“开箱即用”的 HTML 手册页,而 ubuntu 正在这样做一些工作关于这一点。
答案3
正如 Stephane 所暗示的,偏爱在线手册页的一个潜在陷阱是,它们记录的软件版本比您所拥有的旧版本或新版本。仅出于这个原因,我认为开始是一个非常糟糕的做法替换与你喜欢的,因为在未来的某个时刻,可能会有一些关于版本的微妙之处,这很重要——如果你无意中用信息丰富的文档替换了官方文档,情况可能会变得非常复杂不正确文档。
我没有使用过 ss64.com,但它看起来确实是某些事情的不错的参考;我认为它实际上是为了瞄准西格温用户作为“bash”类别实际上是 bash 内置命令和常见 UNIX 命令的混搭。由于后来技术上已经与bash无关,这使得该网站的内容可能具有误导性,但从 cygwin 的角度来看,这是有意义的。
我确实同意 linux 上的 GNU 手册页(我认为这些手册也与 cygwin 一起提供)有时不如其他手册页——例如,POSIX页面通常比第 3 节中的内容更深入,并且由于 linux 符合 posix,所以我认为它们是有效的。但我仍然不会用它们替换我的系统页面——这有什么意义呢?
所有这些都是有效互补的;您的系统页面就是这样。如今,大多数人都拥有持续的高速互联网连接,并且实际需要花费的时间读一份文档使通过网络访问所需的时间相形见绌。然而,有时我会做镜像网站,我发现这些网站非常有用,所以手头有它们就太好了:
wget -r -np -k -p http://www.site.com/dir/page.html
该地址是文档的顶级索引,因此例如。 “ss64.com/bash/”可能会起作用。这些开关在 中进行了描述man wget
。因此,您将该网站下载到本地目录,在浏览器中将其添加为书签或创建此类索引,然后就完成了。