我发现git --version
和git version
都可以。他们会告诉我相同的输出。但是,如果我尝试其他命令,例如ls -l
和ls l
,则只有第一个命令有效。
我想知道参数在命令行中是如何工作的。在标志/参数之前的破折号或双破折号何时何地需要?或者在使用shell时我可能错了一些概念。
谢谢!
答案 0 :(得分:1)
这取决于命令。有一些常见的命令,如git或tar,有可选的破折号。大多数人没有。您真的必须阅读手册页以查看命令所期望的内容。
答案 1 :(得分:0)
在命令行上提供参数基本上有两种样式。
GNU样式的特点是选项看起来像这样(-v
)或像这样(--verbose
)。单个短划线组的“短”选项和双短划线设置“长”选项。并非每个短期权都有相应的长期权,反之亦然。此语法允许短期选项不合并选项参数(例如,ls -al
等同于ls -a -l
)。
在BSD风格中,可以有一个如下所示的选项:java -version
其中-version
是一个选项,可能会也可能不会参数。这种风格已演变成复杂命令具有许多子命令的风格,通常称为“动词”。 Apple在OSX中使用此样式,例如launchctl unload /path/to/some.plist
(“卸载”是动词)。
希望这些信息可以帮助您随时阅读文档。您可以通过执行man ls
来查找任何命令的选项及其操作。请注意,在某些情况下,给定名称有多个联机帮助页。在这种情况下,您可以提供要查看的手册部分,例如man 1 crontab
以查看如何使用编辑用户crontabs的程序,以及man 5 crontab
查看这些表格中的条目格式。
了解这些家庭非常有用。这些命令的作者不希望重新实现选项解析,因此他们使用一个公共库来执行此任务。因此,如果您遇到一个新命令,一旦您知道它属于哪个家庭,您将更容易理解该联机帮助页。