Mac终端|iTerm2 + Oh My Zsh 打造炫酷终端、进步开发功率;想通Terminal、iTerm2、Zsh、Oh My Zsh、brew价值和差异

引言

hello我们好,今日给我们共享Mac终端开发奇特 iTerm2Oh My Zsh 他俩是什么?能干嘛?我们先权且不谈,先说几个开发常见的痛点,我们能够品一品是否也有遇到过

首当其冲Mac默许的终端Terminal没有显现项目分支,虽然修正器或许第三方可视化软件能够看,但仍是感觉不是很优雅

Mac终端|iTerm2 + Oh My Zsh 打造炫酷终端、进步开发功率;想通Terminal、iTerm2、Zsh、Oh My Zsh、brew价值和差异

接着经常用的指令没有提示,每次重敲指令影响开发功率,遇到手残党单词简单打错,功率大打折扣

Mac终端|iTerm2 + Oh My Zsh 打造炫酷终端、进步开发功率;想通Terminal、iTerm2、Zsh、Oh My Zsh、brew价值和差异

还有便是Terminal终端

  • 默许黑底白字可读性略差,装备后语法会高亮,例如上图mkdircd等添加可读性;
  • 默许仿制终端内容,需求选中并按command c键,或许鼠标右击选仿制,这样操作有时分不小心简单仿制失利,你遇到过吗?装备后选中字符,则直接仿制,离别command c、右击直接张贴 ,超便利的;
  • 默许需求点击右上角终端才能够全屏,装备后直接command enter切换终端全屏;
  • 等等

在这儿先给我们共享5个点吧,信任我们装置,运用后会发现更多 ヾ(◍∇◍)ノ゙ 加油

一、东西介绍

装置装备前,引荐我们先把东西之间的联系搞清楚,这样有利于装置装备

1.1 Terminal vs iTerm2

  • terminal:mac默许终端,能够了解为win体系的DOS窗口;
  • iterm2:第三方保护的一个终端,一般mac开发者都会装置一个,首要由于其终端装备、窗口办理、前史指令办理等装备操作上都比mac默许终端terminal便利,所以受到许多开发者喜爱;

这儿也给我们预备了几张截图,便利我们更好的了解两者差异,了解为什么喜爱iterm2而不是Mac默许的terminal

a 默许作用

默许装置翻开后的作用,看着差不多

Mac终端|iTerm2 + Oh My Zsh 打造炫酷终端、进步开发功率;想通Terminal、iTerm2、Zsh、Oh My Zsh、brew价值和差异

b 终端装备

iterm2能够装备热键、背景通明和悬浮,它能够悬浮在恣意窗口上面等等,所以iterm2更强壮

Mac终端|iTerm2 + Oh My Zsh 打造炫酷终端、进步开发功率;想通Terminal、iTerm2、Zsh、Oh My Zsh、brew价值和差异

c 智能仿制

terminal 需求先选中,接着按下快捷键command c或许鼠标右击选仿制

iterm2 这儿就便利太多了,选中则直接仿制,离别command c、同时右击直接张贴的作用也十分友好;另外按下command option能够矩形选中作用,这个我用的不多,算一个长处吧

Mac终端|iTerm2 + Oh My Zsh 打造炫酷终端、进步开发功率;想通Terminal、iTerm2、Zsh、Oh My Zsh、brew价值和差异

d 窗格办理

terminal窗格自定义办理没有 iterm2强,经过下述快捷键能够测验

  • 笔直分屏:command d
  • 水平分屏:command shift d
  • 切换窗格:command option 方向键 或许 Command 左右中括号

Mac终端|iTerm2 + Oh My Zsh 打造炫酷终端、进步开发功率;想通Terminal、iTerm2、Zsh、Oh My Zsh、brew价值和差异

e 快捷功用

  • 回车全屏 command enter
  • 前史剪切板 command shift h
  • 前史指令提示 command ;

等等这些指令都是在iterm2下才会收效

暂时说这么多吧,等下文我们装置了自己再来体会下

1.2 Zsh vs Oh My Zsh

这儿我们需求先了解Shell 接着了解ZshOh My Zsh的概念和联系,最后考虑下 terminaliterm2ZshOh My Zsh四者之间联系,更加有利于后续得装备

Shell

计算机设备是由一个个物理硬件组成的,自身不具备运转处理才能,需求经过内核和驱动对硬件进行操作,驱动其作业。在计算机体系中,内核接口是隐藏起来的,用户不能直接操作内核,我们需求经过一个中心程序,接收用户操作指令,将其传递给内核,推进内核作业,进而推进硬件作业。Shell便是这个中心程序,起到连接操作体系内核和用户的作用。

