为什么 Bash 中有多个命令来完成相同的任务?

SAN*_*les 3 command-line users

我读过这篇文章,但它没有解决冗余问题。

例如,我注意到有三个不同的命令可以返回登录用户:

  • w (?)
  • who(打印当前登录的所有用户名)1
  • users(列出当前登录的用户) 1

我知道输出略有不同,但是在这个例子中是否有实际用例来实现冗余?具有多个参数的单个命令不是更好吗?我想问题归结为是否有防止合并 Bash 命令的策略,以及当命令在功能上重叠时是否有最合适的命令索引。

1目的根据bash命令的这个索引

编辑以回应 [搁置]:

我不是在征求意见。我在问为什么有重叠的命令,因为它令人困惑。我想知道当命令重叠时哪些命令是最好的命令。我不是在否定个人品味。我知道有些人更喜欢某些软件。@Rinzwind 在评论中提到我的问题可能与向后兼容性有关,我认为他是对的。是否有一种系统的方法可以在每个新版本的 Ubuntu 中包含或排除某些 Bash 命令,以便像我这样从 Unix 时代就没有参与的人可以从操作系统中获得最大的好处?

A.B*_*.B. 5

这叫自由!

这是使用您认为正确的东西的自由。自由是创造性的。不必忍受软件公司的限制的自由。这是必须为自己思考的自由。

是Linux!

可能大多数程序都比您更老,并且起源于 Unix。但陈旧的东西不会自动变坏。


正如您在评论中所说:

我关心的是类似的命令是否违反了 DRY 原则。

这与DRY无关。不要在代码中重复自己,没错。但是fork codechange code;要有创意!

如果您需要限制,请使用 Microsoft、Apple 或其他软件,但不要使用 Linux。


在此处阅读更多信息:Linux、GNU 和自由

  • 这不能回答问题。作为一个相对较新的 Ubuntu 用户,我只是质疑 Bash 版本包含在 Ubuntu 发行版中的标准。 (2认同)