![`-h`(帮助)命令行选项何时(以及从哪些地方)出现?](https://linux22.com/image/130194/%60-h%60%EF%BC%88%E5%B8%AE%E5%8A%A9%EF%BC%89%E5%91%BD%E4%BB%A4%E8%A1%8C%E9%80%89%E9%A1%B9%E4%BD%95%E6%97%B6%EF%BC%88%E4%BB%A5%E5%8F%8A%E4%BB%8E%E5%93%AA%E4%BA%9B%E5%9C%B0%E6%96%B9%EF%BC%89%E5%87%BA%E7%8E%B0%EF%BC%9F%20.png)
-h
从历史上看,命令行选项来自哪些地方(以及何时) ?我所说的含义与--help
not的含义相匹配--human-readable
。有些命令使用后者(例如du
或sort
),所以我想它从一开始就不存在,因为它不一致......它是由 GNU 引入的吗?由贝尔实验室/AT&T UNIX 提供?由伯克利? BSD? POSIX/SUS?什么时候?我想是他们中的几个人发明的,我们不知道谁是第一个发明的,可能很多人独立发明了它,但我想知道的是更具体的什么时候它是不是被发明出来的,以及一些可能已经开始在联合国系统中传播这种做法的公司或组织的例子。
答案1
从我的角度来看,最好的描述是 Eric S. Raymond 的《Unix 编程艺术》一章中写的“命令行选项”。
答案2
大多数最终用户都会在早期的 GNU 工作中遇到过命令行帮助。特别是 gcc,多年来它是无可争议的跨平台编译器之王。在一个时代(80 年代末、90 年代初),每个购买的新系统似乎都有不同的操作系统和架构,一致的构建工具非常流行。如果您曾经尝试过在 SunOS、Solaris、AIX 和 MCC Linux 版本之一(两张 5.25 英寸软盘!)上构建一些东西,您就会明白为什么 O'Reilly 可以推销这样的书籍移植 UNIX 软件,以及 POSIX 背后的推动力。
[ 除了 gcc 之外,GNU Make 作为跨平台解决方案也相当流行,而 bison 也无处不在。 groff 似乎也无处不在,作为供应商 roffs 的替代品。其他项目(如 emacs)虽然很常见,但并没有真正得到大量的命令行使用。 ]
从供应商角度来看,转折点可能是 SVR4,它由 AT&T 和 Sun 联合开发,合并了 BSD 和 SVR3 的功能,包括一个单独的“BSD 命令集”。 SVR4 之后的所有内容都可以大致归类为 BSD/System 5/或双宇宙。这确实是一个转折点,命令具有完全不同的参数,命令行帮助变成了日常使用的东西。 (在 AIX 上尝试 BSD 风格的 ps 并发出愤怒的嚎叫后最常用。)无论其价值如何,O'Reilly 发表UNIX 简介1986 年,针对 SVR4 和 Solaris 2.0 扩展的第二版于 1992 年出现。他们每年都会进行印刷和更正,让您对基本上是命令行参数列表的书的市场有一些了解。
当然,Linux 的兴起确实传播了这种做法,因为帮助是每个命令的一个选项,而不仅仅是每个人在商业系统上使用的 GNU 命令。