我将学习如何使用命令行。具体来说,我将使用这本书:《Linux 命令行:完整介绍》。现在,我是否必须使用 Linux 发行版来浏览这本书,还是 OS X 就足够了?
如果我需要 Linux 发行版,那么通过 VM 使用它就足够了,还是需要在本机安装它?
答案1
我强烈建议在虚拟机中运行 Linux。所有软件都可以免费下载,并且为了学习命令行而在虚拟机中运行和在本机运行之间没有实际区别。
此外,Linux 命令行主要由bash + GNU coreutils,这与 BSD Unix 有很大不同(而 OS X 是 BSD Unix 的继承者)。 BSD Unix 和 GNU Linux 中写参数的偏好有很大差异。即使作为非新手,您也可以使用标准实用程序的不同选项来咬自己,例如ps
和tar
如果您在两个系统上工作。
当你的书是针对 Linux 的时,使用 OS X 会经常出现不一致和差异,当你更有经验时,这些不一致和差异会显得很肤浅,但当你学习时,它们只会令人困惑。让事情变得简单。
这还允许您进行实验,而不必担心因删除或更改任何重要文件而损坏您的计算机。
最后,但同样重要的是,它允许您从 OS X 终端建立到虚拟机的 SSH 连接,这样您就可以习惯使用 SSH 密钥,并且您的 Linux 服务器是否存在都没有区别。是本机、本地虚拟机,还是在 AWS 或 Digital Ocean 上运行:一切都一样!
答案2
OS X 足以学习命令行,因为它是经过认证的 UNIX 并且符合 POSIX。如果您正在阅读 Linux 特定的命令行书籍,您必须记住,OS X 中的用户区工具源自 BSD,而 Linux 上的工具是 GNU,并且它们之间存在一些微妙(而不是那么微妙)的差异。
如果您想使用 GNU 工具进行学习,您可以通过 macports 或 homebrew 安装 GNU 用户区,或者可以在虚拟机中进行完整的 Linux 安装。
答案3
到目前为止,有一些很好的答案,但远离默认 OS X 命令行工具的另一个原因是它们是非常旧的版本。例如,OS Xgrep
是 2004 年的,bash
是 2007 年的!这原因Apple 拒绝提供 GPL3 许可的工具。
如果您不想正确安装 Linux,您可以手动安装最新版本(可能通过某些端口系统,如 MacPorts、Fink 或 Homebrew)。
答案4
学习 unix 的最好方法就是用它来做实际的工作。我想说,为了能够在正常工作环境 (OS X) 中使用您自己的文件和数据,值得了解一下书中特定于 Linux 的示例与标准工具的 Mac 版本之间的差异。
遇到差异也将是一次宝贵的学习经历,即使有时会令人沮丧。
拥有一个 Linux 虚拟机来练习(尤其是潜在危险的命令)也很有用,但没有什么比现实世界中的学习使用更好的了。