我喜欢Ubuntu Linux-特别是命令行。但是我必须承认,至少就目前而言,Windows更加用户友好-它具有更多的软件,更多的驱动程序以及更多可用的工具。
知道Mac是基于Unix构建的,这使我想知道它是否是它们之间的最佳结合点。但是我想知道:Mac命令行与Linux的bash有何相似之处?我可以立即使用vim和bash脚本以及git等吗?诸如更改目录之类的常用命令会有所不同吗?有人知道在线的“比较对比”资源吗?
我喜欢Ubuntu Linux-特别是命令行。但是我必须承认,至少就目前而言,Windows更加用户友好-它具有更多的软件,更多的驱动程序以及更多可用的工具。
知道Mac是基于Unix构建的,这使我想知道它是否是它们之间的最佳结合点。但是我想知道:Mac命令行与Linux的bash有何相似之处?我可以立即使用vim和bash脚本以及git等吗?诸如更改目录之类的常用命令会有所不同吗?有人知道在线的“比较对比”资源吗?
Answers:
Bash是bash,因此外壳及其内置组件是相同的。但是请注意,某些工具(例如ps
或)的行为head
在细节上可能有所不同,因此脚本可能会失败。
file
:file -i
在Linux上,而file -I
在OSX☹️
Mac OS X是Unix OS,其命令行与任何Linux发行版相同,为99.9%。bash
是您的默认Shell,您可以编译所有相同的程序和实用程序。没有明显的区别。您还可以找到各种项目,例如MacPorts,它们为Mac提供软件包管理。
这非常相似,但是如果您知道BSD与Linux的任何区别,请期望Mac具有BSD行为。
有两件事-它实际上取决于命令行的含义。
您实际上可能碰到了这一点-由于许可原因,Mac上的/ bin / bash固定为3.x。如果您习惯使用4甚至5,可能会发现较小的兼容性问题。
bash本身是“命令行”的一小部分。为了有用,通常使用一些其他常见的UNIX实用程序,例如awk或ls或cut。由于其历史(它来自BSD,而不是Linux或SystemV),因此Mac版本的实用程序将不同于您在Linux上使用的实用程序(又名GNU版本)。与Linux相比,它们至少具有一些标志差异,以及一些输出和功能差异。使用这些脚本的脚本将必须进行更改以进行补偿。BSD awk与GNU gawk完全不同。或者,您可以从macports或home brew中获得这些GNU版本,并设置PATH,使其成为默认值(超过内置版本)。
MacOS X还具有一些新的很酷的工具。 open
很好,它将打开对象,就像您双击它一样。 defaults
允许您设置一些首选项,甚至在GUI首选项面板中也可以。 textutil
可以是有用的,say
可以是有趣的。
Mac和Linux上的命令行功能确实很相似,因为OS X在您看到的GUI下具有UNIX(称为Darwin)风格。
OS X上的默认外壳是bash,因此,如果您熟悉它,将可以很好地进行调整。
在Mac上,默认命令行应用程序是Terminal。还有许多其他仿真器,但是总体上Terminal的外观和感觉与您在Linux中使用的shell非常相似。
差异的主要来源是:
du
例如,请参见)。主要命令(例如cd
或ls
等)相似。话虽这么说,OS X的命令行中也有很多不错的技巧(例如open
commnand)。有很多以前的主题,博客文章还有更多信息。
你也可以得到你的手一堆开源包(即git
,hg
通过MacPorts的,等等),芬克或OS X.你一些其他的包管理系统也可以建立其他来源包用于UNIX / Linux的系统一样需要。
这是一个区别。在Mac和Linux bash shell中都尝试此命令
find /etc -name "*.conf"
即使/ etc中有很多.conf文件,Mac也什么也不显示。
find /etc/* -name "*.conf"
。不过,这是作为MAC命令行与LINUX命令行对比的示例。无法推理-ve投票。
find /etc/ -name "*.conf"
则表明/ etc是目录而不是文件。请问find
在Linux中处理符号链接的目录,默认目录?