1.1 搭建高效的开发环境之操作系统

与大多数开发者一样,笔者最早接触的也是Windows系列操作系统,当然身边也有一些使用MacBook和Ubuntu的人。对于个人用户来说,MacBook的优势或许只是在于优美的外观颜值,而对于开发者来说,笔者认为MacBook的优势在于它集Windows的易用性与Linux的高可开发性于一体,因此特别适合开发者使用。

在国外很多的极客大会上,开发者、工程师最钟爱的就是Mac系统。相对于Windows,MacBook使用的是Unix系统,它是Linux系统的始祖,与Linux一样具有一切对开发者友好的优点。首先要提的必须是系统的终端命令行工具(Terminal)。

每个操作系统基本都有自己的终端命令行工具(Terminal)。在Windows中,可以通过快捷键“Win+R”,输入CMD调出命令行工具,默认的命令行工具如图1.1所示。

1.1 搭建高效的开发环境之操作系统 - 图1 图1.1 CMD窗口

但是相信用过CMD窗口的朋友一定对Windows提供的这个终端工具有很多“吐槽”。其中一部分原因是由于Linux在程序开发界的流行导致的。大部分的开发者在终端中都熟悉Linux的操作指令,而很少使用Windows下CMD的操作指令,这就导致开发者在CMD终端中的各种操作不便。而MacBook则不存在这些问题,它本身就是Linux的鼻祖,因此它几乎支持所有的Linux指令。在MacBook的终端中操作,与在Linux的终端中操作几乎没有什么区别。一个最普通的命令行终端如图1.2所示。

1.1 搭建高效的开发环境之操作系统 - 图2 图1.2 Mac终端窗口

既然Linux中的终端与MacBook的终端几乎一模一样,那么我们为什么要花那么高的价钱去买MacBook,而不选择免费的Linux呢?如果你的经济不是太富裕(单身的程序员除外),那么Linux也是一个非常好的选择。但是Linux相对于Windows和MacBook来说,又有一点太过于极客了。使用Linux几乎可以使用“折腾”一词,要使用好Linux,上手难度还是有一点的。由此可见,MacBook几乎就成了开发者最好的选择,处于Windows和Linux中间,鱼和熊掌可以兼得。

Mac系统的优势不仅仅在于终端的易用性,搭上了Linux的顺风车,大量的开源软件和开发工具可以非常容易地用来开发Mac版。同时,Mac系统还不用担心Windows下的各种电脑病毒和木马,也不用清理磁盘碎片,甚至不用安装各种驱动程序,对于这一点,相信做Android开发的同学深有体会。在Windows上,不同的Android手机需要安装不同的驱动软件,否则系统无法连接到Android设备。而在Mac系统下,由于Mac与Android内核都是Unix\Linux架构,不需要任何驱动程序就可以直接使用。

另外,不得不说Mac系统的设计哲学,将一切操作都简化到了极致。很多细小的设计点,不得不让人佩服乔布斯的眼界与思考能力。比如Mac最早不惜成本引入SSD硬盘,将系统的性能提升到一个新的境界;再比如Mac的多窗口环境,可以最大化地利用桌面,同时还能方便地在不同工作区中进行切换;再比如Mac系统的触控板、触发角等快捷工具,将各种操作集于一身极大地降低了操作成本。当然,Mac系统也并不是完美的。由于Windows系统最早的窗口可视化设计,让它占领了PC的大部分江山,所以很多游戏基本上只支持Windows系统(不过笔者觉得这也许也是一个好处,可以帮助开发者远离游戏的诱惑)。同时,由于Mac系统是基于以安全著名的BSD Unix系统改进而来,所以Mac系统的安全性是非常高的,这也导致很多软件在Windows上能实现的功能在Mac上是无法实现的。这一点对比Windows版的QQ和Mac版的QQ就可以发现。这一点也是有利有弊的双刃剑,一方面在Mac系统下,有些软件无法展现在Windows中的强大功能;但另一方面,基于Unix系统的架构却可以让Mac使用非常多的高质量开发工具。

由于在Mac系统中,有些按键与常用的Windows按键有所不同,所以有时候在看一些配置的时候,初学者可能找不到对应的按键,因此这里对常用的按键进行一下讲解。

  1. Command Shift Option Control Caps Lock

初学者应该多使用快捷键,如下所示的网址正是Apple官网上提供的Mac快捷键一览表。

https://support.apple.com/zh-cn/HT201236

在这个网址上,读者可以找到几乎所有的Mac快捷键,用好这些快捷键,是让Mac为你高效工作的基础。这里笔者列举一些常用的快捷键。

  • 窗口操作

切换同一应用的多个窗口——Command+~,这个快捷键非常有用,例如打开了多个Android Studio窗口,就可以通过这个快捷键进行切换。

关闭当前窗口——Command+W,这个快捷键可以关掉当前所在的这个应用的窗口,如果这个应用有多个窗口,那么这个应用不会被关闭,除非使用Command+Q快捷键。

新建窗口——Command+N,这个快捷键在很多应用中都是适用的,例如终端、浏览器等,通过这个快捷键可以快速创建该应用的新窗口。

  • 截图

自由截图——Command+Shift+4,这个快捷键可以像QQ截图那样截取任意大小的窗口,截图会保存在Desktop上

截取当前窗口——Command+Shift+4+空格键,如果要截取当前窗口,那么只需要在自由截取的基础上,按一下空格键即可截取。

  • 编辑

行首行尾——Command+Left\Right,通过这个快捷键,可以快速移动光标到行首或者行尾。

按单词移动——Option+Left\Right,通过这个快捷键,可以按单词进行光标的移动。

页首页尾——Command+Up\Down,通过这个快捷键,可以在一页的页首和页尾中快速切换。

删除行——Command+Delete,通过这个快捷键,可以快速删除一行。

1.1 搭建高效的开发环境之操作系统 - 图3虽然本章中提到的很多软件都是Mac中的,但是在Linux平台和Windows平台上,几乎都可以找到类似的替代软件。特别是Linux平台,Mac上能够使用的软件,在Linux上基本都能找到,毕竟它们同根同源。而最近微软也在Windows 10中增加了对Linux Bash的支持,这意味着Windows平台对于Linux的支持也指日可待了(目前Windows平台上也可以使用cygwin来模拟Linux系统环境)。