Mac终端|iTerm2 + Oh My Zsh 打造炫酷终端、进步开发功率;想通Terminal、iTerm2、Zsh、Oh My Zsh、brew价值和差异

简单了解哈,shell便是指令解析器,把用户在terminaliterm2上输入的指令进行解析,接着传递给内核;

  • shell种类:ash、bash、ksh、csh、zsh等,值得一说的是在大多数 Linux 体系中,默许的 shell 是 Bash,而在 macOS 体系中,默许的 shell 是 Zsh(Z Shell) 。从 macOS Mojave 开端,Apple 将默许 shell 从 Bash 切换到了 Zsh 不过也依据个人喜爱。
  • shell差异:例如指令,功用、特性存在差异,这儿就不展开说了,大致知道shell之间的差异就行

Oh My Zsh

ZshShell/指令解说器的一种实现,自身很强壮,可是装备起来也十分的杂乱;所以为了解决Zsh杂乱的装备问题,Oh My Zsh就诞生了。

Oh My Zsh 是一个开源的、社区驱动的结构,用于办理您的 Zsh 装备。它绑缚了数千个有用的功用、插件、主题,能够让用户轻松定制和办理Zsh的装备。

具体有哪些插件,下文装置的时分我们继续说,这儿点到为止

1.3 brew

brew 全称 Homebrew 是 Mac OS 下强壮的包办理东西,类似于win体系的软件管家,我们能够经过他来装置iterm2或许 装置Oh My Zsh插件等;当然也能够经过其他办法装置都能够。


到这儿东西就悉数介绍完了,接下来开端装置

PS. 东西介绍次序iterm2Oh My Zshbrew,可是装置次序则是brewiterm2Oh My Zsh你能想理解为什么吗? 品一品

二、软件包办理东西 brew

2.1 装置

能够运用 官网 brew.sh 供给的办法装置,不过由于众所周知的原因,国内运用官方装置办法有问题,我们运用国内源装置脚本装置。

在终端中输入以下指令,依据提示装置就行

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

2.2 常用指令

装置成功后能够在终端输入brew -v检查版别验证是否装置成功,后续也能够经过下述指令办理

brew search 关键词   # 搜索相关的包
brew install 包名    # 装置
brew uninstall 包名  # 卸载
brew info 包名       # 检查包的信息
brew list 包名       # 检查已装置的包
...

我们暂时不装软件,我们知晓指令后边用

2.3 卸载

这个知晓就行,不必操作

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/HomebrewUninstall.sh)"

三、终端东西 iTerm2

3.1 装置

直接翻开官网 iterm2.com下载可视化装置

或许

在终端中输入以下指令直接装置也行

brew install --cask iterm2

装置后默许作用

Mac终端|iTerm2 + Oh My Zsh 打造炫酷终端、进步开发功率;想通Terminal、iTerm2、Zsh、Oh My Zsh、brew价值和差异

3.2 功用

许多功用之前terminaliterm2比照的时分都介绍过,这儿再共享下,刚好我们趁热打铁挨个试一试到底好不好用;01~04强烈引荐我们多用用,其他的依据个人爱好,有小编没总结到的,也引荐谈论区留言共享,感谢感谢

a 智能仿制*

iterm2选中则仿制,被挑选的文本会自动保存在剪切板中。双击选中,三击选中整行,四击智能挑选,能够智能地选中你想要的数据,如日期、邮箱,网址,括号/引号中的数据等。

相同也支撑快速张贴,直接鼠标右击或许command v进行张贴

Mac终端|iTerm2 + Oh My Zsh 打造炫酷终端、进步开发功率;想通Terminal、iTerm2、Zsh、Oh My Zsh、brew价值和差异

b 标签页Tabs*

  • 新建标签 command t
  • 封闭标签 command w
  • 切换标签 command 数字 或许 command 左右方向键

Mac终端|iTerm2 + Oh My Zsh 打造炫酷终端、进步开发功率;想通Terminal、iTerm2、Zsh、Oh My Zsh、brew价值和差异

这个功用Terminal也支撑

c 装备Settings*

  • 3.1 窗口设置

翻开iTerm2,翻开Preferences装备界面,Profiles -> Window,依据自己的需求设置窗口通明度、背景图片、队伍数以及风格等。

Mac终端|iTerm2 + Oh My Zsh 打造炫酷终端、进步开发功率;想通Terminal、iTerm2、Zsh、Oh My Zsh、brew价值和差异

  • 3.2 设置 Status bar

敞开后我们能够在终端的最上方十分便利的实时检查本机的一些信息。

Mac终端|iTerm2 + Oh My Zsh 打造炫酷终端、进步开发功率;想通Terminal、iTerm2、Zsh、Oh My Zsh、brew价值和差异

  • 3.3 装备SSH快速连接

等等

d 终端窗体控制*

