如果这看起来很简单,请原谅我,但我两天前才开始学习 Unix。
基本上,我被告知,当在终端中输入命令时,它需要采用以下形式:
[command name][space][-options][space][arguments]
现在我刚刚开始考虑使用 git,并且遇到了以下问题:
git config --global core.editor "notepad.exe -wl1"
那么在这种情况下是git config
命令吗?当中间有一个空格时,它如何工作? Unix 不会感到困惑并认为这config
是一个选择吗?
而且,让事情更加混乱的是,我经常看到一个名为 的命令git-config
。这和 一样吗git config
?
我发现这真的很令人困惑,在精确语法非常重要的事情中,这些事情没有得到明确的解释。
答案1
这是一个很好的起点,但是“一般来说”需要强调的是。对于实用命令,阅读man utility
什么是正确语法的页面。
有一个The Open Group 的指导方针值得一读。然而有是实施的一致性程度各不相同。某些实现允许人们打破这一约定,但人们应该尝试注意它,因为它既更安全,通常也更便携(当您在另一个具有不同实现的系统上时)。
当您查看git
许多不属于标准实用程序包的其他工具时,您必须了解其完成方式。指某东西的用途命令不是唯一的git
,而且也存在于其他人中,例如pactl
/ pacmd
,amixer
正如所指出的@穆维西尔大多数 SCM 工具都使用这种基于命令的 git 设计,从旧的开始sccs
。
program [options] [command] [arguments]
这里通常options
是面向program
自身,arguments
面向command
……。
这是划分扩展子集的好方法主程序/suite/tool-kit 在域内工作。
domain -verbose DO_THIS -with_file filename.txt
domain -verbose DO_THAT -with_file filename.txt
对于某些人来说,它也作为一个简短的选项给出,并遵循指导方针例如fdisk -l <device>
Entervs. fdisk <device>
Enter, l
Enter。
当您执行例如时,git config ...
它不是 shell,而是git
它本身解释该config
命令。使用更多的是指定为 git 的git-config
简短方式config
命令。尝试例如man git-config
。它本身通常不被识别为命令。
为此git
也有点多复杂的。由于它是一个工具包 -> 套件,就像属于许多很多命令一样git
- 使用基于命令的实现是很自然的。这是开发者自己选择的设计git
。
git DO_THIS
更远。由于它包含大量命令,因此他们将命令分为几组,其中两个主要分类为管道和瓷器。另请参阅:Git 中“瓷器”一词的含义是什么?。手册页有一个从 开始的有序分组GIT COMMANDS
。
此外,还可以通过配置文件自定义某些命令的功能。举个例子。您可以通过查看提交之间的差异git diff
。该命令可以在您的.gitconfig
.您可以指定要使用哪个 diff 程序以及如何调用它。
为了方便地访问各种命令的帮助,还可以说:
git help command
所以,为您的命令git help commit
提供帮助。git
commit
我猜如果您将其git
视为命令行套件,甚至是菜单驱动的命令环境,它可能会有所帮助。与可以单击的 GUI 应用程序一样File->Open->[Some file]
,命令驱动套件也可以具有suite open <file>
.
答案2
git
是命令。它git-*
根据第一个参数的内容“多路复用”到各种其他命令,例如git config ...
运行git-config
。