我将学习如何使用命令行。具体来说,我将使用《 Linux命令行:完整介绍》这本书。现在,我是否必须使用Linux发行版来阅读本书,否则OS X是否足够?
如果我需要Linux发行版,那么通过VM使用它就足够了还是我需要本地安装它?
/proc
文件系统,USB驱动器往往/Volumes
不像/media/username
Ubuntu那样出现。CentOS有不同的dhclient.conf
文件。依此类推,等等
我将学习如何使用命令行。具体来说,我将使用《 Linux命令行:完整介绍》这本书。现在,我是否必须使用Linux发行版来阅读本书,否则OS X是否足够?
如果我需要Linux发行版,那么通过VM使用它就足够了还是我需要本地安装它?
/proc
文件系统,USB驱动器往往/Volumes
不像/media/username
Ubuntu那样出现。CentOS有不同的dhclient.conf
文件。依此类推,等等
Answers:
我强烈建议在VM中运行Linux。所有软件均可免费下载,并且在VM中运行与出于学习命令行目的而本地运行之间没有实际区别。
此外,Linux命令行主要由bash + GNU coreutils组成,这与BSD Unix有很大的不同(而OS X是BSD Unix的继承者)。在BSD Unix和GNU Linux中编写参数时,首选项有很大的不同。如果您是非新手,也可以使用标准实用程序的不同选项(例如ps
,tar
如果您在两个系统上都可以使用),就可以咬自己。
在特定于Linux的书中使用OS X经常会引发不一致和差异,这些差异和差异在您更有经验时会显得肤浅,但在学习时只会造成混乱。让事情变得轻松自在。
这也使您可以进行实验,而不必担心通过删除或更改任何重要文件来破坏计算机。
最后,尽管当然不是最不重要的一点,它将允许您从OS X终端建立到VM的SSH连接,这样您就可以习惯使用SSH密钥,并且这样的想法对您的Linux服务器是否有用没有影响是本机,本地VM或在AWS或Digital Ocean上用尽:它们的工作原理相同!
OS X足以学习命令行,因为它是经过认证的UNIX,并且符合POSIX。如果您在查看特定于Linux的命令行书,则必须记住OS X中的userland工具是从BSD派生的,而Linux上的工具是GNU,它们之间有一些细微(但不是那么细微)的差异。
如果您想学习GNU工具,则可以通过macports或自制软件安装GNU用户区,也可以在VM中进行完整的Linux安装。
bash
),那么它几乎适合运行它的任何系统。当您开始在外壳外部使用操作系统功能或特定工具时,它会有所不同。
ls
必须来自GNU或BSD(如果我错了,请更正)。因此,我认为这意味着我需要选择一个工具链(或环境)并在那里开始学习命令行。那正确吗?
第一个区别:
ls * -lah
在linux上工作,在mac上失败(参数必须优先)。使用VM或购买Mac专用书籍。您应该学习一种以后会用到的东西,然后再进行区别。
ls * -lah
在Linux上工作它工作在Linux上的方式,它适用于OS X它适用于OS X.它适用于OS X的方式方法是正确的 ,根据POSIX(12实用会展/ 12.2实用程序语法准则/准则9):“所有选项都应在命令行中的操作数之前。” 如getopt(3)中所述:“如果...设置了环境变量POSIXLY_CORRECT,则一旦遇到非选项参数,选项处理就会停止。”