zsh相较于其他shell,在命令补全,历史记录,跳转,别名方面有很多优势。zsh本身配置可能复杂一些,所以有人在github上创建了一个可以快速上手的zsh项目,叫做oh-my-zsh,zsh + oh-my-zsh可以极大的方便我们的命令操作。

zsh安装

1
2
3
4
5
6
7
8
9
10
11
12
13
# 安装zsh(Mac系统)
brew install zsh
# 安装oh-my-zsh
git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
# 设置zsh为默认shell,设置之后重新打开shell
sudo vim /etc/shells #在末尾添加/usr/local/bin/zsh
chsh -s /usr/local/bin/zsh
# 修改zsh主题
vim ~/.zshrc #修改ZSH_THEME值,主题文件在 ~/.oh-my-zsh/themes 目录

这里推荐一个agnoster主题,设置ZSH_THEME="agnoster"之后会发现有乱码,那是因为缺少一种字体,Powerline字体的安装

1
2
3
git clone https://github.com/powerline/fonts.git
cd fonts
./install.sh

安装完字体之后,需要在iterm2中设置一下,Preferences->Profiles->Text

设置完之后就大功告成了

zsh使用

  • 命令补全

    按一下tab键补全命令,再按一下tab键进入选择模式。比如kill ja按tab键,如果只有一个java进程,zsh会自动替换为该java进程pid,如果有多个则会出现选项供你选择;比如tar按tab键,则会出现命令参数供你选择

  • 历史记录,输入git然后用上下箭头就可以查看所有执行过的git命令

  • 目录跳转,不需要输入cd,直接输入目录名就可以跳转

  • 目录历史,输入d按回车,就会列出这个会话访问过的目录列表,输入列表前的序号按回车,就能直接跳转过去

  • 文件搜索,输入ll **/*.sh,可以递归搜索当前目录下的.sh文件

  • 智能跳转,需要安装autojump,然后输入j dir回车就可以直接跳转到访问最多的目录

    1
    2
    brew install autojump
    vim .zshrc #修改plugins=(git autojump)

ITerm2

快捷键

1
2
3
4
5
6
7
8
cmd+f 查找
cmd+/ 高亮光标
cmd+; 自动补全命令
cmd+shift+h 显示历史记录
cmd+d 垂直分屏
cmd+shift+d 水平分屏
cmd+opt+方向键 切换分屏

Tmux

安装

1
brew install tmux

会话

1
2
3
4
tmux new -s <会话名称> 新建会话
tmux attach -t <目标会话名> 连接会话
tmux ls 列出所有创建的会话
exit 结束会话

快捷键

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
ctrl+b 激活tmux,此时以下按键生效
? 列出所有快捷键
d 分离会话,正在运行的程序会保持运行
c 创建窗口,代表create
p 上一个窗口,代表previous
n 下一个窗口,代表next
w 窗口列表,代表window,上下键选择然后回车
, 窗口重命名
& 关闭窗口
数字 切换到指定窗口
% 垂直窗格
" 水平窗格
o 窗格切换
方向键 窗格切换