我进行了一些搜索,但是找不到关于Unix用法工作方式的文档。我知道一些(主要是通过反复试验),但是,例如,我怎么知道
/usr/bin/ls [-aAbcCdeEfFghHilLmnopqrRstuvVx1@] [file]...
意味着您可以包括多个选项?那是,
ls -la
什么是用法语法的文档在哪里?
我进行了一些搜索,但是找不到关于Unix用法工作方式的文档。我知道一些(主要是通过反复试验),但是,例如,我怎么知道
/usr/bin/ls [-aAbcCdeEfFghHilLmnopqrRstuvVx1@] [file]...
意味着您可以包括多个选项?那是,
ls -la
什么是用法语法的文档在哪里?
Answers:
确实没有RFC或其他任何东西,但是如果您遵循以下准则,则不会太过离谱:
尖括号中的任何内容均< >
表示需要该选项:
<foo>
方括号中的任何内容[ ]
表示该选项是可选的:
[bar]
用管道分隔的选项|
表示有效值:
--baz=one|two|three
单字母选项以一个破折号开头:
-a
多字母选项以两个破折号开头:
--foo-bar
(基于#4)带有多个字母的单破折号通常表示那些单独的单字母选项而不是多字母选项的并集。并非所有命令都支持这种联合。示例:
-aAbBcC
与-a -A -b -B -c -C
手册页没有严格的结构,但以下内容涵盖了大多数命令。
在BSD文件格式手册MANUAL PAGES(5)的 “ MANUAL PAGE SYNTAX”部分中:
在手动页面语法中,任何普通文本字体都是必需的文本。粗体字表示的是标志或子命令。带下划线的是用户指定的参数,例如文件名。
用方括号括起来的任何参数都被认为是可选的。例如,[filename]表示可选的filename参数。
由垂直分隔符(|)分隔的标志,参数或子命令是互斥的。例如,如果-a打开一个选项,而-b关闭该选项,则此命令的语法可能是-a | -b。
在某些情况下,您甚至可能会看到用括号括起来并由垂直分隔符分隔的整个参数组。这是一种显示命令具有多个有效语法的方式。在其他手册页中,这通过在摘要中包含多行来表示,每行以命令名称开头。分隔的格式更常见(且更具可读性),但对于语法特别复杂的命令并不总是可能的。
最后,最重要的符号约定是省略号(...)的使用。这表明此时可以添加其他参数。