小结
至于写这篇文章的目的最主要是对于一个之前用Ubuntu的程序员换了MBP之后的等等不习惯,对于之前在Ubuntu上的一些习惯等等在换了macOS在之后变得很不习惯,需要一定时间去适应并且对于一些环境等等的配置需要去爬各种文章慢慢研究。特此总结一文仅供大家方便。另一篇文章请查看《mac下的python相关环境的搭建》。两篇文章足够将一台新的mac配置成得心应手的新工具。
本篇文章立足于mac的终端的配置和对其shell的小结,让从ubuntu更换到mac的童鞋们快速理解各种shell和快速上手新的终端。
一、macOS的独特优势和相关内核
大家都知道对于一个程序员来说,效率是最重要的。可能大家接触的第一个操作系统就是windows了吧,虽然说从小的操作习惯和友好的交互界面让windows深入民心,但是对于打代码来说实在是有些笨重(我不是在黑windows,也不是再说不能用windows来编写代码,对于从visual studio 6.0入门1001界的我,对于windows也有深深的感情)。可能过渡期大家用过在虚拟机上安装redhat或者Ubuntu亦或是,为了习惯相应的操作习惯单独单独将系统换成了Ubuntu Kylin,linux对于开发者来说是非常友好的,不管是优雅简洁的界面还是已经集成好的环境,相对于在windows上下载压缩包,cmd各种,然后path各种要简单太多了。但是用的时间长了,对于虚拟机来说,硬件是硬伤,在windows上docker一个容器环境还是相对不稳定,卡死(后续也许会被硬件弥补)、异常问题还是频频发生,一度让我非常奔溃,对于单独安装linux来说,拓展功能的不全面,相关服务的支撑还是他的一个缺点之一。弥补这两个缺陷的解决方案就是macOS了(我没有收苹果的广告费),第一mac将硬件的性能发挥的极致,第二,对于很多软件支撑来说,没有那么笨重,轻便易用,简单明了,可以说对于一个效率至上的程序员来说非常友好了(当然价格也非常“友好”)。
咳咳,不好意思,有点跑题,当然这篇文章不是来捧苹果有多好多好的,而是帮助大家的操作习惯快速过度的(时刻提醒自己)。
二、shell
好了,打开终端敲入下面代码查看相关内核shell
cat /etc/shells
shells.png
可以查看出所有shell。提到shell,对于长期用linux的童鞋来说,已经不陌生了,何为shell,我们常常打开终端敲入相关命令,shell就是与系统进行交互的工具。我们可以cat查看到很多shell,bash、csh、ksh、sh、tcsh、zsh。对于一台mac来说,在我看来终端的优势并不是速度,而是扩展,zsh作为一款拓展功能相当强大的shell拥有很强大的拓展和可以定制的特点,成为作为mac系统强大优势的原因之一。
三、快速配置适合自己的zsh
上面截图已经看到了,很多同学可能惊讶我的终端为什么和你的不一样?答案就是我用的是iterm2+zsh+powerline,这个已经是美化过的了,其实如果你直接打开终端应该是这样的......
bash.png
这就是为什么要配置zsh的原因了,命令行、关键字、用户名混为一谈看时间长头都晕了,EXM?这这这?这就是你所说的mac系统优势很大?当然不是,第一,原生的终端拓展功能欠佳;第二,我们清楚地可以看到两个使用的shell也不一样之前的是zsh,而第二张图是bash。bash肯定不陌生,Ubuntu所用的shell就是bash,所以这就是我所一直强调的,更换mac以后,一定要让他得到充分的利用,zsh是你一个不二的选择。
好了,我已经解释的很全面了,下面快速配置习惯的mac终端。
1.安装iTerm
这个很简单,去appstore中直接搜索iTerm2下载、认证、安装、好了,以后可以告别mac原装的终端了。
2.安装zsh
打开终端可以发现我们的shell还是使用的bash。
对于mac来说,shell中也是含有原生的zsh的,切换只需要敲入zsh,那么终端就进行切换了,再次敲入bash,那么换回bash。但是原装的zsh不是特别好用,那么我们进行安装oh-my-zsh
终端敲入命令进行安装
curl -L [https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh](https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh) | sh
oh-my-zsh安装成功.png
配置配置文件,之前的bash配置文件是bash_profile可以通过命令
vi ~/.bash_profile
进行查看和修改,在这个配置文件中配置了环境变量,终端拓展,功能拓展包括主题等等等
如,这个文件中配置了mysql的系统环境变量的路径。在之后进行拓展时可以直接进行添加和修改。
bash_profile中配置了mysql的系统环境路径.png
但是,我们要将shell换成zsh那么这个配置文件就需要进行做相应的修改,说白了就是:
当我们使用bash作为终端shell的时候,系统变量路径需要配置在bash_profile中,而在使用zsh时则需要配置在另外的配置文件zshrc中。如果用vim用的不是特别习惯以后可以用open命令打开配置文件。
open ~/.bash_profile
创建配置文件
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
更改zsh为默认shell
这样以后打开终端默认就使用的是zsh为shell了
chsh -s /bin/zsh
此时再次打开终端已经发现我们的终端已经和之前大不相同了,但是感觉其实跟之前改进并不是特别多我们目标是改进终端美化终端,那么下一步。
我们可以先查看zsh中有什么主题配色的搭配
cd ~/.oh-my-zsh/themes
ls
oh-my-zsh主题.png
agnoster.zsh-theme是其中比较好看的,大家可以去github上去查看相应主题并可以下载新的主题,zsh默认的是robbyrussell.zsh-theme
https://github.com/robbyrussell/oh-my-zsh/wiki/themes
打开zshrc配置文件进行查看,直接在这里修改就好,我这里用的主题是新下载的powerlevel9k/powerlevel9k.zsh-theme
open ~/.zshrc
zsh相关配置-主题配置.png
修改之后需要编译才能将编译文件的修改执行成功
source ~/.zshrc
到此zsh就算配置成功了。下面继续,我们要想要清晰明了的层级目录显示需要安装powerline插件。
3.安装powerline
好了在执行此步之前,请确认你已经安装python包,如果没有,请转移相对应的那篇《mac下的python相关环境的搭建》文章进行查看。python2或者python3都可以,在mac系统中有默认的python2.7,但是我还是建议你用homebrew重新安装python2和python3(目录会发生改变,便于以后配置)
pip3 install powerline-status
由于我的python是homebrew安装的所以目录比较好找,cd一下一般目录都在这里,大家一个一级一级cd进去查找,不要找错,有可能我的和你们略有不同。
/usr/local/lib/python3.7/site-packages/powerline/bindings/zsh/
或者直接用命令(这个命令有可能会找到原来的python3的安装目录,因为homebrew进行的安装的目录时进行重构的,所以这个方法不建议,建议自己一层一层cd的去找)
pip3 show powerline-status
查找到这个目录下的powerline.zsh,将这个文件目录复制下来即/usr/local/lib/python3.7/site-packages/powerline/bindings/zsh/powerline.zsh打开zshrc配置文件,将地址粘贴进去,前面加.和空格就与zsh进行绑定了。
修改后别忘了编译
source ~/.zshrc
powerline里面需要相应的字体 去github上下载https://github.com/powerline/fonts
cd进./install.sh所在目录执行
./install.sh
安装好进入iterm2的Preferences里进行修改
这样层级目录的显示就完成了,我们还可以进iterm里面设置终端的背景颜色,我使用的Color Presets是Solarized Dark。
4.设置关键字高亮
如这篇文章所讲,zsh拥有很多拓展功能,会让你的终端用起来更得心应手。
安装关键字高亮终端执行
brew install zsh-syntax-highlighting
打开zshrc配置文件追加
##关键字高亮
source $ZSH/oh-my-zsh.sh
source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
#很多教程只有上边那两行,但是我们设置好编译后发现关键字还是没有高亮,这是因为iTerm终端自身的原因,加上后面两行代码就可以将zsh中主题的颜色加载出来了
export CLICOLOR=1
export TERM=xterm-256color
好了这样mac的超级终端也就设置完毕了,我们可以继续去查一些zsh的拓展进行安装,不过插件越多,打开终端的速度也就越慢,适当安装,会大幅增加工作效率。谨以此篇文章献给入坑macOS的童鞋们,相信通过这两篇文章你会对mac系统会更快的上手。另外请参考我的另外一篇文章《mac下的python相关环境的搭建》
Have Fun!!
纯原创文章,对各路大神的方法进行总结和归并,希望给大家带来更多便利。
peterp
July 2018
网友评论
Youtube上的一段视频,4分钟简短说明了zsh的优越之处,bash不是说不能用,而观点在于zsh更优