美文网首页
【笔记】MAC下使用iTerm2和zsh

【笔记】MAC下使用iTerm2和zsh

作者: _鹤梦_ | 来源:发表于2019-03-02 13:52 被阅读0次

    应该说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:水平分割

    image

    【3.快速唤出】

    这个同样是我很喜欢的功能,炫酷到无法阻挡。设置好系统热键之后,只要按快捷键,iTerm2就会从顶部以半透明的形式快速唤出,相当炫酷高效。个人因为经常使用iTerm2,所以设置了热键为:option+空格键。大家也可以根据自己的喜好设置快捷键。

    image

    使用快捷键快速唤出的效果。。。貌似是直接浮动在窗口上的,我截不了屏。。。大家尝试去感受下。

    【4.显示复制历史】

    使用快捷键shift+command+h,快速显示出我复制过的历史记录,你可以快速选择使用。

    image

    【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

    image

    配置字体

    首先配置字体编码,修改~/.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

    image

    新打开一个iTerm2 Tab,就可以看到效果了。

    快捷键设置

    这里说的快捷键主要是光标移动的快捷键,因为熟练使用这些快捷键会提升工作效率。iTerm2需要配置的地方不多,我就设置了两个地方,使光标可以以单词为单位移动:

    1. 使光标移动到右边单词的首字符
    2. 使光标移动到左边单词的首字符

    依然是打开iTerm2的选项

    Preferences -> Profiles -> Keys -> 添加快捷键(+号)

    image

    设置光标前进一个单词的快捷键

    image

    继续添加快捷键,设置光标回退一个单词的快捷键

    image

    于是,当你需要敲一串很长的命令时,不巧其中某个选项需要修改,在配置完以上快捷键后,你可以键入option + foption + 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包,意思是即使你不做任何操作,也可以起到心跳保活的效果。

    作者:冯雅杰
    链接:https://www.jianshu.com/p/bb630ada1f02
    来源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

    相关文章

      网友评论

          本文标题:【笔记】MAC下使用iTerm2和zsh

          本文链接:https://www.haomeiwen.com/subject/nzueuqtx.html