我正在尝试找出 Unix/Linux“命令”的正确术语。具体来说,我一直明白,从技术上来说命令(例如,cd
)内置于 shell 中,其他“命令”(例如,rm
, ls
, mkdir
, cp
, mv
)更好地称为公用事业,因为它们是独立的程序。 (据我所知,rm
等都在 中/bin
。)此外,判断某个东西是否是命令的一种方法是查看它是否有手册页:命令没有,但实用程序有。然而,我通过谷歌找到的所有来源都专门使用“命令”。有人可以直接告诉我这个问题或者给我指出合适的参考资料吗?
由于exit
没有手册页并且不在 中/bin
,所以它是cd
一个真正的命令吗?
答案1
答案2
命令是当您在命令提示符下键入命令时运行的东西。有些内置于外壳中,有些是外部收藏品,有些两者兼而有之。其技术术语是“内置”和“外部”。没有“true”命令与 false 命令之分(但有些命令可以返回 true 或 false)。
“utility”在unix中没有特定的技术含义,并且不区分任何特殊的东西。
答案3
命令与实用程序的争论可以追溯到 DOS (Microsoft) 时代。在 DOS 之前,大多数“命令”都是在终端输入的,或者位于所谓的“监视器”(键盘 I/O)中。程序和实用程序是通过打孔卡、盒式磁带或磁盘等介质加载的东西。
Unix/Linux/VMS/CPM 的做事方式是提供大量的命令,这些命令可以很好地完成一项狭窄的工作。从一开始,IBM 和微软就以瑞士军刀的方式支持台式计算机,即拥有多用途的“实用程序”。
没有真正或官方的区别,但“实用程序”通常被称为通用程序,而“命令”则指狭义目的程序。
例如磁盘驱动器由于其多用途作用,通常被称为“磁盘实用程序”,并且格式由于其用途狭窄,通常被视为命令。 (但我可以向您展示人们偶尔会说 FORMAT 实用程序的地方!)
新程序员很快就能很快学会传统的名称——尽管不可否认,它是相当随意的。