Mac 的命令行与 Linux 相比如何?

Mac 的命令行与 Linux 相比如何?

我喜欢 Ubuntu Linux - 尤其是命令行。但我必须承认,至少就目前而言,Windows 更加用户友好 - 它有更多的软件、更多的驱动程序,以及更多可以运行的东西。

知道 Mac 是基于 Unix 构建的,这让我想知道它是否是两者之间的最佳平衡点。但我想知道:Mac 命令行与 Linux 的 bash 有多相似?我可以直接使用 vim 和 bash 脚本以及 git 等吗?更改目录等常用命令会有所不同吗?有人知道在线“比较和对比”资源吗?

答案1

Bash 就是 Bash,因此 shell 及其内置程序是相同的。但请注意,某些工具(如ps或 )的行为head在细节上可能有所不同,因此您的脚本可能会失败。

答案2

Mac OS X 是一个 Unix 操作系统,其命令行与任何 Linux 发行版 99.9% 相同。bash是您的默认 shell,您可以编译所有相同的程序和实用程序。没有明显的区别。您还可以找到各种项目,例如 MacPorts,它们为 Mac 提供软件包管理。

答案3

有几件事——这实际上取决于你所说的命令行是什么意思。

  1. 您可能会运行 bash,它与任何其他 UNIX 上的 bash 相同。bash 编程语言也相同 - 只要是同一版本。Bash 版本在语言上略有不同,但这与 MacOSX 与 Linux 本身无关。

您实际上可能会遇到这种情况 - 由于许可原因,Mac 上的 /bin/bash 被固定为 3.x。如果您习惯使用 4 甚至 5,您可能会发现轻微的兼容性问题。

  1. bash 本身是“命令行”的一个小子集。为了实用,您通常使用一些其他常见的 UNIX 实用程序,例如 awk、ls 或 cut。由于其历史(它源自 BSD,而不是 Linux 或 SystemV),Mac 版本的实用程序将与您在 Linux 上习惯使用的版本(又名 GNU 版本)不同。它们至少会有一些标志差异,并且与 Linux 有一些输出和功能差异。使用这些的脚本必须进行更改以进行补偿。BSD awk 与 GNU gawk 非常不同。或者,您可以从 macports 或 home brew 获取这些 GNU 版本,并设置您的 PATH 以使这些成为默认值(而不是内置版本)。

  2. MacOS X 还有一些很酷的新工具。 open很不错,它会打开对象,就像你双击它一样。 defaults允许您设置一些首选项,有些甚至不在 GUI 首选项面板中。 textutil很有用,也say很有趣。

答案4

Mac 和 Linux 上的命令行功能确实相似,因​​为 OS X 在您看到的 GUI 下具有 UNIX 风格(称为 Darwin)。

OS X 上的默认 shell 是 bash,因此如果您熟悉它,您就可以很好地适应。

在 Mac 上,默认的命令行应用程序是 Terminal。还有许多其他模拟器,但总体而言,Terminal 提供的外观和感觉与您在 Linux 中习惯的 shell 非常相似。

但主要差异在于:

  • 有时命令行参数不同(du例如,请参阅)。主要命令(如cdls等)类似。
  • OS X 的很多部分都不应该像 Linux 那样手动编辑。这是一个独立的话题,但请注意,在配置和维护方面,运行 Mac 并不完全像运行 Linux 机器。

话虽如此,OS X 中的命令行也有很多很酷的技巧(例如opencommnand)。有很多以前的帖子和博客文章提供了更多信息。

您还可以通过 MacPorts、Fink 或其他一些 OS X 包管理系统获得一些开源软件包(例如git、等)。您还可以根据需要构建其他用于 UNIX/Linux 类系统的源包。hg

相关内容