Oh-My-Zsh
前序
mac默认的shell是bash,所以需要先修改为zsh
sudo sh -c "echo $(which zsh) >> /etc/shells"
chsh -s $(which zsh)
修改时会提示你输入密码。
安装
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
安装配置
Oh-My-Zsh powerlevel9k 主题https://github.com/bhilburn/powerlevel9k):
克隆该仓库到 oh-my-zsh 用户自定义主题目录
git clone https://github.com/Powerlevel9k/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k
编辑zshrc配置
#修改主题
vim ~/.zshrc
将ZSH_THEME="XXX"改为
(下面---分割线完整复制)
看到了乱码, 配置字体
方法一(无图标,最快)
git clone https://github.com/powerline/fonts.git --depth=1
cd fonts
./install.sh
cd ..
rm -rf fonts
保存后, 重新加载一下配置 source ~/.zshrc
打开 iTerm2 终端,依次选择菜单栏:iTerm2 –> Preferences –> Profiles –> Text –>font–>Roboto Mono for Powerline注意看图,然后就能用啦~
方法二(有图标,自用)
使用brew执行(PS没DL特别特别慢):
brew tap caskroom/fonts
brew cask install font-hack-nerd-font
安装成功后需要vim ~/.zshrc
添加一句:
# 下面这个加的配置字体为nerd
POWERLEVEL9K_MODE="nerdfont-complete"
需要在 iTerm2 中配置一下,在 iTerm2 -> Preferences -> Profiles -> Text -> Font -> Change Font 栏位中,Text 下面勾选 Use a different font for non-ASCII text,然后再选择字体以及设置字体大小,需要注意的是 Font 和 Non-ASCII Font 所选择的字体和字体大小必须一致为14,否则会出现显示异常。
安装插件
自动提示插件zsh-autosuggestions
输入命令时可提示自动补全(灰色部分),然后按键盘 → 即可补全
使用以下命令安装
git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
语法高亮zsh-syntax-highlighting
日常用的命令会高亮显示,命令错误显示红色,如下图
使用以下命令安装
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
colors
colors 是一个 Ruby 实现的脚本,它可以配合 powerlevel9k 显示电脑上的文件图标(应该是通过后缀判断的),效果如下:
安装命令:sudo gem install colorls
如果你安装了colors的话,需要在其配置文件中中再加入:
alias ls='colorls'
alias ll='colorls -l'
autojump
这个插件主要帮助我们记住目录,一键直达。只要你脑海里有目录的几个字母,然后使用j [你知道的]
按下 tab 即可,不用cd cd cd
慢慢找。举个栗子:
我使用cd
进入了打包好的
这个目录,还进入了Desktop
目录。
cd /Users/dx/Desktop/打包好的
如果用autojump
的话,现在想进入打包好的
目录只需要j 打包好的
即可,一般我们都会按下tab
确定目录位置,当遇到多个类似的目录名的时候它会提示你输入数字进入。
安装
brew install autojump
安装后添加到autojump
到zsh
的 插件配置(plugins)里,再追加一句命令:
[[ -s $(brew --prefix)/etc/profile.d/autojump.sh ]] && . $(brew --prefix)/etc/profile.d/autojump.sh
让配置文件生效即可。
修改配置
执行vim ~/.zshrc
把plugins=(git)修改为下图
如果你安装了colors的话,需要在其他行中再加入:
alias ls='colorls'
alias ll='colorls -l'
执行source ~/.zshrc
即可生效
一些自带插件
无需下载,在~/.zshrc直接填入即可~也可以参考下官方文档
z
这也是个自带的但是没有开启的插件。为什么单独把它拿出来讲呢?因为太好用了,没有它我根本就不想用命令行。简直就是可以无脑跳跃,比如你经常进入~/Documents目录,按下 z doc 一般它就可以跳进去了(当然首先你得用一段时间让它积累一下数据才能用)。类似的插件还有好几个比如autojump,fasd,这类东西好像叫 FS Jumping,这里有个完整列表:https://github.com/robbyrussell/oh-my-zsh/wiki/Plugins-Overview#fs-jumping
d
在 fish shell 里你可以按alt 加左右箭头随意穿梭于历史记录中,就像 GUI 文件浏览器的
前进,后退。zsh 没有这么好用,但是按一下 d 再回车你会看到最近的历史记录,然后你就可以通过数字比如 1, 2 之类的返回到某个历史记录中了。也是非常好用的。
zsh-autosuggestions
官方的介绍是Fish-like fast/unobtrusive autosuggestions for zsh
,没错,这是模仿fish shell 的一个插件,作用基本上就是根据历史记录即时提示。没有这个东西让我感觉自己很盲目。没有用过 fish 的同学可能觉得它有点奇怪,但是一旦适应它以后就会发现它会大幅度的提高效率(按 ctrl+E 是正确姿势)。注意:它不是 oh-my-zsh 自带的,大家可以去github看它的安装说明。
自带的 Git Aliases
git 插件是默认开启的,大家可能注意到它能够自动补全以及显示所在 branch。对于一个 git 重度用户,一些 aliases 是不可缺少的。相信我,一旦习惯了 aliases,就会觉得原来敲那么一大堆命令真是不能忍了(即使它能够自动补全)。下面列一些我最常用的(当然也是 oh-my-zsh 自带的,更多请看wiki):
AliasCommand
Alias | Command |
---|---|
g | git |
gst | git status |
ga | git add |
gp | git push |
gc | git commit -v |
gc! | git commit -v --amend |
sublime
已经内置直接启用即可
作用
在命令行使用Sublime Text
打开文件、项目
命令 | 作用 |
---|---|
st | 打开 sublime |
st + 文件夹 | 打开该文件夹 |
st + 文件 | 打开该文件 |
stt | 打开当前的文件夹,相当于 st . |
sst | 管理员权限 相当于 sudo st |
其他
- 敲
zsh_stats
可以看到你的使用频率前 20 的命令是什么! take
看看which take
就知道它有什么用了clipcopy
和clippaste
,剪贴板和命令行的交互
小结
- 连续按两次
tab
会补全列表,补全项可以使用ctrl+n/p/f/b
上下左右切换 - 输入目录名即可进入,不用
cd
了,输入..
即可到上级目录,返回上次目录输入-
- 输入 d 即可看到目录列表
- 智能的命令纠错功能(需开启 ENABLE_CORRECTION 配置)
Cmd + Shift + H
可以查看剪切板的历史记录Cmd + Option + B
可以利用时间轴来查看之前输入的命令
DL加入zsh中
小记:按下列方法可让终端走,#启动终端DLproxy
#关闭终端DLunproxy
执行vim ~/.zshrc
添加如下DL配置:
# proxy list
alias onssr='export all_proxy=socks5://127.0.0.1:1086'
alias offssr='unset all_proxy'
PS:注意是socks5端口,看这的端口:
:wq
保存退出
source ~/.zshrc
使用onssr
前先查看下当前的ip
地址:
curl ip.cn
当前 IP:112.64.xxx.xx 来自:上海市 联通
或者
~ curl cip.cc
IP : 140.206.97.42
地址 : 中国 上海
数据二 : 上海市 | 联通
URL : http://www.cip.cc/140.206.97.42
执行:
#启动终端
proxy
curl ip.cn
当前 IP:47.89.xx.xxx 来自:香港特别行政区 阿里云
#如果不能用,就用
curl cip.cc
IP : 45.78.47.19
地址 : 美国 加利福尼亚
数据二 : 美国 | 加利福尼亚州洛杉矶市 IT7 Networks
URL : http://www.cip.cc/45.78.47.19
没问题,终端走了,brew update
顺畅了- -
如果不需要走,执行:
#关闭终端
offssr
curl ip.cn
当前 IP:112.64.xxx.xx 来自:上海市 联通