最近捣鼓了一下 shell,使用 shell 的效率起码翻倍,真替那些还一条一条敲命令,记不住命令翻本本的同学着急(不是讽刺哦,只是想通过这篇文章,叫醒那些还在使用 Terminal 的同学)。本文主要介绍了我自己的 shell 配置,你可以按照我的思路配置属于自己的 shell。
1、为什么用 iterm2
iterm2 是 Terminal(mac 下的 shell)的「升级版」,可以直接到官网(https://www.iterm2.com)下载安装。其中有几个特性是我非常喜欢的:
a、选中即复制
选中 iterm2 中的一段文本时,这段文本会自动复制,无需 cmd+c;
b、更换背景图
由于我使用 vim 比较多,刚开始有些常用的命令总是记不住,我设置了一张 vim 壁纸辅助记忆。可以在 vim 电脑壁纸来了(3种主题)这篇文章中获取 vim 壁纸。
c、超链接可点
shell 中的文件名、目录、域名,都可以点击,这样可以方便地跳转到指定的目录,指定的网站中。
d、创建多个 shell 窗口(不是 iterm2 独有的功能)
不同的 shell 可以做不同的事情,尤其对于开发多个项目的同学来说,这时你可以开启多个 shell 窗口。快捷键 cmd + t。
e、设置创建 shell 后的默认目录
我基本都在 fe 这个工作目录中进行工作,把这个目录设置成默认目录,基本上每次打开 shell,即可进入自己将要进入的目录中。
2、omyzsh 拯救你的记忆力
你肯定会遇到各种命令总是记不住,shell 中命令不高亮,通过命令才能够查看项目所在的 git 分支等一系列问题。omyzsh 可以帮您轻松搞定这一切,它主要用来管理 zsh 的配置,支持 100 多种插件和主题,通过这些插件可以节约输入命令的时间。
安装方式可以通过:https://github.com/ohmyzsh/ohmyzsh 选择一种适合自己当前环境的方式,非常简单。
首先需要通过命令 cat /etc/shells,查看你的电脑是不是支持 zsh,mac 默认会安装 zsh:
通过 vim ~/.zshrc 可以编辑 omyzsh 的配置,我们先安装一些好用的插件。
a、自动提示
当我在 shell 中输入一个 v 时,会自动提示我曾经输过以 v 开头的相关命令,如下图:
安装:
1)、git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
2)、通过 vim ~/.zshrc 修改 .zshrc 中的 plugins,增加 zsh-autosuggeestions。插件之间用的是空格。
b、命令高亮显示
安装:
1)、$ git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
2)、通过 vim ~/.zshrc 修改 .zshrc 中的 plugins,增加 zsh-syntax-highlighting。这个必须放到所以插件的最后。
c、git
git 插件是默认的插件,比如下图的项目 ivue 会显示当前所处的分支。
更多插件和主题需要根据你自己去探索。
3、vim 拥有类 IDE 的能力
以前 vim 总是不太熟悉,后来画了一张图就搞定了 vim 的常用方法。
4、shell 脚本自动化
shell 脚本是非常值得投资学习的一件事件,它会让你每天重复性的劳动自动化。比如常见的使用场景:服务重启、打包脚本、登录服务端。这里我介绍几个简单的技巧:
a、重命名 alias
对那些比较长、容易忘记的命令进行重命名。比如你经常需要登录你的开发机,但是总是忘记机器的地址,可以设置:alias dev='ssh 10.278.10.1',这样下次输入 dev 即可执行登录操作;
b、把常用脚本添加环境变量中
你一定想在所有的目录下执行你写好的脚本,这时可以把脚本所在的目录添加到环境变量中,这样可以在任意目录下执行脚本。
1)、通过在 shell 中输入 echo $PATH 打印出当前所有的环境变量:
2)、把想要执行的脚本放到环境变量任意一个目录下,比如放到 /usr/local/bin 这个目录下。也可以自己新建一个目录放置自己常用的脚本,比如我的脚本放在了目录:/Users/suyanwang/bin 下,这时需要把这个目录放到环境变量中。
vim ~/bashrc 输入 export PATH="Users/suyanwang/bin:$PATH",执行 source ~/bashrc 让这个环境变量生效。执行完后既可以在任意目录执行脚本了。比如:sh suyan.sh。
关于 shell 还有好多好玩的,后续逐步分享给大家。
推荐阅读:
https://github.com/zsh-users/zsh
https://github.com/ohmyzsh/ohmyzsh
https://github.com/zsh-users/zsh-autosuggestions