Mac 和 Ubuntu 的 unix 命令相同吗?

Mac 和 Ubuntu 的 unix 命令相同吗?

我想知道 Mac 和 Ubuntu 的 unix 命令(cp、mv、grep、args 等)是否相同。

它们是否具有相同的参数列表等等,或者它们是否试图保持相同但略有不同?

答案1

基本命令和选项是相同的,但每个实现都提供了自己的附加命令和选项。

自 Unix 诞生后不久,Unix 就出现了多种版本,它们共享一个基本命令集,但各自都有自己的扩展。实现者经常从彼此那里获取功能,因此如果系统 X 引入了新选项,几年后它可能会在系统 Y 中可用。

最终,POSIX规范是为了标准化一个共同的功能子集而制定的。该标准目前由公开组。虽然当前标准版本是 Single Unix 版本 4,但大多数系统仅实现版本 3。在 Ubuntu 上,软件包susv3包含 Single Unix 版本 3 规范。这是一份参考文档,因此读起来可能有点生硬,但至少可以检查您已经了解的选项是否是标准的。

大多数桌面/服务器操作系统都有符合 POSIX 标准的工具。任何基于 unix 的操作系统(Linux、Solaris、*BSD、OSX 等)都原生拥有这些工具。Linux 上的原生实用程序是GNU实用程序。Windows 有几种实现,包括Microsoft 的 Unix 服务以及 GNU 实用程序的移植,例如赛格威GNU Win32 实用程序

答案2

OS X (Darwin) 使用标准工具的 BSD 版本。Ubuntu(以及一般的 Linux)使用 GNU 版本。它们非常相似,但如果您不小心,它们之间的差异(例如选项的存在和顺序)可能会让您犯错。

答案3

它们之间的差异足以导致(1)你不能指望它们是相同的;(2)将要让您非常沮丧,并且(3)您确实应该仔细测试您计划在两个系统上使用的任何脚本。

我通常处理这一切的方法是安装 GNUcoreutilsfind优先使用这些版本而不是 Mac 版本。您可以通过 OSX 的 *nix 打包工具之一安装 GNU 版本:

这些是按照我的偏好顺序列出的,但您应该调查一下哪个最适合您的需求。

相关内容