标准 Unix 命令使用什么命名约定(如果有)?

标准 Unix 命令使用什么命名约定(如果有)?

我试图找到 Linux 命令的命名约定。

cp对于诸如、rm、等命令mv,它似乎基于第一个和倒数第二个字符,例如

  • 移动是mv
  • 清单是ls
  • 副本是cp
  • 更改目录是cd,两个单词的第一个字符,这是有道理的

虽然有时会忽略某些命令中的元音,这是有道理的。

另一方面,该命令mkdir并不是基于之前的认知:“make directory”mkdir应该更像是md.

由于我们对 bash 脚本中的变量有命名约定以及另一条指导线(例如1,2),我想知道这些命令是否存在类似的约定。

答案1

从历史上看,UNIX 命令很短,因为在创建操作系统时,内存稀缺,网络速度很慢,键盘很难使用,并且终端(如果可用 - 大多数时候您会以纸质打印的形式获得输出)分辨率较小。因此,尽可能节省开支是有道理的。

显然,不能最大限度地缩短任何任意命令,您的命令就是一个很好的例子:md最好归因于生成 MD 哈希的命令,并且“目录”的简写是“dir”,因此选择mkdir创建的命令目录非常有意义。

另请参阅我的回答:为什么 UNIX/POSIX 系统调用命名如此难以辨认?

总而言之,据我所知,除了上述来自历史技术限制的指导方针外,UNIX 命令名称没有任何约定。

答案2

Unix 是黑客为了自己使用而构建的。短名称意味着更少的打字,这些名称“对于临时用户来说真的很容易记忆”(即,称它们为“复制”、“列表文件”、“更改目录”或诸如此类的东西)是完全不可能的。因此,非常常见的命令有两个字母的名称,如果可能的话,模糊助记符(rm,cp,cd,ed,ln,cc,as,ld,...),有些命令有纪念其作者的名称(awk),还有一些是缩写命令(grep 代表 ed(1) 中的“g/正则表达式/p”)。

历史变幻莫测。

相关内容