大爱啊,按下自定义快捷键 快速隐藏、显现窗体吗,它会通明而且悬浮于其他窗体之上。

Mac终端|iTerm2 + Oh My Zsh 打造炫酷终端、进步开发功率;想通Terminal、iTerm2、Zsh、Oh My Zsh、brew价值和差异

翻开iTerm2,翻开Preferences装备界面,Profiles → Keys →configure Hotkey window,自定义一个快捷键就能够了。

Mac终端|iTerm2 + Oh My Zsh 打造炫酷终端、进步开发功率;想通Terminal、iTerm2、Zsh、Oh My Zsh、brew价值和差异

删除Hotkey

Mac终端|iTerm2 + Oh My Zsh 打造炫酷终端、进步开发功率;想通Terminal、iTerm2、Zsh、Oh My Zsh、brew价值和差异

e 部分快捷键

* 是小编喜爱用的

作用 指令 作用 指令
清屏* command r 删光标字符 ctrl d
清除当时行 ctrl u 删光标前单词 ctrl w
到行首* ctrl a 删光标前一个字符 ctrl h
到行尾* ctrl e 删光标及末尾 ctrl k
交流光标文本 ctrl t

f 窗格Panes

  • 笔直分屏:command d
  • 水平分屏:command shift d
  • 切换窗格:command Option 方向键 或许 command 左右中括号

Mac终端|iTerm2 + Oh My Zsh 打造炫酷终端、进步开发功率;想通Terminal、iTerm2、Zsh、Oh My Zsh、brew价值和差异

g 前史剪切板

经过 command shift h 能够检查当时终端前史仿制的内容,由于iterm 2支撑选中仿制,所以选中的内容都能够检查

Mac终端|iTerm2 + Oh My Zsh 打造炫酷终端、进步开发功率;想通Terminal、iTerm2、Zsh、Oh My Zsh、brew价值和差异

h 前史指令回放

挺好玩的,不过一般用不到,他能够像录屏一样,然后播放曩昔一段时间内窗口显现的内容 command option b

Mac终端|iTerm2 + Oh My Zsh 打造炫酷终端、进步开发功率;想通Terminal、iTerm2、Zsh、Oh My Zsh、brew价值和差异

四、装备办理东西 Oh My Zsh

4.1 装置

能够运用 官网 ohmyz.sh 供给的办法装置,不过由于众所周知的原因,国内运用官方装置办法有问题,我们运用手动装置。

# 1 下载 oh-my-zsh 源码
git clone https://github.com/ohmyzsh/ohmyzsh.git ~/.oh-my-zsh
# 2 把 .zshrc 装备文件拷贝到当时用户的目录下
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
# 3 让 .zshrc 装备文件收效
source ~/.zshrc

假如克隆失利,翻开github手动下载zip文件 -> 解压 -> 移动 oh-my-zsh 目录到用户家目录:

# 1 移动解压后的ohmyzsh到用户的家目录
mv ~/Downloads/ohmyzsh-master ~/.oh-my-zsh
# 2 把 .zshrc 装备文件拷贝到当时用户的目录下
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
# 3 让 .zshrc 装备文件收效
source ~/.zshrc

下图是装置前后的比照作用

Mac终端|iTerm2 + Oh My Zsh 打造炫酷终端、进步开发功率;想通Terminal、iTerm2、Zsh、Oh My Zsh、brew价值和差异

4.2 装备主题

装置后假如你对上图默许主题不满意,也能够自己装备主题

a 自带主题

检查oh-my-zsh自带主题

ls ~/.oh-my-zsh/themes

Mac终端|iTerm2 + Oh My Zsh 打造炫酷终端、进步开发功率;想通Terminal、iTerm2、Zsh、Oh My Zsh、brew价值和差异

下面的网站看下oh-my-zsh自带的部分主题显现作用:

主题作用预览

Mac终端|iTerm2 + Oh My Zsh 打造炫酷终端、进步开发功率;想通Terminal、iTerm2、Zsh、Oh My Zsh、brew价值和差异

找到自己喜爱的主题,接下来就能够进行主题修正了,我们以agnoster为例

vim ~/.zshrc

关于vim不会用的度娘一下吧,或许

open ~/.zshrc

这个指令也能够直接修正

Mac终端|iTerm2 + Oh My Zsh 打造炫酷终端、进步开发功率;想通Terminal、iTerm2、Zsh、Oh My Zsh、brew价值和差异

改完之后输入以下指令更新装备,让其收效。

source ~/.zshrc

b 第三方主题

一切第三方主题

主题作用预览

powerlevel10k 是目前比较盛行的

Mac终端|iTerm2 + Oh My Zsh 打造炫酷终端、进步开发功率;想通Terminal、iTerm2、Zsh、Oh My Zsh、brew价值和差异

