应该说Terminal终端是程序员经常会用到的工具,大家时不时的都要使用终端来敲上几行命令行,尤其是在Mac上,很多工具的使用都是通过Terminal来进行的。但是其实Mac自带的终端不是特别方便,今天我们将会使用iTerm2来替代Terminal终端。整体的搭配组合为:iTerm2+Oh my zsh +zsh
iTerm2是Terminal的替代品,是一款比较小众的软件,比Terminal优秀太多了。下载官网为[http://www.iterm2.cn/](http://www.iterm2.cn/),下载后直接安装即可。iTerm2可以设置主题,支持画面分隔、各种快捷键。Mac默认使用的shell是[bash](https://www.baidu.com/s?wd=bash&tn=24004469_oem_dg&rsv_dl=gh_pl_sl_csd),我们可以换成zsh,搭配iTerm2使用,用起来十分顺手。
(1)现在假设大家都安装了iTerm2,我们先把bash切换成zsh,使用命令行如下:
chsh -s /bin/zsh
执行命令后,会让你输入电脑的密码,输入即可。完成后,需要完全退出iTerm2,再次进入时,就已经从bash切换到zsh了。当然,如果你哪一天又想用bash了,也可以使用下列命令:
chsh -s /bin/bash
切换成功后,退出,再次进入的时候就切换bash成功了,相互切换是不是很方便呢?
如果你想看看自己的机子上装了哪些shell,可以使用如下命令:
cat /etc/shells
我的显示如下:
/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
(2)安装 oh my zsh
Zsh和bash一样,是一种Unix shell,但大多数Linux发行版都默认使用bash shell。但Zsh有强大的自动补全参数和自定义配置功能等等,Github地址:https://github.com/robbyrussell/oh-my-zsh,可以让我们非常快速的上手zsh。不得不说,这个oh my zsh真的是牛逼哄哄,去看看上面的star就知道了。个人推荐使用curl自动安装,执行命令行如下:
curl -L https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh | sh
(3)至此,iTerm2安装完毕、zsh已经切换成功、oh my zsh也已经安装OK。大家命令行的效果就应该如我上图所示了。是不是我们这篇博客就应该结束了呢?这样的话我们这篇博客的意义就不大了。下面我们来详细的讲讲如何高逼格的使用iTerm2,让我们的工作效率高起来。
【1.选中即复制】
在iTerm2中,直接用鼠标选中某个单词或者一行命令,那么就已经被复制了。不需要在去按command+C命令了。
【2.屏幕分隔】
这个是我最喜欢的iTerm2的功能,分隔成多个屏幕,只要你电脑的屏幕足够大,想分多少个屏幕都可以。可以同时进行命令行操作,而不会像只有在一个屏幕时,因为一个命令或者网络下载阻塞了,而不能执行其他命令了。如果你同时想去执行很多命令,那么,do it.
command+d:垂直分割;
command+shift+d:水平分割
。
【3.快速唤出】
这个同样是我很喜欢的功能,炫酷到无法阻挡。设置好系统热键之后,只要按快捷键,iTerm2就会从顶部以半透明的形式快速唤出,相当炫酷高效。个人因为经常使用iTerm2,所以设置了热键为:option+空格键。大家也可以根据自己的喜好设置快捷键。
。
使用快捷键快速唤出的效果。。。貌似是直接浮动在窗口上的,我截不了屏。。。大家尝试去感受下。
【4.显示复制历史】
使用快捷键shift+command+h,快速显示出我复制过的历史记录,你可以快速选择使用。
。
【5.全屏切换】
command+enter,可以快速实现全屏与正常窗口大小的切换,非常方便。
好了,写到这里我差不多要收手了,装逼到此结束。对于我来说,上面的东西差不多刚好够我用了。当然,zsh被称为“终极shell”,你可以花好长时间去学习它,我作为iOS开发,暂时没这个打算了。。。还有"Oh my zsh"这个东东,可以配置主题,插件等等,我这里只是抛砖引玉罢了,大家可以根据自己的需求继续去学习。
修改主题
zsh的配置文件是~/.zshrc
,每次打开终端时,这个脚本都会执行,修改该文件的ZSH_THEME
字段,配置主题
ZSH_THEME="agnoster"
同时将agnoster
主题下载下来,拷贝到~/.oh-my-zsh/themes
目录下
$ wget https://gist.githubusercontent.com/agnoster/3712874/raw/c3107c06c04fb42b0ca27b0a81b15854819969c6/agnoster.zsh-theme
$ mv agnoster.zsh-theme ~/.oh-my-zsh/themes/agnoster.zsh-theme
修改配色
我使用的是solarized配色方案,你可以从这里下载:
将solarized.zip
解压缩后,请在 iTerm 里按command+,
(逗号)快捷键,打开Preferences(选项)对话框
Preferences -> Profiles -> Colors -> Color Presets -> Import
导入iterm2-colors-solarized
目录下的两个.itermcolors
文件,修改配色方案
Preferences -> Profiles -> Colors -> Color Presets
选择Solarized Dark
。
配置字体
首先配置字体编码,修改~/.zshrc
文件,将字体编解码方式修改为UTF-8
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
下载并安装Powerline
字体,继续打开iTerm2的选项
Preferences -> Profiles -> Text -> Change Font
换成Menlo
字体,字号14
新打开一个iTerm2 Tab,就可以看到效果了。
快捷键设置
这里说的快捷键主要是光标移动的快捷键,因为熟练使用这些快捷键会提升工作效率。iTerm2需要配置的地方不多,我就设置了两个地方,使光标可以以单词为单位移动:
- 使光标移动到右边单词的首字符
- 使光标移动到左边单词的首字符
依然是打开iTerm2的选项
Preferences -> Profiles -> Keys -> 添加快捷键(+号)
设置光标前进一个单词的快捷键
继续添加快捷键,设置光标回退一个单词的快捷键
于是,当你需要敲一串很长的命令时,不巧其中某个选项需要修改,在配置完以上快捷键后,你可以键入option + f
或option + b
完成以单词为单位的移动,这样移动速度会快很多。
其他常用的快捷键
- Ctrl + a:将光标移动到命令行首
- Ctrl + e:将光标移动到命令行尾
- Ctrl + w:删除光标前的一个单词
- Ctrl + u:删除所有内容
- Ctrl + y:粘贴上次删除的内容
- Ctrl + f:光标向右移动一个字符
- Ctrl + b:光标向左移动一个字符
- Ctrl + r:搜索历史命令
以上是我常用的一些快捷键,赶紧练练手吧。也欢迎在留言区补充其他Tips。
补充
ssh保活(keepalive)配置
当你使用ssh客户端连接公司服务器时,很有可能会出现闲置一段时间后,被服务器断开的情况,这是运维部门的一种安全策略。但这种被动断开很可能会影响到自己的工作上下文,例如你运行了一个耗时较长的脚本,或用vim打开了一个文本文件,如果此时远程服务器断开了你的连接,你的工作就被中断了,且无法恢复,这种体验非常糟糕。
怎样才能让iTerm2帮你保持连接呢?其实这事儿也不是iTerm2来完成的,而是ssh客户端本身来完成的,修改~/.ssh/config
文件,如下
Host *
ServerAliveInterval 10
上述设置意为对任何一个ssh连接,每10秒发送一个no-op
包,意思是即使你不做任何操作,也可以起到心跳保活的效果。
作者:冯雅杰
链接://www.greatytc.com/p/bb630ada1f02
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。