下面我们就来一看究竟。每一位开发者都难免要用到命令行,从git版本库操作,到运行一些脚本,都离不开命令行。虽然现在的图形界面已经很强大了,但在很多情况下,使用命令行仍然是最快捷的方式。
iTerm 简介
iTerm是一款完全免费的,专为 Mac OS 用户打造的命令行应用。我们可以打开它的官方网站看一看www.iterm2.com:

很有极客风格吧,我们可以点击 Downloads 进入下载页面,选择一个适合你系统的版本,我们这里下载 2.9 版本,这也是做出重大改进的一版:

下载下来之后,我们就开始iTerm之旅吧。
当然iTerm网站也有一个中文版本,大家也可以访问这个地址www.iterm2.cn
我们打开iTerm首先会看到这样的界面:

标准的命令行应用程序配色,当然这种配色方案可能显得不够活泼,大家当然可以修改配色,我们可以打开Perferences来调整设置:

进入设置界面后,我们在Profiles选项卡里面可以找到Colors配色方案面板,在右下角的下来选框中,我们可以看到有几种内置的配色方案供我们选择,比如黑色风格,白色风格,深蓝风格,等等:

iTerm 快捷操作
iTerm当然不止是换换皮肤这么简单,它还提供了很多方便的功能,让我们使用命令行更加的顺手。
不用鼠标也可以选择文本:iTerm提供了一种脱离鼠标也可以选择文本的机制,叫做搜索 + Tab,不要小看这个细微的小功能,它能让你保持专注。我们在使用命令行的时候,经常会要去选择命令行中的文本复制粘贴。就比如说ping命令吧,我们用ping命令来获取一个域名解析后的IP:
localhost:~ icafe$ ping z.cnPING z.cn (106.50.16.198): 56 data bytes
^C
--- z.cn ping statistics ---
1 packets transmitted, 0 packets received, 100.0% packet loss
相信大家都有过这样的体验:ping命令得到IP后,我们想要把它复制下来,我们只能拿起鼠标,然后精确的选中这段IP,然后把它复制出来。频繁的在键盘和鼠标之间切换,很会影响我们的注意力。
iTerm给我们提供了一个好的方法,我们先按下 Cmd + F 调出搜索框,然后输入这段IP的前缀,比如 106:

我们用搜索的方式找到了这段文本,接下来神奇的事情就要发生啦,我们这时按下Tab键,我们发现iTerm自动帮我们把这段IP选中了,并且自动的帮我们复制到了剪贴板中:

我们在需要用到这段IP的任意地方,按下Cmd + V键,就可以讲它复制出来啦。这一个小小的功能,让我们不必在键盘和鼠标之间频繁切换了,非常的实用。
支持一键调出命令行: 我们有时会遇上这样一种情况,就是我们只想用命令行执行某一个特定的操作,然后就不需要它了。其实在这种情况下我们没有必要打开命令行应用的。比如我们就是想看一眼某个文件夹里面都有什么文件,类似这种操作我们其实没有必要单独开启一个命令行窗口的。
这就是iTerm的一键调起功能的作用啦,我们进入设置界面,进入Keys选项卡

我们看设置界面的左下角,有一个Hotkey选项,我们将这个选项下的所有复选框打开,并且设置一个自定义的快捷键,我这里设置的是Cmd + \。然后。。。 我们就可以退出iTerm了。
稍后呢。。 在我们需要命令行的时候,我们只需要按下我们刚才定义的快捷键,看。。 神奇的事情发生了:

iTerm以半透明的形式,在桌面的顶部显示了出来,我们可以在这里执行我们需要的命令,比如ls命令来查看某些目录的内容,当执行完我们需要的命令后,我们再次按下预设的快捷键,浮在上面的命令行界面消失了。这对于用完命令行总是忘记关闭窗口的懒人来说(比如我~),又是一大福音哦。
命令行标记功能: 这个功能简单来说就是,我们在某一行按下Cmd + Shift + M将这行标记下来。随后我们在需要的时候,可以按下Cmd + Shift + J就可以立即跳回这一行了。
正则表达式搜索: 这个就不用多说了吧,你可以任性的搜索,专为极客们准备,只需在调出搜索界面的时候,将Regular Expression选项钩上,你就可以使用正则表达式进行搜索了:

剪贴板历史纪录: 这个也是一个很方便的特性,iTerm能够将我们在使用命令行过程中所有的复制粘贴操作保存下来,随后我们在任何地方按下Cmd + Shift + H就可以我们所有复制粘贴内容的列表:

并且,还显示出了这些条目被复制的时间,从此以后,尽情的复制和粘贴吧~
快照返回:这个功能称得上是iTerm又一杀器,比如你在下午三点的时候执行了一些命令,然后过了几个小时,你又执行了其他的命令。如果这时候你想再回去看看下午三点那会儿你做了什么怎么办呢,答案就是用iTerm的快照返回功能。按下Cmd + Option + B就会在界面上显示一个时间轴:

这时候,我们按下键盘的左右箭头,时间轴就会自由的穿梭,这时iTerm上的命令行界面也随着变化成你选中的时间点的内容了。很神奇,很方便~
标签排列切换:我们用命令行的时候,会发现用着用着,不知不觉就打开了很多个标签,比如像我这样:

这时候,我们想在这么多标签中找一个窗口就很麻烦哦。这时候我们可以按下Cmd + Option + E键。。。

又一件神奇的事情发生了,我们看到所有的标签都整齐的排列在屏幕上,并且屏幕左上角为我们展现了一个搜索框,我们可以根据需要输入我们记忆中要搜寻的内容,然后iTerm就会将和我们输入的关键词最匹配的标签高亮显示出来,我们再按下回车键,就可以切换到那个标签啦~
智能选择:这个小功能也非常的实用,我们连续点击四次鼠标选中文字,这时候iTerm就会根据我们鼠标所指向的文本内容,智能的选中文本。比如我们的鼠标正好指在了文本中的一个URL上面,这时候我们连续四次点击这个URL,智能选择就会帮助我们选中这个URL,而不用我们费力的要精确去用鼠标指向,拖拽才能才能选中这个URL,就像这样:

我们可以很轻松的这样选中内容了,除了 URL 之外,还包括 Email 地址,双引号包含的字符串,都是智能选择的识别对象。
极客开发的软件,充分考虑了极客的各种需求~
已上就是本人对iTerm的简单了解啦,在这里分享给大家。也许并不高深,但旨在抛砖引玉,为大家打开一个新的思路。就像练功,不停的多处吸取养分,才能让你的内力不断增强,虽然在很短的时间内显现不出来,但随着时间推移,也在突然在某个时间点,你发现自己一下子强大了。
上面这些特性介绍,也许大家未必全能记得住,不过你可以收藏这篇文章,待日后突然急需的时候翻看一下。