首先去 ~/.oh-my-zsh/themes 目录下载主题

cd ~/.oh-my-zsh/themes
git clone https://github.com/romkatv/powerlevel10k.git

接着修正装备文件就行

vim ~/.zshrc 或 open ~/.zshrc

修正主题和添加额外主题装备

# ZSH_THEME="robbyrussell"
# ZSH_THEME="agnoster"
ZSH_THEME="powerlevel10k/powerlevel10k"
# Prompts
POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR='uE0C0'
#POWERLEVEL9K_LEFT_SUBSEGMENT_SEPARATOR='uE0C0'
POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR='uE0C2'
#POWERLEVEL9K_RIGHT_SUBSEGMENT_SEPARATOR='uE0C2'
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(dir dir_writable vcs virtualenv)
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status background_jobs command_execution_time ip)
POWERLEVEL9K_SHORTEN_DIR_LENGTH=2
POWERLEVEL9K_SHORTEN_DELIMITER=..
POWERLEVEL9K_PROMPT_ON_NEWLINE=true
POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX=$'n'
POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX="uF460%F{073}uF460%F{109}uF460%f "
POWERLEVEL9K_MODE='nerdfont-complete'
HIST_STAMPS="yyyy/mm/dd"

改完之后输入以下指令更新装备,让其收效。

source ~/.zshrc

我们能够经过下图看到详细操作哈

Mac终端|iTerm2 + Oh My Zsh 打造炫酷终端、进步开发功率;想通Terminal、iTerm2、Zsh、Oh My Zsh、brew价值和差异

4.3 装备插件

插件的装置,我们能够经过Homebrew或许git两种装置办法,我们依据习惯任选其一即可,无需重复装置。

然后插件有许多,这儿给我们共享,我个人比较喜爱的3个插件,你能够在github检查更多,不过我看着形似不全,所以引荐谈论区共享你喜爱的插件名和原因,后续我来持续更新 感谢感谢

a 高亮插件 zsh-syntax-highlighting

装置

brew install zsh-syntax-highlighting

装备 vi/open ~/.zshrc

source /opt/homebrew/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

source 途径能够经过 brew info zsh-syntax-highlighting检查

Mac终端|iTerm2 + Oh My Zsh 打造炫酷终端、进步开发功率;想通Terminal、iTerm2、Zsh、Oh My Zsh、brew价值和差异

b 前史指令提示插件 zsh-autosuggestions *

强推的,加快开发速度,敲指令能够看到前史的指令提示,然后按下键盘command ->则自动补全

装置

git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions

装备

# 修正装备文件
vim/open ~/.zshrc
# 找到plugins装备,在括号内添加zsh-autosuggestions,与其他插件之间运用空格分离隔
plugins=(zsh-autosuggestions)
# 退出修正后执行使装备收效
source ~/.zshrc

作用

Mac终端|iTerm2 + Oh My Zsh 打造炫酷终端、进步开发功率;想通Terminal、iTerm2、Zsh、Oh My Zsh、brew价值和差异

c ls列表美化插件 colorls

装置ruby

brew install ruby

装备ruby

# 修正装备文件
vim/open ~/.zshrc
# 文件最后加一行
export PATH="/opt/homebrew/opt/ruby/bin:$PATH"
# 退出修正后执行使装备收效
source ~/.zshrc

装置colorls

sudo gem install colorls -n /usr/local/bin

装备colorls

# 修正装备文件
vim/open ~/.zshrc
# 文件最后加
source $(dirname $(gem which colorls))/tab_complete.sh
alias ll='colorls -lA --sd --gs --group-directories-first'
alias ls='colorls --group-directories-first'
alias lc='colorls'
alias l='colorls -l --sort-dirs'
alias la='colorls -la --sort-dirs' 
alias lt='colorls -lt  --git-status'
alias lS='colorls -lS  --git-status' 
alias lr='colorls --tree=5'
alias lx='colorls -lAX --git-status'
# 退出修正后执行使装备收效
source ~/.zshrc

Mac终端|iTerm2 + Oh My Zsh 打造炫酷终端、进步开发功率;想通Terminal、iTerm2、Zsh、Oh My Zsh、brew价值和差异

4.4 卸载

这个知晓就行,不必操作

uninstall_oh_my_zsh

五、作用展示

自己又改了改,跟着文章配下来太花里胡哨了,坑不住

Mac终端|iTerm2 + Oh My Zsh 打造炫酷终端、进步开发功率;想通Terminal、iTerm2、Zsh、Oh My Zsh、brew价值和差异

✨✨终于写完了,希望能协助到我们。

假如你喜爱这篇文章,记得帮助给个点赞和评价,谢谢!